L’auteur a choisi le Computer History Museum comme bénéficiaire d’une donation dans le cadre du programme Write for Donations.

Introduction

Zabbix est un logiciel de surveillance open-source pour les réseaux et les applications. Il permet de surveiller en temps réel des milliers de métriques collectées à partir de serveurs, de machines virtuelles, de périphériques réseau et d’applications web. Ces métriques peuvent vous aider à déterminer la santé actuelle de votre infrastructure informatique et à détecter les problèmes liés aux composants matériels ou logiciels avant que les clients ne se plaignent. Les informations utiles sont stockées dans une base de données afin que vous puissiez analyser les données au fil du temps et améliorer la qualité des services fournis ou planifier la mise à niveau de votre équipement.

Zabbix utilise plusieurs options pour rassembler des métriques, notamment la surveillance sans agent des services aux utilisateurs et l’architecture client-serveur. Pour collecter les métriques du serveur, il utilise un petit agent sur le client surveillé pour rassembler les données et les envoyer au serveur Zabbix. Zabbix prend en charge la communication cryptée entre le serveur et les clients connectés, de sorte que vos données sont protégées lorsqu’elles circulent sur des réseaux non sécurisés.

Le serveur Zabbix stocke ses données dans une base de données relationnelle alimentée par MySQL ou PostgreSQL. Vous pouvez également stocker des données historiques dans des bases de données NoSQL comme Elasticsearch et TimescaleDB. Zabbix fournit une interface web qui vous permet de visualiser les données et de configurer les paramètres du système.

Dans ce tutoriel, vous allez configurer Zabbix sur deux machines Ubuntu 20.04. L’un sera configuré comme le serveur Zabbix, et l’autre comme un client que vous surveillerez. Le serveur Zabbix utilisera une base de données MySQL pour enregistrer les données de surveillance et utilisera Nginx pour servir l’interface web.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de :

  • Deux serveurs Ubuntu 20.04 configurés en suivant le Guide de configuration initiale du serveur pour Ubuntu 20.04, comprenant un non root user avec des privilèges sudo et un pare-feu configuré avec ufw. Sur un serveur, vous installerez Zabbix ; ce tutoriel fera référence à ce dernier comme étant le serveur Zabbix. Il surveillera votre second serveur ; ce second serveur sera appelé le second serveur Ubuntu.
  • Le serveur qui fera fonctionner le serveur Zabbix nécessite l’installation de Nginx, MySQL et PHP. Suivez les étapes 1 à 3 de notre guide LAMP Stack Ubuntu 20.04 pour les configurer sur votre serveur Zabbix.
  • Un nom de domaine enregistré. Tout au long de ce tutoriel, nous utiliserons your_domain. Vous pouvez acheter un nom de domaine sur Namecheap, en obtenir un gratuitement avec Freenom, ou utiliser le bureau d’enregistrement de domaine de votre choix.
  • Les deux enregistrements DNS suivants ont été configurés pour votre serveur Zabbix. Si vous utilisez DigitalOcean, veuillez consulter notre documentation DNS pour plus de détails sur la façon de les ajouter.
  • Un enregistrement A avec your_domain pointant sur l’adresse IP publique de votre serveur Zabbix.
  • Un enregistrement A avec www.``your_domain​​​​​​ pointant sur l’adresse IP publique de votre serveur Zabbix.

En outre, comme le serveur Zabbix est utilisé pour accéder à des informations précieuses sur votre infrastructure auxquelles vous ne voudriez pas que des utilisateurs non autorisés accèdent, il est important que vous gardiez votre serveur sécurisé en installant un certificat TLS/SSL. Ceci est facultatif mais fortement encouragé. Si vous souhaitez sécuriser votre serveur, suivez les instructions du guide Let’s Encrypt sur Ubuntu 20.04 après l’étape 3 de ce tutoriel.

Étape 1 - Installer le serveur Zabbix

Tout d’abord, vous devez installer Zabbix sur le serveur sur lequel vous avez installé MySQL, Nginx et PHP. Connectez-vous à cette machine en tant que non-root user :

ssh sammy@zabbix_server_ip_address

Zabbix est disponible dans le gestionnaire de packages d’Ubuntu, mais il est dépassé. Utilisez donc le dépôt officiel de Zabbix pour installer la dernière version stable. Téléchargez et installez le paquet de configuration du dépôt :

wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

Vous verrez le résultat suivant :

Output

Selecting previously unselected package zabbix-release.
(Reading database ... 64058 files and directories currently installed.)
Preparing to unpack zabbix-release_5.0-1+focal_all.deb ...
Unpacking zabbix-release (1:5.0-1+focal) ...
Setting up zabbix-release (1:5.0-1+focal) ...

Mettez à jour l’index des packages afin que le nouveau dépôt soit inclus :

sudo apt update

Ensuite, installez le serveur Zabbix et le frontend web avec le support de la base de données MySQL :

sudo apt install zabbix-server-mysql zabbix-frontend-php

Installez également l’agent Zabbix, qui vous permettra de recueillir des données sur l’état du serveur Zabbix lui-même.

sudo apt install zabbix-agent

