Installation Zabbix · 23 min read · Oct 09, 2025

Comment installer et configurer le serveur et le client Zabbix sur Rocky Linux 9

Zabbix est une solution de surveillance gratuite et open-source pour l’infrastructure informatique, comme les réseaux, les serveurs, les machines virtuelles et les services cloud. Son cœur est écrit en C et Java, avec le frontend écrit en PHP. Le frontend fournit une interface web pour suivre et surveiller des métriques telles que l’utilisation du réseau, la charge CPU, l’espace disque, etc., et envoyer des notifications basées sur des déclencheurs personnalisés.

Zabbix fonctionne selon un modèle Client/Serveur. Les clients ou agents disponibles pour divers systèmes d’exploitation contactent le serveur pour envoyer les données. Pour les systèmes sans agent, Zabbix offre la possibilité d’utiliser des protocoles de surveillance génériques tels que le Simple Network Management Protocol (SNMP) ou l’Intelligent Platform Management Interface (IPMI).

Dans ce tutoriel, vous apprendrez à installer le serveur Zabbix et le client sur un serveur Rocky Linux 9.

Prérequis

  • Deux serveurs exécutant Rocky Linux 9. L’un fonctionnera comme serveur et l’autre comme client que nous surveillerons à l’aide du serveur.
  • Un utilisateur non-root avec des privilèges sudo.
  • Un nom de domaine entièrement qualifié (FQDN) comme zabbix.example.com pointant vers votre serveur.
  • Un compte SMTP avec un service de messagerie comme Amazon SES ou Mailgun.
  • Tout est à jour. $ sudo dnf update
  • Quelques paquets essentiels sont nécessaires pour le tutoriel et le fonctionnement du serveur Zabbix. Certains d’entre eux seront déjà sur votre serveur. $ sudo dnf install wget curl nano unzip yum-utils policycoreutils-python-utils -y

Étape 1 - Configurer le pare-feu

La première étape consiste à configurer le pare-feu. Rocky Linux utilise Firewalld Firewall. Vérifiez l’état du pare-feu.

$ sudo firewall-cmd --state
running

Le pare-feu fonctionne avec différentes zones, et la zone publique est celle par défaut que nous utiliserons. Listez tous les services et ports actifs sur le pare-feu.

$ sudo firewall-cmd --permanent --list-services

Il devrait afficher la sortie suivante.

cockpit dhcpv6-client ssh

Les ports 10050 et 10051 sont nécessaires au serveur Zabbix pour se connecter à l’agent.

$ sudo firewall-cmd --add-port={10051/tcp,10050/tcp} --permanent

Autorisez les ports HTTP et HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Vérifiez à nouveau l’état du pare-feu.

$ sudo firewall-cmd --permanent --list-all

Vous devriez voir une sortie similaire.

public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: cockpit dhcpv6-client http https ssh
  ports: 10051/tcp 10050/tcp
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Rechargez le pare-feu pour activer les changements.

$ sudo firewall-cmd --reload

Étape 2 - Mettre SELinux en mode permissif

Configurez SELinux pour fonctionner en mode permissif. Dans ce mode, SELinux ne bloquera aucun processus mais enregistrera tout dans le fichier journal d’audit. Nous l’utiliserons plus tard pour configurer les règles SELinux.

$ sudo setenforce 0 && sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Vérifiez l’état de SELinux.

$ sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

Étape 3 - Configurer le dépôt Nginx et PHP

Le paquet Zabbix installera automatiquement PHP et Nginx. Mais il prendra des versions plus anciennes. Par conséquent, nous devons nous assurer que le processus installe la dernière version disponible.

Créez et ouvrez le fichier /etc/yum.repos.d/nginx.repo pour l’édition.

$ sudo nano /etc/yum.repos.d/nginx.repo

Collez le code suivant dedans.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Une fois que vous avez terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Activez le dépôt principal de Nginx.

$ sudo dnf config-manager --enable nginx-mainline

Ensuite, nous devons configurer le dépôt PHP.

La première étape consiste à récupérer le dépôt Epel.

