Installare lo Zabbix Agent su CentOS 7

Lo Zabbix Agent è la componente che è necessario installare sulle macchine che vogliamo monitorare con Zabbix. La sua funzione è quella di collezionare dati sui client e di renderli disponibili al server.

Esistono due modalità di comunicazione tra la componente agent e il server:

  1. Passive: il server richiede i dati al client
  2. Active: il client manda i dati al server

Dopo aver visto l’installazione del server Zabbix, vediamo come si installa un client su una macchina CentOS 7.

Per prima cosa occorre configurare il repository ufficiale

rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

Ora possiamo installare lo Zabbix Agent con il comando

yum install -y zabbix-agent

Il passo successivo sarà la configurazione dell’agent inserendo nel file i parametri per contattare il server.
Il file è /etc/zabbix/zabbix_agentd.conf

#Server=[indirizzo del zabbix server]
#ServerActive=[indirizzo del zabbix server]
#Hostname=[ Hostname del client ]
#EnableRemoteCommands=[ per eseguire comandi dal server ]

Server=192.168.1.100
ServerActive=192.168.1.100
Hostname=Server1
EnableRemoteCommands=1

Se stiamo utilizzando un firewall locale apriamo la porta utilizzata dall’agent

firewall-cmd –-add-port=10050/tcp –permanent
firewall-cmd –reload

E infine avviamo il servizio e lo abilitiamo all’avvio

systemctl start zabbix-agent
systemctl enable zabbix-agent

Terminate queste operazioni si può aggiungere il nuovo host dalla console web dello Zabbix Server e iniziare a monitorarlo.
Nel caso ci fossero problemi si può consultare questo post sul troubleshooting dello Zabbix Agent.

Troubleshooting zabbix agent

Verificare che il servizio sia attivo

systemctl status zabbix-agent

Esaminare i log

Il file si chiama zabbix_agentd.log e si trova sotto /var/log/zabbix
tailf /var/log/zabbix/zabbix_agentd.log

Verificare che la porta sia in ascolto

Sul server su cui è installato lo zabbix agent

netstat -na | grep 10050

Controllare SELinux

cat /etc/selinux/config

Dallo zabbix server possiamo usare nmap come segue.

nmap -Pn -p 10050 10.138.136.47

-Pn fa in modo che dia per scontato che l’host è acceso saltanto il processo d host discovery
-p è la porta da controllare, nel nostro caso la 10050

Installare Zabbix Server 4.0 su CentOS 7

Zabbix è un software libero per il monitoraggio di reti e vari sistemi informatici, atto a tracciare lo stato di server e servizi di rete correlati. Ideato dal programmatore russo Alexei Vladishev, è rilasciato sotto i termini della GNU General Public License versione 2.

da Wikipedia

Installazione di Apache e PHP

Passaggi preliminari.

yum -y install httpd php
systemctl start httpd
systemctl enable httpd

Configurazione dei repository ufficiali

Non esistono versioni di Zabbix nei repository di CentOS, dobbiamo quindi configurare il repository ufficiale, per farlo usiamo il comando che segue.

rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

Installazione di Zabbix

Ora possiamo installare il server, l’agent e i pacchetti che servono al funzionamento dell’interfaccia web. Nell’esempio che segue si fa riferimento alla versione che utilizza MySQL/MariaDB, nel caso si voglia utilizzare PostgreSQL i pacchetti saranno, ovviamente, diversi.

yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent 

Installazione e configurazione di MariaDB

Installiamo e configuriamo il database.
NOTA BENE: sicuramente non è una buona idea usare la password del mio esempio.

yum -y install mariadb-server

systemctl start mariadb
systemctl enable mariadb

mysql_secure_installation

mysql -uroot -p

mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;

Popoliamo il database appena creato

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Configurazione di Zabbix

Ora è necessario modificare il file di configurazione /etc/zabbix/zabbix_server.conf aggiungendo la password che abbiamo scelto in precedenza.

DBPassword=password

Configurazione di PHP

Occorre modificare anche un parametro nel file /etc/httpd/conf.d/zabbix.conf

php_value date.timezone Europe/Rome

Abilitazione e avvio dei servizi

Abilitiamo i servizi e avviamoli

systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd

Configurazione firewall

Apriamo le porte del firewall necessarie al funzionamento dei servizi.

firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --permanent --add-port=80/tcp
systemctl restart firewalld

Gli ultimi passaggi sono piuttosto intuitivi e si portano a termine usando l’interfaccia web. La url sarà qualcosa di simile a http://nostroserver/zabbix.