Utiliser Fedora et CentOS

CentOS 7 : Installer et configurer Zabbix

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

zabbix_logo







Introduction





ZABBIX est un logiciel permettant de surveiller l'état de divers services réseau, serveurs et autres matériels réseau.

Cet article a été fait avec la version 2.2 LTS de Zabbix





Installer Zabbix







Prérequis





Dans un premier temps, mettre en service les dépôts epel :



Code BASH :
yum install epel-release




Mettre à jour ensuite le système :



Code BASH :
yum update




Ajouter enfin dépôts officiels de Zabbix :



Code BASH :
yum install http://repo.zabbix.com/zabbix/2.2/rhel/7/x86_64/zabbix-release-2.2-1.el7.noarch.rpm






Installation des paquets





On va donc installer le serveur Zabbix, l'agent Zabbix et aussi l'interface Web. J'installe en même temps les composants essentiels à leur fonctionnement : Apache2, MariaDB et PHP :



Code BASH :
yum install zabbix-server-mysql zabbix-agent zabbix-web-mysql mysql mariadb-server httpd php






Configuration







La base de données





Dans un premier temps, on va activer au redémarrage le service de base de données :



Code BASH :
systemctl enable mariadb




Puis on le lance :



Code BASH :
systemctl start mariadb




On initialise le moteur de base de données :



Code BASH :
mysql_secure_installation




On se connecte ensuite sur la base de données :



Code BASH :
mysqu -u root -p




On créé la table et l'utilisateur zabbix :



Code SQL :
CREATE DATABASE zabbix;
GRANT ALL privileges ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'supermdp';
FLUSH privileges;
exit




Ensuite, on importe la structure de la base de données :



Code BASH :
mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-*/create/schema.sql
mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-*/create/images.sql
mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-*/create/data.sql




On modifie quelques valeurs dans le fichier de configuration de PHP :



Code BASH :
sed -i 's/^max_execution_time.*/max_execution_time=600/' /etc/php.ini
sed -i 's/^max_input_time.*/max_input_time=600/' /etc/php.ini
sed -i 's/^memory_limit.*/memory_limit=256M/' /etc/php.ini
sed -i 's/^post_max_size.*/post_max_size=32M/' /etc/php.ini
sed -i 's/^upload_max_filesize.*/upload_max_filesize=16M/' /etc/php.ini
sed -i "s/^\;date.timezone.*/date.timezone=\'Europe\/Paris\'/" /etc/php.ini






Zabbix Server





Le fichier de configuration de Zabbix Web est le suivant : /etc/httpd/conf.d/zabbix.conf. Par défaut, aucune modification n'est à apporter.



Le fichier de configuration du serveur Zabbix est le suivant : /etc/zabbix/zabbix_server.conf. On peut renseigner le mot de passe de la base de données si on l'a changé en modifiant la valeur de DBPassword :



Code BASH :
vi /etc/zabbix/zabbix_server.conf






Parefeu





Il faut aussi ouvrir les ports du pare-feu, notamment HTTP HTTPS et 10050 :



Avec firewalld, on regarde le nom de la zone correspondant à l'interface :

Code BASH :
firewall-cmd --get-active-zones




Moi j'ai ceci mais adaptez avec votre cas :

Code BASH :
public
   interfaces: eno16780032




On autorise les communications :

Code BASH :
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --zone=public --add-port=10051/tcp --permanent




Ou si vous vous en fichez de la sécurité, désactiver le pare-feu :

Code BASH :
systemctl stop firewalld 
systemctl disable firewalld






SELinux





Si SELinux est actif, il faut penser à autoriser Zabbix et Apache à communiquer ensemble :

Code BASH :
setsebool -P httpd_can_connect_zabbix on




Mais aussi zabbix à utiliser le réseau dans le cas de vérifications externes ou de services tcp :

Code BASH :
setsebool -P zabbix_can_network on




Pour info, toutes les variables SElinux pour zabbix peuvent être obtenues ainsi :

Code BASH :
getsebool -a | grep zabbix
 
httpd_can_connect_zabbix --> on
zabbix_can_network --> on




Pour ceux qui veulent désactiver SeLinux, passer à disabled la variable SELINUX dans les fichiers /etc/selinux/config et /etc/sysconfig/selinux







Activer et démarrer les services





On active tous les services :



Code BASH :
systemctl enable zabbix-agent
systemctl enable zabbix-server
systemctl enable httpd




Puis on les démarre :



Code BASH :
systemctl start zabbix-agent
systemctl start zabbix-server
systemctl start httpd






Lancer l'initialisation de Zabix via l'interface Web





On se rend sur la page web du serveur : http://ip_du_serveur/zabbix/ et on arrive sur cette page :



zabbix_centos_1





On fait suivant et on arrive sur l'écran de récapitulation des prérequis :



zabbix_centos_2





On fait suivant puis on arrive sur l'écran de configuration de la connexion à la base de données :



zabbix_centos_3





On complète les bonnes infos puis Suivant :



zabbix_centos_4





On complète les infos sur le serveur local puis Suivant. On a un résumé de la configuration :



zabbix_centos_5





On fait suivant et on a cet écran qui nous dit que tout est OK. On clique sur Finish.



zabbix_centos_6





On se connecte à l'interface. Par défaut, l'utilisateur est admin et le mot de passe zabbix :



zabbix_centos_7





Et nous voilà connecté !



zabbix_centos_8







Installer les agents sur les clients







Prérequis





Comme pour le serveur on s'assure d'être à jour :



Code BASH :
yum update




On active les dépôts EPEL :



Code BASH :
yum install epel-release




On installe le dépôt de Zabbix :



Code BASH :
yum install http://repo.zabbix.com/zabbix/2.2/rhel/7/x86_64/zabbix-release-2.2-1.el7.noarch.rpm




Installation de l'agent Zabbix





On installe l'agent via :



Code BASH :
yum install zabbix22-agent




Configuration de l'agent





On configure l'agent en indiquant l'IP du serveur Zabbix (Dans mon exemple 10.21.27.239) et on désactive le "Server Active"



Code BASH :
sed -i 's/^Server=127.0.0.1/Server=10.21.27.239/g' /etc/zabbix/zabbix_agentd.conf
sed -i 's/^ServerActive=127.0.0.1/ServerActive=/g' /etc/zabbix/zabbix_agentd.conf




Activation des services





On active au démarrage le service de l'Agent Zabbix puis on le démarre :



Code BASH :
systemctl enable zabbix-agent
systemctl start zabbix-agent






Problèmes rencontrés





MySQL Status renvoie toujours down





Si on est sûr que le service MySQL est UP mais que Zabbix renvoie toujours "Down", analyser les logs :



Code BASH :
tailf /var/log/zabbix/zabbix_agentd.log




Si on a ce genre de message :



Code BASH :
mysqladmin: connect to server at 'localhost' failed
error: 'Can t connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)'
Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!




Editer la section [client] de /etc/my.cnf.d/client.cnf



Code BASH :
vi /etc/my.cnf.d/client.cnf




Ajouter un compte utilisateur et le nom du socket (ici avec un compte qui dispose uniquement des droits de lecture) :



Code BASH :
user=ro
password=ro
socket=/var/lib/mysql/mysql.sock