$ sudo dnf install epel-release -y

Ensuite, installez le dépôt Remi.

$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

Vérifiez les flux PHP disponibles.

$ dnf module list php -y
Name    Stream              Profiles                                      Summary
php     8.1                 common [d], devel, minimal                    PHP scripting language

Remi's Modular repository for Enterprise Linux 9 - x86_64
Name    Stream              Profiles                                      Summary
php     remi-7.4            common [d], devel, minimal                    PHP scripting language
php     remi-8.0            common [d], devel, minimal                    PHP scripting language
php     remi-8.1            common [d], devel, minimal                    PHP scripting language
php     remi-8.2            common [d], devel, minimal                    PHP scripting language
php     remi-8.3            common [d], devel, minimal                    PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

La version par défaut est 8.1. Au moment de la rédaction de ce tutoriel, Zabbix est compatible avec PHP 8.2. Par conséquent, activez le dépôt PHP 8.2 de Remi. La prochaine version de Zabbix prendra en charge PHP 8.3, donc vous pouvez l’activer si votre version de Zabbix est 6.0.26 ou supérieure.

$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.2

Maintenant, nous pouvons procéder à l’installation de Zabbix.

Étape 4 - Installer le serveur Zabbix

Les paquets Zabbix sont fournis par défaut dans le dépôt EPEL. Avant de procéder à notre installation, nous devons les désactiver. Ouvrez le fichier /etc/yum.repos.d/epel.repo pour l’édition et ajoutez la ligne suivante sous la section [epel].

[epel]
...
excludepkgs=zabbix*

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

La dernière version de Zabbix est 6.4.x, mais nous allons nous en tenir à la version LTS (support à long terme) qui est beaucoup plus stable pour un environnement de production.

Installez le dépôt Zabbix.

$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm

Supprimez tout le cache RPM.

$ sudo dnf clean all

Installez le serveur Zabbix, le frontend et l’agent. Nous utiliserons le serveur PostgreSQL à cette fin et donc nous avons besoin du paquet zabbix-web-pgsql. Si vous utilisez MySQL/MariaDB/Percona, vous devrez installer le paquet zabbix-web-mysql.

$ sudo dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

Étape 5 - Installer et configurer PostgreSQL

Zabbix fonctionne avec PostgreSQL 13 et supérieur. Rocky Linux 9 est livré avec PostgreSQL 13 par défaut. Cependant, nous utiliserons PostgreSQL 16 pour notre tutoriel.

Installez le fichier RPM du dépôt PostgreSQL.

$ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Désactivez le module PostgreSQL intégré.

$ sudo dnf -qy module disable postgresql

Maintenant, vous pouvez installer PostgreSQL en utilisant la commande ci-dessous.

$ sudo dnf install -y postgresql16-server postgresql16-contrib

Initialisez la base de données.

$ sudo /usr/pgsql-16/bin/postgresql-16-setup initdb

Activez le service PostgreSQL.

$ sudo systemctl enable postgresql-16

Démarrez le service PostgreSQL.

$ sudo systemctl start postgresql-16

Vérifiez l’état du service PostgreSQL.

$ sudo systemctl status postgresql-16
? postgresql-16.service - PostgreSQL 16 database server
     Loaded: loaded (/usr/lib/systemd/system/postgresql-16.service; enabled; preset: disabled)
     Active: active (running) since Thu 2024-01-18 14:54:46 UTC; 10s ago
       Docs: https://www.postgresql.org/docs/16/static/
    Process: 3407 ExecStartPre=/usr/pgsql-16/bin/postgresql-16-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
   Main PID: 3412 (postgres)
      Tasks: 7 (limit: 24694)
     Memory: 17.4M
        CPU: 117ms
     CGroup: /system.slice/postgresql-16.service
             ??3412 /usr/pgsql-16/bin/postgres -D /var/lib/pgsql/16/data/
             ??3413 "postgres: logger "
             ??3414 "postgres: checkpointer "
             ??3415 "postgres: background writer "
             ??3417 "postgres: walwriter "
             ??3418 "postgres: autovacuum launcher "
             ??3419 "postgres: logical replication launcher "

