Zabbix, OcsInventory NG, GLPI su CentOs 5.7

Su un server con CPU Intel Core2 Duo E7400 @ 2.80GHz, 3GB RAM e HD Sata Western Digital da 300GB ho messo a punto un sistema per l’hardware e software inventory, asset management e monitoring per conto di un’azienda locale.

Per il sistema operativo la scelta è stata CentOs.

Avevo a disposizione un dvd con la release 5.2 di CentOs, ma un kernel panic in fase di installazione dovuto (come ho avuto modo di scoprire subito) ad un bug del driver della scheda di rete integrata Realtek  RTL8101E, mi ha costretto ad effettuare il download del primo degli 8 cd di installazione della release 5.7. Con questo solo cd, e customizzando la scelta dei pacchetti di installazione lasciando solo i base package, è possibile installare un sistema basilare e poi completare l’installazione dei vari pacchetti dai repository di rete.

Scopro con piacere che Windows 7 è in grado di masterizzare nativamente un’immagine ISO facendo click con il destro sul file di immagine e scegliendo il comando Masterizza immagine disco.

Fatta l’installazione del sistema operativo, ho proeseguito installando Apache, Mysql e Php che insieme ad un server di posta sono i prerequisiti per l’installazione di Zabbix.

# yum install httpd
# yum install mysql-server mysql
# chkconfig  --add httpd
# chkconfig  --add mysqld
# service httpd start
# service mysqld start
# chkconfig --level 35 httpd on
# chkconfig --level 35 mysqld on

Ricardatevi di mettere al sicuro il server mysql con il comando

# mysql_secure_installation

Poi il php (meglio la 5.3)

# yum install php53 php53-mysql php53-gd

Creiamo il gruppo zabbix e l’utente zabbix con cui il server zabbix andrà in esecuzione. Questa operazione va effettuata anche su ogni server Linux su cui vorremo installare l’agente di zabbix.

# groupadd -g 130 zabbix
# useradd -u 130 -g zabbix -c 'Zabbix monitoring' zabbix

Ora dovremo installare i seguenti componenti:

  • Zabbix Server (per la raccolta e la gestione dei dati)
  • Zabbix Agent (per il monitoring)
  • Net-SNMP (per il supporto SNMP)
  • Jabber (per le notifiche)
  • OpenIPMI (per il monitoring)
  • cURL (per il web monitoring)

Posizionatevi su /root e cominciamo.

Prima un po’ di prerequisiti.

# yum install zlib-devel mysql-devel glibc-devel curl-devel gcc automake libidn-devel openssl-devel net-snmp-devel rpm-devel OpenIPMI-devel

Per il sistema di messaggistica Jabber abbiamo bisogno di pacchetti che non si trovano nei repository standard di CentOs, ma nel repository EPEL.

Per cui installiamo tale repository e poi lo usiamo per installare i due pacchetti iksemel e iksemel-devel.

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# yum --enablerepo=epel install iksemel iksemel-devel

Ora procediamo con il download e l’installazione di zabbix (ad oggi l’ultima versione è la 1.8.9).

# wget "http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/1.8.9/zabbix-1.8.9.tar.gz?r=http%3A%2F%2Fwww.zabbix.com%2Fdownload.php&ts=1323473008&use_mirror=netcologne"
# tar zxvf zabbix-1.8.9.tar.gz
# cd zabbix-1.8.9
# ./configure --enable-server --with-mysql --with-net-snmp --with-jabber --with-libcurl --with-openipmi --enable-agent
# make

Potremmo procedere con il comando make install, ma è preferibile trasformare l’installazione di zabbix in un pacchetto RPM per semplificarne la gestione e manutenzione successiva. Per far questo occorre il pacchetto checkinstall che va scaricato a parte perché non si trova nel repo di CentOs.

# cd ..
# wget http://dag.wieers.com/rpm/packages/checkinstall/checkinstall-1.6.0-3.el5.rf.i386.rpm
# rpm -ivh checkinstall-1.6.0-3.el5.rf.i386.rpm
# yum install rpm-build
# cd zabbix-1.8.9
# checkinstall --nodoc --install=yes -y  --exclude=/selinux,/selinux/context

Se tutto va per il verso giusto verrete informati che è stato creato il pacchetto

/usr/src/redhat/RPMS/i386/zabbix-1.8.9-1.i386.rpm

per cui potrete eventualmente rimuoverlo con il comando

rpm -e zabbix-1.8.9-1

Il server Zabbix è installato.

Creazione del database

Creaimo il database zabbix e l’utente mysql zabbix con ii necessari privilegi.

# mysql -u root -p
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'password-di-zabbix';
mysql> quit

Fatto questo creiamo le tabelle e importiamo i dati di configurazione necessari. Partiamo sempre dalla directory /root/zabbix-1.8.9

# cd create/schema/

Aggiungo all’inizio dei vari file che importerò l’istruzione USE zabbix;

# vi mysql.sql
# cat mysql.sql |mysql -u zabbix -p
# cd ..
# cd data

Aggiungo all’inizio dei vari file che importerò l’istruzione USE zabbix;

