Red Hat 8, Alma Linux 8 : Installer et configurer Zabbix
Table des matières
ZABBIX est un logiciel permettant de surveiller l'état de divers services réseau, serveurs et autres matériels réseau.
Dans un premier temps, mettre en service les dépôts epel :
Mettre à jour ensuite le système :
Ajouter enfin dépôts officiels de Zabbix :
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 :
Dans un premier temps, on va activer au redémarrage le service de base de données :
Puis on le lance :
On initialise le moteur de base de données :
On se connecte ensuite sur la base de données :
On créé la table et l'utilisateur zabbix :
Ensuite, on importe la structure de la base de données :
On modifie quelques valeurs dans le fichier de configuration de PHP :
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 :
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 :
Moi j'ai ceci mais adaptez avec votre cas :
On autorise les communications :
Ou si vous vous en fichez de la sécurité, désactiver le pare-feu :
Si SELinux est actif, il faut penser à autoriser Zabbix et Apache à communiquer ensemble :
Mais aussi zabbix à utiliser le réseau dans le cas de vérifications externes ou de services tcp :
Pour ceux qui veulent désactiver SeLinux, passer à disabled la variable SELINUX dans les fichiers /etc/selinux/config et /etc/sysconfig/selinux
On active tous les services :
Puis on les démarre :
On se rend sur la page web du serveur : http://ip_du_serveur/zabbix/ et on arrive sur cette page :
On fait suivant et on arrive sur l'écran de récapitulation des prérequis :
On fait suivant puis on arrive sur l'écran de configuration de la connexion à la base de données :
On complète les bonnes infos puis Suivant :
On complète les infos sur le serveur local puis Suivant. On a un résumé de la configuration :
On fait suivant et on a cet écran qui nous dit que tout est OK. On clique sur Finish.
On se connecte à l'interface. Par défaut, l'utilisateur est admin et le mot de passe zabbix :
Et nous voilà connecté !
Comme pour le serveur on s'assure d'être à jour :
On active les dépôts EPEL :
On installe le dépôt de Zabbix :
On installe l'agent via :
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"
On active au démarrage le service de l'Agent Zabbix puis on le démarre :
Si on est sûr que le service MySQL est UP mais que Zabbix renvoie toujours "Down", analyser les logs :
Si on a ce genre de message :
Editer la section [client] de /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) :
Introduction
ZABBIX est un logiciel permettant de surveiller l'état de divers services réseau, serveurs et autres matériels réseau.
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 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 :
On fait suivant et on arrive sur l'écran de récapitulation des prérequis :
On fait suivant puis on arrive sur l'écran de configuration de la connexion à la base de données :
On complète les bonnes infos puis Suivant :
On complète les infos sur le serveur local puis Suivant. On a un résumé de la configuration :
On fait suivant et on a cet écran qui nous dit que tout est OK. On clique sur Finish.
On se connecte à l'interface. Par défaut, l'utilisateur est admin et le mot de passe zabbix :
Et nous voilà connecté !
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