Créez l’utilisateur de base de données Zabbix.

$ sudo -u postgres createuser --pwprompt zabbix

Vous serez invité à entrer le mot de passe.

Enter password for new role: 
Enter it again: 

Créez la base de données Zabbix.

$ sudo -u postgres createdb -O zabbix zabbix

Importez le schéma initial et les données de la base de données. Vous serez à nouveau invité à entrer votre mot de passe.

zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

Ce processus peut prendre quelques minutes pour se terminer.

Ouvrez le fichier /etc/zabbix/zabbix_server.conf pour l’édition.

$ sudo nano /etc/zabbix/zabbix_server.conf

Trouvez la variable DBPassword, décommentez-la en supprimant le hachage (#) devant elle, et définissez sa valeur sur le mot de passe choisi à l’étape précédente.

DBPassword=psqlpassword

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Démarrez et activez les services du serveur et de l’agent Zabbix.

$ sudo systemctl enable zabbix-server zabbix-agent --now

Étape 6 - Configurer PHP

Zabbix installe des fichiers de configuration PHP et Nginx que nous allons utiliser. Cependant, nous devons apporter quelques modifications avant de pouvoir les utiliser.

Tout d’abord, nous devons ouvrir /etc/php-fpm.d/zabbix.conf pour l’édition.

$ sudo nano /etc/php-fpm.d/zabbix.conf

Changez les valeurs de user = apache, et group = apache en nginx comme indiqué ci-dessous.

user = nginx
group = nginx

C’est parce que, comme nous utilisons Nginx à partir de son dépôt officiel, il fonctionne sous l’utilisateur nginx et non apache, qui est ce sous quoi la copie de distribution de Nginx fonctionne.

Vous pouvez également modifier d’autres valeurs liées à PHP ou ajouter des définitions personnalisées ici. Une fois terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Démarrez et activez le service PHP-FPM.

$ sudo systemctl enable php-fpm --now

Étape 7 - Installer SSL

Nous devons installer Certbot pour générer le certificat SSL. Nous utiliserons le gestionnaire de paquets Snapd pour cela. Comme Rocky Linux ne l’inclut pas, installez le gestionnaire Snapd. Il nécessite le dépôt EPEL (Extra Packages for Enterprise Linux) pour fonctionner. Mais comme nous l’avons déjà installé à l’étape 3, nous pouvons directement avancer.

Installez Snapd.

$ sudo dnf install -y snapd

Activez et démarrez le service Snap.

$ sudo systemctl enable snapd --now

Installez le paquet de base Snap, et assurez-vous que votre version de Snapd est à jour.

$ sudo snap install core && sudo snap refresh core

Créez les liens nécessaires pour que Snapd fonctionne.

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

Installez Certbot.

$ sudo snap install --classic certbot

Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Vérifiez si Certbot fonctionne correctement.

$ certbot --version
certbot 2.8.0

Exécutez la commande suivante pour générer un certificat SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d zabbix.example.com

La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/zabbix.example.com sur votre serveur.

Générez un certificat de groupe Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Vérifiez le service de planification de renouvellement de Certbot.

$ sudo systemctl list-timers

Vous trouverez snap.certbot.renew.service comme l’un des services programmés pour s’exécuter.

NEXT                        LEFT          LAST                        PASSED       UNIT                        ACTIVATES                 -------------------------------------------------------------------------------------------------------------------------------------    
Sat 2024-01-20 10:04:02 UTC 1min 32s left Sat 2024-01-20 08:52:11 UTC 1h 10min ago dnf-makecache.timer         dnf-makecache.service
Sun 2024-01-21 00:00:00 UTC 13h left      Sat 2024-01-20 00:00:10 UTC 10h ago      logrotate.timer             logrotate.service
Sat 2024-01-20 21:13:00 UTC 11h left      Sat 2024-01-20 08:19:11 UTC 1h 43min ago snap.certbot.renew.timer    snap.certbot.renew.service

Faites un essai à blanc du processus pour vérifier si le renouvellement SSL fonctionne correctement.

$ sudo certbot renew --dry-run

Si vous ne voyez pas d’erreurs, vous êtes prêt. Votre certificat se renouvellera automatiquement.

Étape 8 - Configurer Nginx

Zabbix installe un fichier de configuration Nginx par défaut. Nous devons l’éditer pour ajouter le code permettant d’activer les certificats SSL. Nous devons également changer le port listen et ajouter du code pour rediriger les liens HTTP vers HTTPS.

Ouvrez le fichier /etc/nginx/conf.d/zabbix.conf pour l’édition.

$ sudo nano /etc/nginx/conf.d/zabbix.conf

Modifiez le code pour que le fichier ressemble à ce qui suit.

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;

    root /usr/share/zabbix;

    index index.php;

    access_log  /var/log/nginx/zabbix.access.log;
    error_log   /var/log/nginx/zabbix.error.log;

    ssl_certificate      /etc/letsencrypt/live/zabbix.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/zabbix.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/zabbix.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location = /favicon.ico {
        log_not_found   off;
    }

    location / {
        try_files $uri $uri/ =404;
    }

    location /assets {
        access_log off;
        expires 10d;
    }

    location ~ \.ht {
        deny all;
    }

    location ~ /(api/|conf[^\.]|include|locale) {
        deny            all;
        return          404;
    }

    location /vendor {
        deny            all;
        return          404;
    }

    location ~ [^/\.php(/|$) {
        fastcgi_pass    unix:/run/php-fpm/zabbix.sock;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index   index.php;

        fastcgi_param   DOCUMENT_ROOT   /usr/share/zabbix;
        fastcgi_param   SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
        fastcgi_param   PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;

        include fastcgi_params;
        fastcgi_param   QUERY_STRING    $query_string;
        fastcgi_param   REQUEST_METHOD  $request_method;
        fastcgi_param   CONTENT_TYPE    $content_type;
        fastcgi_param   CONTENT_LENGTH  $content_length;

        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout         60;
        fastcgi_send_timeout            180;
        fastcgi_read_timeout            180;
        fastcgi_buffer_size             128k;
        fastcgi_buffers                 4 256k;
        fastcgi_busy_buffers_size       256k;
        fastcgi_temp_file_write_size    256k;
    }
}

# enforce HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  zabbix.example.com;
    return 301   https://$host$request_uri;
}