# vi data.sql
# cat data.sql |mysql -u zabbix -p

Aggiungo all’inizio dei vari file che importerò l’istruzione USE zabbix;

# vi images_mysql.sql
# cat images_mysql.sql |mysql -u zabbix -p

Verifichiamo con mysql che le varie tabelle siano state create.

mysql> use zabbix;
mysql> show tables;
mysql> quit;

Altrimenti droppiamo il database e ricominciamo.

Configurazione di Zabbix

Creaimo sotto /etc la directory zabbix dove metteremo i file di configurazione copiati dall’opportuno percorso.

# mkdir /etc/zabbix
# cd
# cd zabbix-1.8.9
# cp misc/conf/{zabbix_server.conf,zabbix_agentd.conf} /etc/zabbix/

Ora modifichiamo il file di configurazione sistemando i vari riferimenti al database.

# vi /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=la-password-che-avete-data-all'utente-zabbix

Sistemiamo i permessi:

# chmod 400 /etc/zabbix/zabbix_server.conf
# chown zabbix /etc/zabbix/zabbix_server.conf

Facciamo partire il server e l’agente ed eseguiamo un ps per verificare che siano in esecuzione un certo numero di processi relativi ai due daemon e con l’utente opportuno (zabbix).

# /usr/local/sbin/zabbix_agentd
# /usr/local/sbin/zabbix_server
# ps -eaf

Gli script di startup

Copiamo sotto /etc/init.d gli script di startup modificando all’interno dei due file copiati il valore della variabile progdir=”/usr/local/sbin/”

# cp misc/init.d/redhat/8.0/zabbix_* /etc/init.d/
# vi /etc/init.d/zabbix_server
# vi /etc/init.d/zabbix_agentd
# chkconfig --add zabbix_server
# chkconfig --add zabbix_agentd
# chkconfig --level 35 zabbix_server on
# chkconfig --level 35 zabbix_agentd on

Sistemiamo i privilegi:

# chmod 755 /etc/init.d/zabbix_server
# chmod 755 /etc/init.d/zabbix_agentd

Ora l’agente e il server zabbix possono essere gestiti con il comando service.

service zabbix_server {start|stop|restart|condrestart}

L’interfaccia web di Zabbix

Ora Zabbix è in grado di raccogliere i dati con il servizio zabbix_server e monitorare se stesso con zabbix_agentd.

Possiamo quindi passare al setup dell’interafaccia di amministrazione che è basata su apache e php.

Prima installiamo qualche package di php:

# yum install php53-bcmath php53-xml php53-mbstring

Ora sempre dall’interno della nostra directory /root/zabbix-1.8.9 copiamo la directory frontends/php sotto /var/www/html che è la root del nostro server apache.

# cp -r frontends/php/ /usr/local/share/

Rinominiamo la directory php in zabbix.

# mv /usr/local/share/php/ /usr/local/share/zabbix

Creiamo l’opportuno file di configurazione per Apache:

echo "Alias /zabbix /usr/local/share/zabbix" > /etc/httpd/conf.d/zabbix.conf

Riavviamo il servzio httpd

service httpd restart

A questo punto possiamo collegarci con un browser su

http://ipaddress-zabbix-server/zabbix

e avviare la procedura di installazione.

In alto potremmo ricevere un warning relativo ad un problema con il TimeZone. Al momento ignoriamolo perché lo sistemeremo più aventi quando modificheremo alcuni valori nel file /etc/php.ini

Confermiamo il Welcome Screen e l’accettazione della licenza (pulsante Next in basso) e giungeremo al passo 3 per la verifica dei pre-requisiti.

Dovremo probabilmente sistemare un pò di valori nel file /etc/php.ini

Sistemiamoli e riavviamo il servizio httpd.

Facciamo click sul pulsante Retry finché non abbiamo ok su tutto.

Il terzo step del wizard di installazione di Zabbix

Il terzo step del wizard di installazione di Zabbix

I valori da sistemare nel file/etc/php.ini sono:

max_execution_time = 600
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
max_input_time = 600
date.timezone = Europe/Rome
mbstring.func_overload = 2

Completiamo gli step finali facendo attenzione nello step di configurazione del database di usare l’utente e la password creati in precedenza per l’accesso al db zabbix.

Al termine il sistema tenterà di creare il file di configurazione, ma non avendo permessi sufficienti non potrà farlo. Ci offre però la possibilità di scaricarlo localmente, quindi salviamolo localmente, apriamolo con il nostro editor e copiamo il contenuto.

Editiamo sul server il file /usr/local/share/zabbix/conf/zabbix.conf.php e incolliamo il contenuto copiato in precedenza. Ho potuto fare questo con una connessione SSH aperta dal mio noteboxx con Windows 7 verso il server zabbix.

Facciamo click sul pulsante Retry per verificare che il file di configurazione venga letto correttamente e con il pulsante Next siamo al termine della procedura di setup.

Per accedere usiamo come username admin e come password zabbix.

Le istruzioni finora riportate fanno riferimento, opportunamente aggiornate, al documento di How-to che ho seguito per installare zabbix su CentOs che potete trovare qui.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *