Una breve guida sull’implementazione di questo giovane netmonitor che a mio avviso a differenza di soluzioni più conosciute e consolidate come nagios, introduce una gestione molto più web oriented semplificando moldo le operazioni in ambienti che necessitano di rapida scalabilità.

L’installazione è stata effettuato con successo usando Debian Etch 4.0r5 e CentOS 5.2 inutile dire che tutte le operazio che seguiranno dovranno essere fatte da utente ‘root’

  1. Prepariamo quello che ci serve per la compilazione:

tardis:~# aptitude -y install build-essential libmysqlclient-dev libssl-dev libsnmp-dev libiksemel-dev libcurl3-dev

tardis:~# apt-get install snmp libiksemel3 libcurl3 libsnmp-base libmysqlclient15off

  1. Scarichiamo i sorgenti, e procediamo con scompattazione:
tardis:~# wget http://garr.dl.sourceforge.net/sourceforge/zabbix/zabbix-1.6.1.tar.gz
tardis:~# tar zxvf zabbix-1.6.1.tar.gz
tardis:~# cd zabbix-1.6.1
  1. Configurazione e compilazione, in questo caso verà compilato oltre all’agente dedicato a discovery e al monitoraggio, anche il server che ha la funzione di raccogliere di dati dai vari agent, gestire gli allarmi e le operazioni di cordinameto:
tardis:~# ./configure --prefix=/usr --with-mysql --with-net-snmp --enable-server --enable-agent --enable-ipv6 --with-jabber
tardis:~# make

Ora una piccola nota, se compilaste direttamente su macchine di produzione a questo punto basterebbe fare un ‘make install’ non avendo gli strumenti dedicati, è necessario spostare il compilato sulla macchina dedicata e procedere a mano, quindi (questa fase è da eseguire sulla macchina di produzione che dovrà avere a bordo Apache2, PHP5, Mysql5 già funzionanti):

  1. Creiamo utente e gruppo dedicato:
 groupadd zabbix
 useradd -c 'Zabbix' -d /home/zabbix -g zabbix -s /bin/bash zabbix
 mkdir /home/zabbix
 chown zabbix:zabbix /home/zabbix
  1. Creiamo database e utente dedicato in mysql server:

mysql -p -u root create database zabbix; grant all on zabbix.* to ‘zabbix’@’localhost’ identified by ‘changeme’; quit;

  1. Popoliamo le tabelle del database:
 server:~/zabbix-1.6.1# mysql -u root -p zabbix  < create/schema/mysql.sql
 server:~/zabbix-1.6.1# mysql -u root -p zabbix < create/data/data.sql
 server:~/zabbix-1.6.1# mysql -u root -p zabbix < create/data/images_mysql.sql
  1. Creaiamo una struttura di directory dedicata, questa soluzione potrebbe risultare noiasa, ma durante le operazioni di aggiornamento e manutenzione sarà molto più comodo e veloce:
 server:~# mkdir /usr/share/zabbix
 server:~# mkdir /usr/share/zabbix/sbin
 server:~# mkdir /usr/share/zabbix/etc
 server:~# mkdir /usr/share/zabbix/frontends
  1. Con i seguenti passaggi creaiamo un link simbolico delle /etc di zabbix alla /etc di sistema, copiamo il frontend php nella directory dedicata, e infine copiamo gli esguibili compilati che ci servono:
 server:~/zabbix-1.6.1# ln -s /usr/share/zabbix/etc/ /etc/zabbix
 server:~/zabbix-1.6.1# cp -r frontends/php/* /usr/share/zabbix/frontends

 server:~/zabbix-1.6.1# cp src/zabbix\_agent/zabbix_agent /usr/share/zabbix/sbin/zabbix_agent
 server:~/zabbix-1.6.1# cp src/zabbix\_agent/zabbix_agentd /usr/share/zabbix/sbin/zabbix_agentd
 server:~/zabbix-1.6.1# cp src/zabbix_server/zabbix_server /usr/share/zabbix/sbin/zabbix_server
  1. Configuriamo i file di init.d copiandoli e aggiustando i path

server:~/zabbix-1.6.1# cp misc/init.d/debian/* /etc/init.d/

Modificate entrambi gli script aggiustando i path in particolare questa riga:

da così: DAEMON=/home/zabbix/bin/${NAME} deve diventare così: DAEMON=/usr/share/zabbix/sbin/${NAME}

  1. Aggiungiamo la definizione delle porte usate da zabbix nei /etc/services

echo > " zabbix_agent 10050/tcp # Zabbix ports zabbix_trap 10051/tcp" /etc/services

  1. Copiamo le configurazioni di default e apportiamo le modifiche di base:

server:/zabbix-1.6.1# chown -R zabbix:zabbix /usr/share/zabbix/etc server:/zabbix-1.6.1# cp misc/conf/zabbix_* /usr/share/zabbix/etc

Editiamo il file: zabbix_agentd.conf e assicuriamoci che ci sia la seguente riga

Server=127.0.0.1

Editiamo zabbix_server.conf

 max_execution_time = 300
 date.timezone = UTC
 DBHost=localhost
 DBName=zabbix
 DBUser=zabbix
 DBPassword=changeme
  1. Apache e PHP

Nel file php.ini è necessario avere i seguenti parametri definiti:

 max_execution_time = 300
 date.timezone = UTC

La configurazione di apache è abbastanza a discrezione dell’amministratore si può fare in due modi:

Creando un vhost dedicato:

 <virtualhost>
 ServerName zabbix.domain.tld
DocumentRoot /usr/share/zabbix/frontends
 <directory>
 Options FollowSymLinks
 AllowOverride None
 </directory>
 </virtualhost>

Oppure creando un’alias in una vhost già definito:

<IfModule mod\_alias.c>
 Alias /zabbix /usr/share/zabbix/frontends
</IfModule>
  1. Ora se tutto è stato fatto correttamente avviando i servizi e aprendo la pagina web si potrà procedere con la rapiada configurazione del frontends e poi all’uso ma prima i seguenti comandi:
/etc/init.d/apache2 restart
/etc/init.d/zabbix-server start
/etc/init.d/zabbix-agent start