Une fois terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Ouvrez le fichier /etc/nginx/nginx.conf pour l’édition.

$ sudo nano /etc/nginx/nginx.conf

Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Vérifiez votre configuration Nginx.

$ sudo nginx -t

Démarrez et activez le service Nginx.

$ sudo systemctl enable nginx --now

Étape 9 - Accéder au frontend Zabbix

Avant d’installer le frontend Zabbix, définissez les permissions sur le répertoire /etc/zabbix/web afin que Nginx puisse y accéder.

$ sudo chown -R nginx:nginx /etc/zabbix/web

Ouvrez l’URL https://zabbix.example.com dans votre navigateur et vous obtiendrez l’écran suivant.

Zabbix Web Installer Home

Cliquez sur le bouton Next step pour terminer l’installation de Zabbix. La page suivante vérifie les exigences système et si elles sont toutes satisfaites.

Zabbix System Requirements Check

S’il n’y a pas de problème, cliquez sur le bouton Next step pour continuer. Ensuite, vous serez invité à entrer vos identifiants de base de données. Décochez l’option Database TLS encryption car nous ne l’avons pas configurée.

Zabbix Database details

Appuyez sur le bouton Next step pour continuer. Entrez le nom de votre serveur Zabbix. C’est cependant facultatif, mais s’il est configuré, il sera affiché dans la barre de menu et les titres de page.

Zabbix Settings

Appuyez sur le bouton Next step pour continuer. Vous serez invité à confirmer tous les paramètres.

Zabbix Installation summary

Si tout est en ordre, appuyez sur le bouton Next step pour continuer. Vous devriez voir le message vous informant que l’installation est réussie.

Zabbix Installation Complete