Avant de pouvoir utiliser Zabbix, vous devez créer une base de données contenant les données que le serveur Zabbix collectera auprès de ses agents. Vous pouvez le faire lors de la prochaine étape.

Étape 2 - Configurer la base de données MySQL pour Zabbix

Vous devez créer une nouvelle base de données MySQL et la remplir avec quelques informations de base afin de la rendre compatible avec Zabbix. Vous créerez également un utilisateur spécifique pour cette base de données afin que Zabbix ne se connecte pas à MySQL avec le compte root.

Connectez-vous à MySQL en tant que root user :

sudo mysql

Créez la base de données Zabbix avec le support des caractères UTF-8 :

create database zabbix character set utf8 collate utf8_bin;

Créez ensuite un utilisateur que le serveur Zabbix utilisera, donnez-lui accès à la nouvelle base de données et définissez le mot de passe de l’utilisateur :

create user zabbix@localhost identified by 'your_zabbix_mysql_password';
grant all privileges on zabbix.* to zabbix@localhost;

Cela prend soin de l’utilisateur et de la base de données. Sortez de la console de la base de données.

quit;

Ensuite, vous devez importer le schéma et les données initiales. L’installation de Zabbix vous a fourni un fichier qui permet de configurer cela.

Exécutez la commande suivante pour configurer le schéma et importer les données dans la base de données zabbix. Utilisez zcat car les données dans le fichier sont compressées :

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

Entrez le mot de passe pour l’utilisateur MySQL zabbix que vous avez configuré lorsque vous y avez été invité.

L’exécution de cette commande peut prendre une minute ou deux. Si vous voyez l’erreur ERROR 1045 (28000): Access denied for userzabbix@ 'localhost' (using password: YES) alors assurez-vous que vous avez utilisé le bon mot de passe pour l’utilisateur zabbix.

Pour que le serveur Zabbix puisse utiliser cette base de données, vous devez définir le mot de passe de la base de données dans le fichier de configuration du serveur Zabbix. Ouvrez le fichier de configuration dans votre éditeur de texte préféré. Ce tutoriel utilisera nano :

sudo nano /etc/zabbix/zabbix_server.conf

Cherchez la section suivante du dossier :

/etc/zabbix/zabbix_server.conf

...
#### Option: DBPassword                           
##       Database password. Ignored for SQLite.   
##       Comment this line if no password is used.
##                                                
## Mandatory: no                                  
## Default:                                       
## DBPassword=
...

Ces commentaires dans le dossier expliquent comment se connecter à la base de données. Vous devez définir la valeur du DBPassword dans le fichier au mot de passe de l’utilisateur de votre base de données. Ajoutez cette ligne après ces commentaires pour configurer la base de données :

/etc/zabbix/zabbix_server.conf

...
DBPassword=your_zabbix_mysql_password
...

Enregistrez et fermez zabbix_server.conf en appuyant sur CTRL+X, puis sur Y et enfin sur ENTER si vous utilisez nano.

Vous avez maintenant configuré le serveur Zabbix pour vous connecter à la base de données. Ensuite, vous configurerez le serveur web Nginx pour servir le frontend Zabbix.

Étape 3 - Configurer Nginx pour Zabbix

Pour configurer Nginx automatiquement, installez le paquet de configuration automatique :

sudo apt install zabbix-nginx-conf

Vous obtiendrez ainsi le fichier de configuration/etc/zabbix/nginx.conf, ainsi qu’un lien vers celui-ci dans le répertoire de configuration de Nginx /etc/nginx/conf.d/zabbix.conf.

Ensuite, vous devez apporter des modifications à ce dossier. Ouvrez le fichier de configuration :

sudo nano /etc/zabbix/nginx.conf

Le fichier contient une configuration de bloc serveur Nginx générée automatiquement. Il contient deux lignes qui déterminent le nom du serveur et le port sur lequel il écoute :

/etc/zabbix/nginx.conf

server {
##        listen          80;
##        server_name     example.com;
...

Décommentez les deux lignes, et remplacez example.com par votre nom de domaine. Vos paramètres ressembleront à ceci :

/etc/zabbix/nginx.conf

server {
        listen          80;
        server_name     your_domain;
...

Enregistrez et fermez le fichier. Ensuite, procédez à un test pour vous assurer qu’il n’y a aucune erreur de syntaxe dans aucun de vos fichiers Nginx et relancez la configuration :

sudo nginx -t
sudo nginx -s reload

Maintenant que Nginx est configuré pour servir le frontend de Zabbix, vous allez apporter quelques modifications à votre configuration PHP afin que l’interface web de Zabbix fonctionne correctement.

Note :  Comme mentionné dans la section « Prérequis », il est recommandé d’activer SSL/TLS sur votre serveur. Si vous souhaitez le faire, suivez notre tutoriel Ubuntu 20.04 Let’s Encrypt  avant de passer à l’étape 4 afin d’obtenir un certificat SSL gratuit pour Nginx. Ce processus détectera automatiquement le blocage de votre serveur Zabbix et le configurera pour le HTTPS. Après avoir obtenu vos certificats SSL/TLS, vous pouvez revenir et compléter ce tutoriel.

#ubuntu

Comment installer,configurer Zabbix et configurer des serveurs à distance sur Ubuntu 20.04
3.10 GEEK