Zabbix est un logiciel de supervision open source pour monitorer des serveurs, des matériels réseaux, des applications et beaucoup d'autres choses.
Dans cet article, nous installerons zabbix 5.0 sur une distribution Linux Centos 8 avec une base de donnée MariaDB et le serveur web Apache.
Nous avons utilisé la documentation en ligne sur le site de Zabbix.
Pré-requis: installation de la base de donnée MariaDB
[root@Centos-zabbix ~]# dnf install mariadb-server
...
Résumé de la transaction
=========================================================================================================
Installer 54 Paquets
Taille totale des téléchargements : 43 M
Taille des paquets installés : 208 M
Voulez-vous continuer ? [o/N] : o
...
Terminé !
[root@Centos-zabbix ~]#
Puis on démarre le logiciel de base de donnée MariaDB
[root@Centos-zabbix ~]# systemctl start mariadb
[root@Centos-zabbix ~]# systemctl enable mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
[root@Centos-zabbix ~]# **systemctl status mariadb**
● mariadb.service - MariaDB 10.3 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2020-07-04 21:24:59 CEST; 29s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
...
[root@Centos-zabbix ~]#
On crée le mot de passe root de la base et on configure quelques éléments de sécurité comme la désactivation du compte root pour les connexions à distance et la suppression des bases de test.
[root@Centos-zabbix ~]# mysql_secure_installation
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Remove anonymous users? [Y/n]
... Success!
Disallow root login remotely? [Y/n]
... Success!
Remove test database and access to it? [Y/n]
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n]
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
[root@Centos-zabbix ~]#
Installation du logiciel zabbix
Téléchargement du dépot Centos
[root@Centos-zabbix ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
Récupération de https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
attention : /var/tmp/rpm-tmp.5zuCnH: Entête V4 RSA/SHA512 Signature, clé ID a14fe591: NOKEY
Verifying... ################################# [100%]
Préparation... ################################# [100%]
Mise à jour / installation...
1:zabbix-release-5.0-1.el8 ################################# [100%]
[root@Centos-zabbix ~]# dnf clean all
20 fichiers supprimés
[root@Centos-zabbix ~]#
Téléchargement des paquets et installation de zabbix
On installe aussi l'agent zabbix pour superviser le serveur Zabbix.
root@Centos-zabbix ~]# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent
...
Résumé de la transaction
=========================================================================================================
Installer 38 Paquets
Taille totale des téléchargements : 15 M
Taille des paquets installés : 58 M
Voulez-vous continuer ? [o/N] : o
...
Terminé !
[root@Centos-zabbix ~]#
Initialisation de la base de donnée
On se connecte à la base MariaDB avec le compte root précédemment créé et on crée la base Zabbix ainsi qu'un utilisateur.
[root@Centos-zabbix ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.3.17-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> create user zabbix@localhost identified by 'passwordcompliqué';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> quit;
Bye
[root@Centos-zabbix ~]#
Création du schéma dans la base de donnée zabbix
[root@Centos-zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password:
Configuration de la base de donnée dans le fichier de conf de zabbix
La ligne du mot de passe est décommentée et on indique le mot de passe de l'utilisateur zabbix de la base de donnée.
[root@Centos-zabbix ~]# vi /etc/zabbix/zabbix_server.conf
...
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=passwordcompliqué
...
Configuration pour l'interface web
Pour les tests, on laisse le port 80 (http). Pour une mise en production, il faudra penser à mettre un certificat et utiliser le protocole https.
On configure la timezone pour le serveur.
[root@Centos-zabbix ~]# vi /etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Europe/Paris
On modifie le pare-feu du serveur pour ouvrir le port 80 (http) pour l'accès à l'interface web ainsi que le port 10051 pour recevoir les requêtes des agents.
[root@Centos-zabbix ~]# firewall-cmd --zone=public --permanent --add-service=http
success
[root@Centos-zabbix ~]# firewall-cmd --zone=public --permanent --add-port=10051/tcp
success
[root@Centos-zabbix ~]# firewall-cmd --reload
success
[root@Centos-zabbix ~]# firewall-cmd --zone=public --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: cockpit dhcpv6-client http ssh
ports: 10051/tcp
Démarrage de Zabbix et des services associés
Commande pour démarrer les services:
[root@Centos-zabbix ~]# systemctl enable zabbix-server zabbix-agent httpd php-fpm
Une message d'erreur s'affiche, mettant en cause SELinux. Voici quelques commandes pour gérer le problème.
Gestion de SELinux
Avant de démarrer, il faut configurer SELinux. Deux solutions: soit vous le désactivez, soit vous effectuez quelques ajustements.
Dans ce tuto, je vais faire modifier des éléments de configuration.
Dans mon cas, suite au démarrage de Zabbix, l'erreur qui apparait dans le fichier /var/log/audit/audit.log est:
type=AVC msg=audit(1593899510.129:785): avc: denied { dac_override } for pid=3460 comm="zabbix_server" capability=1 scontext=system_u:system_r:zabbix_t:s0 tcontext=system_u:system_r:zabbix_t:s0 tclass=capability permissive=0
type=AVC msg=audit(1593898076.353:225): avc: denied { create } for pid=1921 comm="zabbix_agentd" scontext=system_u:system_r:zabbix_agent_t:s0 tcontext=system_u:system_r:zabbix_agent_t:s0 tclass=unix_dgram_socket permissive=0
Je lance la commande suivante sur le fichier:
[root@Centos-zabbix audit]# sealert -a /var/log/audit/audit.log
Et j'effectue les modifications indiquées suite à cette commande.
[root@Centos-zabbix ~]# ausearch -c "zabbix_server" --raw | audit2allow -M my-zabbixserver
******************** IMPORTANT ***********************
Pour activer cette politique de paquet, exécutez:
semodule -i my-zabbixserver.pp
[root@Centos-zabbix ~]# semodule -i my-zabbixserver.pp
[root@Centos-zabbix ~]# ausearch -c "zabbix_agentd" --raw | audit2allow -M my-zabbixagentd
******************** IMPORTANT ***********************
Pour activer cette politique de paquet, exécutez:
semodule -i my-zabbixagentd.pp
[root@Centos-zabbix ~]# semodule -X 300 -i my-zabbixagentd.pp
[root@Centos-zabbix ~]#
Enfin, je lance les commandes suivantes:
[root@Centos-zabbix ~]# setsebool httpd_can_network_connect 1
[root@Centos-zabbix ~]# setsebool -P zabbix_can_network 1
[root@Centos-zabbix ~]# setsebool -P daemons_enable_cluster_mode 1
Démarrage des services
Dans mon cas, les modifications sur SELinux permettent de démarrer les services sans désactiver SELinux.
[root@Centos-zabbix ~]# systemctl enable zabbix-server zabbix-agent httpd php-fpm
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-server.service → /usr/lib/systemd/system/zabbix-server.service.
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent.service → /usr/lib/systemd/system/zabbix-agent.service.
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.
[root@Centos-zabbix ~]# systemctl restart zabbix-server zabbix-agent httpd php-fpm
Connexion à l'interface web Zabbix
L'interface de bienvenue s'affiche.
On vérifie que toute les options sont à OK.
On configure l'accès à la base en entrant le mot de passe au minimum.
On entre le nom du serveur ou son IP ainsi que le port d'écoute du serveur Zabbix.
Enfin, le résumé des informations saisies.
On peut maintenant se connecter.
Le nom d'utilisateur par défaut est: Admin. Le mot de passe zabbix par défaut est: zabbix.
Si vous avez des remarques ou des questions, n'hésitez pas à laisser un message dans le e-mail contact au bas de la page.