Cliquez sur le bouton Finish pour terminer le processus. Vous serez dirigé vers la page de connexion.

Zabbix Login Page

Le nom d’utilisateur par défaut est Admin et le mot de passe est zabbix. Entrez les informations de connexion et cliquez sur le bouton Sign in pour accéder au tableau de bord Zabbix.

Zabbix dashboard

Étape 10 - Configurer SELinux

Activez le démon HTTP pour se connecter à Zabbix.

$ sudo setsebool -P httpd_can_connect_zabbix 1

Autorisez Zabbix à se connecter à tous les ports TCP.

$ sudo setsebool -P zabbix_can_network on

Activez daemons_enable_cluster_mode pour éviter les erreurs du gestionnaire HA.

$ sudo setsebool -P daemons_enable_cluster_mode on

Créez un paquet de politique SELinux personnalisé en utilisant le journal d’audit.

$ sudo grep "denied.*zabbix" /var/log/audit/audit.log | audit2allow -M zabbix_policy
****************** IMPORTANT *********************  
Pour activer ce paquet de politique, exécutez :

semodule -i zabbix_policy.pp

Installez le paquet de politique SELinux personnalisé créé.

$ sudo semodule -i zabbix_policy.pp

Exécutez la commande pour vérifier les erreurs de base de données.

$ sudo sealert -a /var/log/audit/audit.log

Cela vous suggérera de nombreuses règles à appliquer.

Exécutez les commandes suivantes.

$ sudo ausearch -c 'php-fpm' --raw | audit2allow -M my-phpfpm
$ sudo semodule -X 300 -i my-phpfpm.pp
$ sudo ausearch -c 'zabbix_agentd' --raw | audit2allow -M my-zabbixagentd
$ sudo semodule -X 300 -i my-zabbixagentd.pp

Appliquez la politique pour permettre à Nginx d’accéder à PostgreSQL.

$ sudo setsebool -P httpd_can_network_connect_db 1

Appliquez la politique pour permettre des connexions vers des hôtes externes.

$ sudo setsebool -P httpd_can_network_connect 1

Mettez SELinux en mode enforcing.

$ sudo setenforce 1 && sudo sed -i 's/^SELINUX=.*/SELINUX=enforcing/g' /etc/selinux/config

Étape 11 - Installer l’agent Zabbix sur un système distant

Le principal travail de l’agent Zabbix est de recueillir des informations du système et de les envoyer au serveur Zabbix central pour analyse. Nous allons installer l’agent sur un système Rocky Linux 9, mais vous pouvez le faire sur n’importe quelle distribution.

Étape 11.1 - Configurer le pare-feu sur le système distant

Ouvrez le port 10050 pour permettre à l’agent Zabbix de se connecter au serveur.

$ sudo firewall-cmd --add-port=10050/tcp --permanent --zone=public
$ sudo firewall-cmd --reload

Étape 11.2 - Installer l’agent Zabbix

Vous devez répéter l’étape 4, sauf la dernière instruction d’installation. Cela signifie, éditer le fichier /etc/yum.repos.d/epel.repo et ajouter la ligne suivante dans la section [epel].

[epel]
...
excludepkgs=zabbix*

Ensuite, installez le dépôt Zabbix et nettoyez le cache RPM.

$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm
$ sudo dnf clean all

Installez l’agent Zabbix.

$ sudo dnf install zabbix-agent

Étape 11.3 Configurer l’agent Zabbix

Zabbix prend en charge le chiffrement basé sur des certificats, mais pour la simplicité de ce tutoriel, nous allons utiliser des clés pré-partagées (PSK) pour sécuriser la connexion entre le serveur et l’agent.

Générez un fichier PSK.

$ sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

Affichez la clé pour la copier.

$ cat /etc/zabbix/zabbix_agentd.psk
797c84746dfe86f71b0f207785906d2bb886be27149b296d86df6b1ec9de6bbe

Copiez cette clé car nous en aurons besoin plus tard.

L’agent Zabbix stocke sa configuration dans le fichier /etc/zabbix/zabbix-agentd.conf. Ouvrez-le pour l’édition.

$ sudo nano /etc/zabbix/zabbix_agentd.conf

Décommentez les variables suivantes et mettez à jour leurs valeurs comme indiqué ci-dessous.

Server=
ServerActive=
HostMetadata=ZabbixLinuxClient
Hostname=zabbixclient.example.com

Mettez l’adresse IP de votre serveur Zabbix comme valeur pour les variables Server et ServerActive. La variable HostMetadata peut être n’importe quoi que vous pouvez utiliser pour identifier le système. Elle est également utilisée dans le processus d’auto-enregistrement sur le frontend Zabbix dont nous parlerons plus tard. L’élément Hostname fait référence au nom d’hôte du nœud de l’agent Zabbix.

Vous pouvez trouver le nom d’hôte en utilisant la commande suivante.

$ cat /etc/hostname

Ensuite, trouvez la section qui configure une connexion sécurisée entre le serveur et l’agent. Trouvez la variable TLSConnect et changez sa valeur de unencrypted à psk comme indiqué ci-dessous.

...
### Option: TLSConnect
#       Comment l'agent doit se connecter au serveur ou au proxy. Utilisé pour les vérifications actives.
#       Une seule valeur peut être spécifiée:
#               unencrypted - se connecter sans chiffrement
#               psk         - se connecter en utilisant TLS et une clé pré-partagée
#               cert        - se connecter en utilisant TLS et un certificat
#
# Obligatoire: oui, si les paramètres de certificat TLS ou PSK sont définis (même pour une connexion 'unencrypted')
# Par défaut:
# TLSConnect=psk
...

Ensuite, localisez la section TLSAccept et changez sa valeur en psk comme indiqué ci-dessous.

...
### Option: TLSAccept
#       Quelles connexions entrantes accepter.
#       Plusieurs valeurs peuvent être spécifiées, séparées par des virgules:
#               unencrypted - accepter les connexions sans chiffrement
#               psk         - accepter les connexions sécurisées avec TLS et une clé pré-partagée
#               cert        - accepter les connexions sécurisées avec TLS et un certificat
#
# Obligatoire: oui, si les paramètres de certificat TLS ou PSK sont définis (même pour une connexion 'unencrypted')
# Par défaut:
# TLSAccept=psk
...

Ensuite, trouvez la section TLSPSKIdentity et changez sa valeur en PSK 001 comme indiqué.

...
### Option: TLSPSKIdentity
#       Chaîne unique, sensible à la casse, utilisée pour identifier la clé pré-partagée.
#
# Obligatoire: non
# Par défaut:
# TLSPSKIdentity=PSK 001
...

C’est l’ID PSK que vous utiliserez pour ajouter l’hôte via le frontend web Zabbix.

Enfin, localisez la section TLSPSKFile et changez sa valeur en fonction de l’emplacement du fichier PSK comme indiqué.

...
### Option: TLSPSKFile
#       Chemin complet d'un fichier contenant la clé pré-partagée.
#
# Obligatoire: non
# Par défaut:
# TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
...

Une fois terminé, enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Étape 11.4 - Démarrer l’agent Zabbix

Démarrez et activez le service de l’agent Zabbix.

$ sudo systemctl enable zabbix-agent --now

Étape 12 - Ajouter le client Zabbix au frontend Zabbix pour la surveillance

Nous pouvons ajouter un nouvel hôte aux groupes d’hôtes définis existants ou créer un nouveau groupe d’hôtes. Les groupes d’hôtes vous permettent de catégoriser les types de nœuds que vous surveillez. Pour créer un nouveau groupe d’hôtes, ouvrez l’option Host groups sous le menu Configuration.

Ajoutez le nom du groupe dans la case et cliquez sur le bouton Apply pour créer le groupe.

Pour créer un nouvel hôte, cliquez sur l’option Hosts sous le menu Configuration, et cliquez sur le bouton Create host en haut à droite.

Zabbix Create Hosts

Ajoutez le nom d’hôte du nœud Zabbix.

Tapez Linux par Zabbix agent dans la section Templates et sélectionnez le modèle dans le menu déroulant.

De même, tapez Linux Servers dans la section Groups et sélectionnez-le.

Cliquez sur le bouton Add sous la section Interfaces et sélectionnez Agent.

Ajoutez ensuite l’adresse IP du nœud client Zabbix. Une fois que vous avez terminé, la fenêtre contextuelle New host complète devrait ressembler à ce qui suit.

Zabbix New Host Popup

Ensuite, passez à l’onglet Encryption. Sélectionnez PSK pour les options Connections to host et Connections from host. Définissez l’PSK Identity sur PSK 001, qui est la valeur que nous avons définie à l’étape 11.3 pour la variable TLSPSKIdentity précédemment. Ensuite, définissez la valeur PSK comme la clé que vous avez générée sur la machine de l’agent.

Zabbix Agent Encryption

Une fois terminé, cliquez sur le bouton Add pour terminer l’ajout de l’hôte.

Vous devriez voir le nouvel hôte dans la liste avec une étiquette verte indiquant que l’agent est connecté au serveur et fonctionne comme prévu.

Zabbix Hosts List

Étape 13 - Configurer les notifications par e-mail

Zabbix prend en charge de nombreux types de notifications comme les e-mails, Slack, Telegram, SMS, etc. Pour les besoins de notre tutoriel, nous allons configurer les notifications par e-mail. Visitez le frontend Zabbix, cliquez sur Administration, puis sur Media types dans le menu de gauche. Vous verrez deux types d’e-mails, l’un pour les e-mails en texte brut et l’autre pour les e-mails HTML.

Zabbix Media Types

Cliquez sur l’option Email (HTML) et vous obtiendrez la page suivante.

Zabbix Email Media type Configure

Entrez les détails de votre serveur SMTP. Pour notre tutoriel, nous utilisons le service Amazon SES. Cliquez sur le bouton Update une fois terminé pour enregistrer les détails. Vous serez ramené à la page Media types. Cliquez sur le bouton Test sur la page pour tester les paramètres de messagerie. Cela créera une fenêtre contextuelle. Remplissez votre adresse e-mail et cliquez sur le bouton Test pour envoyer un e-mail de test.

Zabbix Test Email Popup

Vous devriez voir un message de succès sur la fenêtre contextuelle vous informant que cela a bien fonctionné et vous devriez recevoir l’e-mail suivant dans votre boîte de réception. Fermez la fenêtre contextuelle en cliquant sur le bouton Cancel.

Zabbix Test Email

Étape 14 - Créer un nouvel utilisateur

L’utilisateur par défaut de Zabbix n’est pas configuré pour recevoir des notifications. Bien que nous puissions le faire, l’utilisateur par défaut n’est pas non plus sûr à utiliser. La meilleure option est de créer un nouvel utilisateur et ensuite de désactiver l’utilisateur par défaut.

Visitez la section Administration >> Users du menu et cliquez sur le bouton Create user en haut à droite pour ouvrir la page suivante.

Zabbix New User page

Remplissez les détails de l’utilisateur. Sélectionnez Zabbix administrators comme groupe d’utilisateurs. Une fois terminé, cliquez sur l’onglet Media. Cliquez sur le bouton Add et sélectionnez Email (HTML) comme type.

Zabbix User Media Tab

Entrez votre adresse e-mail dans le champ Send to et cliquez sur le bouton Add pour ajouter l’option e-mail. Ensuite, passez à l’onglet Permissions et cliquez sur le bouton Select pour ajouter le Super admin role.

Zabbix User Permissions

Cliquez sur le bouton Add pour terminer l’ajout de l’utilisateur. Ensuite, vous devez vous déconnecter du frontend, vous reconnecter en tant que nouvel utilisateur, et revenir à la page des utilisateurs. Cliquez sur l’utilisateur Admin, sélectionnez le groupe Disabled, et mettez à jour l’utilisateur. Cela désactivera l’utilisateur par défaut.

Étape 15 - Envoyer une alerte de test

Par défaut, Zabbix suit la quantité d’espace libre sur le serveur. Il détecte tous les montages de disque et effectue des vérifications régulièrement.

La première étape consiste à activer le déclencheur de notification qui permet à Zabbix d’envoyer des notifications à tous les administrateurs. Zabbix a déjà configuré le déclencheur par défaut. Nous devons l’activer pour qu’il fonctionne. Visitez Configuration >> Actions >> Trigger actions et cliquez sur le statut Disabled pour le changer en Enabled comme indiqué.

Zabbix Trigger Actions

Ensuite, connectez-vous au nœud Zabbix et créez un fichier temporaire suffisamment grand pour déclencher une alerte d’utilisation du disque.

Tout d’abord, déterminez l’espace libre sur le serveur.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           780M   51M  730M   7% /run
/dev/vda2        94G   12G   78G  13% /
/dev/vda1       260M  7.0M  253M   3% /boot/efi
tmpfs           390M  4.0K  390M   1% /run/user/1001

Cela montre que nous avons environ 78 Go d’espace libre. Ensuite, utilisez la commande fallocate pour pré-allouer plus de 80 % de l’espace disque. C’est assez grand pour déclencher l’alerte.

$ fallocate -l 74G /tmp/temp.img

Vérifiez à nouveau l’utilisation du disque.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           780M   54M  726M   7% /run
/dev/vda2        94G   86G  3.9G  96% /
/dev/vda1       260M  7.0M  253M   3% /boot/efi
tmpfs           390M  4.0K  390M   1% /run/user/1001

Zabbix déclenchera une alerte concernant l’espace disque et enverra une alerte par e-mail à ce sujet. L’e-mail ressemblera à ce qui suit.

Zabbix Test Alert Email

Vous pouvez également vérifier le tableau de bord pour l’alerte qui devrait apparaître en quelques secondes.

Zabbix Disk Check Alert Monitoring Dashboard

Supprimez le fichier temporaire lorsque vous avez terminé.

$ rm -f /tmp/temp.img

Vous devriez recevoir un autre e-mail vous informant que le problème a été résolu.

Zabbix Test Issue resolved email

Étape 16 - Configurer l’auto-enregistrement pour les nœuds Linux

Lorsque vous devez ajouter plusieurs nœuds au serveur Zabbix, le processus peut devenir un peu fastidieux. Heureusement, le frontend Zabbix vous permet d’automatiser le processus en utilisant l’auto-enregistrement.

Visitez Actions >> Autoregistration actions et cliquez sur le bouton Create action en haut à droite.

Zabbix Autoregistrations Page

Une fois sur la nouvelle page, donnez un nom (Auto registration of Linux servers) à l’action.

Cliquez sur le bouton Add en dessous de Conditions pour ajouter une condition et choisissez Host metadata comme type, contains comme opérateur, et Linux comme valeur.

Zabbix Auto registration Conditions

Cliquez sur Add pour continuer et la page de création d’action devrait ressembler à ce qui suit.

Zabbix Autoregistration New Action Page

Cliquez sur l’onglet Operations, sélectionnez Add to host group comme opération, et sélectionnez Linux servers comme Host groups. Cliquez sur le bouton Add pour terminer.

Zabbix Autoregistration Operation Details

Si vous souhaitez utiliser le chiffrement PSK, vous pouvez également le configurer. Visitez le menu Administration >> General >> Autoregistration et activez les deux options de chiffrement. Entrez un ID PSK et une clé PSK créés sur le serveur Zabbix. Vous pouvez utiliser cet ID PSK et cette clé sur chaque nœud et ils seront chiffrés en utilisant ces valeurs.

Zabbix Autoregistration Encryption

Désormais, chaque fois que vous installerez et configurerez l’agent Zabbix sur un serveur Linux, il sera automatiquement ajouté au frontend Zabbix.

Conclusion

Cela conclut notre tutoriel sur l’installation et la configuration d’un serveur Zabbix sur un système Rocky Linux 9. Nous avons également installé un agent Zabbix sur un serveur distant pour le connecter au serveur. Si vous avez des questions, postez-les dans les commentaires ci-dessous.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.