Vous êtes sur la page 1sur 41

Documentation projet

Supervision
-Zabbix-
I. Table des matières
A. Qu’est-ce que la supervision : ..................................................................................................... 4
1. Exemple d’éléments de système qui peuvent être surveillés : ............................................... 4
B. Les superviseurs open source du marché : ................................................................................. 4
C. Zabbix .......................................................................................................................................... 4
1. Supervision active et passive : ................................................................................................. 4
D. RACI : ........................................................................................................................................... 5
E. Dimensionnement du serveur : ................................................................................................... 5
F. Installation du serveur................................................................................................................. 5
1. Commandes : ........................................................................................................................... 5
2. Parametrage du pare-feu ........................................................................................................ 5
3. Création de la base de données : ............................................................................................ 6
4. Configurtation de l’interface web : ......................................................................................... 6
5. Installation de l’agent .............................................................................................................. 6
6. Installation de la passerelle java ............................................................................................. 7
G. Déployer un client avec SNMP .................................................................................................... 7
1. Client linux : ............................................................................................................................. 7
2. Client Windows server :........................................................................................................... 7
3. Client windows ........................................................................................................................ 7
H. Déployer un client avec l’agent et le chiffrement PSK ................................................................ 8
I. Ajouter la supervision pour MySQL sur le serveur Zabbix ........................................................ 11
1. Création d’un utilisateur mysql ............................................................................................. 11
II. Installation d’un proxy................................................................................................................... 12
III. Gestions des droits .................................................................................................................... 17
A. Création des groupes................................................................................................................. 17
B. Création d’un rôle utilisateur .................................................................................................... 18
C. Création des utilisateurs............................................................................................................ 20
IV. Gestion des alertes par mails .................................................................................................... 22
A. Pré-requis .................................................................................................................................. 22
B. Alertes mail................................................................................................................................ 23
1. Configurer les médias mail .................................................................................................... 23
2. Ajouter le média messagerie aux utilisateurs ....................................................................... 24
3. Créer une action d’envoi de mail .......................................................................................... 25
V. Configuration des « vues » de supervision.................................................................................... 28
A. Création d’une map/cartographie............................................................................................. 28
B. Création d’un Dashboard/Tableau de bord .............................................................................. 31
1. Créer un nouveau Dashboard ............................................................................................... 31
2. Dashboard technicien............................................................................................................ 32
3. Dashboard Ingénieur ............................................................................................................. 34
VI. Enregistrement auto des périphériques ................................................................................... 35
A. Découverte automatique .......................................................................................................... 35
B. Enregistrement automatique .................................................................................................... 38
VII. Annexe : ..................................................................................................................................... 39
A. Contenu copiable. ..................................................................................................................... 39
1. Ajouter la supervision pour MySQL sur le serveur Zabbix .................................................... 39
B. Liens ........................................................................................................................................... 41
A. Qu’est-ce que la supervision :
La supervision est un ensemble d’outils et de ressources déployés permettant de surveiller des
éléments d’un système d’information 7jours sur 7 et 24h sur 24. Ceci permet de prévenir des pannes
éventuelles et avoir une démarche préventive et non curative.

Ainsi un service de supervision permet d’avoir un system d’information opérationnel et disponible de


manière plus optimisée que s’il ne l’était pas.

1. Exemple d’éléments de système qui peuvent être surveillés :


• Les espaces disques et capacités de stockage
• Les contrôles des services Windows
• Les sites webs et leurs disponibilités
• Les protections antivirus
• Les serveurs
• Les postes de travail
• L’espace de stockage
• Les performances de votre système d’information
• Les sauvegardes
• Les bases de données
• Les applications
• Ect…

B. Les superviseurs open source du marché :


Il existe beaucoup de superviseurs open source parmi les plus utilisés nous trouvons entre autres:

• Zabbix
• Centreon
• Nagios
• Prometheus
• Cacti

C. Zabbix
L’objectif de ce document est de présenter l’outil Zabbix.

1. Supervision active et passive :

Dans le cadre d’une supervision active l’agent sur le client envoie directement les données au serveur
Zabbix, quant à une supervision passive c’est le serveur qui vient requêter les agents du client.
D. RACI :

E. Dimensionnement du serveur :
Le dimensionnement préconisé par Zabbix pour les Vms de supervision est le suivant :

La configuration réelle dépend surtout du nombre d'éléments actifs et du taux de


rafraîchissement. Il est fortement recommandé d'exécuter la base de données séparément pour
les grands (et très grands) environnement.

F. Installation du serveur Centos 7


1. Commandes :
rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

# yum-config-manager --enable rhel-7-server-optional-rpms

# yum install zabbix-server-mysql

# yum install zabbix-proxy-mysql

# yum install zabbix-web-mysql

2. Parametrage du pare-feu
a) Partie serveur Zabbix :
b) Partie client:
Ouverture des ports snmp sur le port 161/UDP,

Ouverture du port 10050/TCP pour les agents Zabbix

Authoriser icmpv4 pour windows.

3. Création de la base de données :


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

Suivit d’une demande de mot de passe.

# service zabbix-server start

# systemctl enable zabbix-server

4. Configurtation de l’interface web :


dans /etc/httpd/conf.d/zabbix.conf :
php_value max_execution_time 300
php_value memory_limit 128M

php_value post_max_size 16M


php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000

php_value always_populate_raw_post_data -1
php_value date.timezone Europe/Paris
# setsebool -P httpd_can_connect_zabbix on
Si la base de données est accessible sur le réseau (y compris 'localhost' dans le cas de
PostgreSQL), vous devez également permettre à l’interface web Zabbix de se connecter à la
base de données :
# setsebool -P httpd_can_network_connect_db on

5. Installation de l’agent
# yum install zabbix-agent

# systemctl enable zabbix-agent

# systemctl start zabbix-agent


6. Installation de la passerelle java
# yum install zabbix-java-gateway

G. Déployer un client avec SNMP


1. Client linux :
Installer le client avec yum install net-snmp net-snmp-utils

2. Client Windows server :


Avec powershell faire la commande suivante :

Install-WindowsFeature -Name snmp-service -IncludeManagementTools -IncludeAllSubFeature

3. Client windows
Tapez dans la barre de recherche « Application par défaut »

Cliquer sur application et fonctionnalité puis sur fonctionnalité facultatives


H. Déployer un client avec l’agent et le chiffrement PSK
Nous commençons à générer une clef PSK que nous renseignerons côté client et côté serveur.

Cette clef nous permettra de chiffrer les communications entre le client et le serveur.

a) Serveur Zabbix
Côté serveur il faut remplir les cases « PSK identity » et « PSK » qui à était généré en amont sur le
client.
b) Windows :
Télécharger l’agent Zabbix sur le site web et commencer l’installation :

Pour faire des modifications post installation, le fichier est stocké dans →
c) Linux :
Procédure d’installation d’une clef psk sur linux

Modifier le fichier avec TLSconnect=PSK

Et TLSPSKIdentity=centos7

Enfin, modifiez l’emplacement du fichier dans lequel est stocké la clef.

Redémarrer le service.
I. Ajouter la supervision pour MySQL sur le serveur Zabbix
1. Création d’un utilisateur mysql
# mysql -u root -p

# grant usage on *.* TO 'monitoring'@'%' indentified by 'zabbix';

# exit;

# vi mysql.conf

# cd /etc/zabbix/

# touch .my.cnf

# vi .my.cnf

# cd /

# systemctl restart zabbix-agent

# vi /etc/zabbix/zabbix_agentd.conf

# mysql

# chown zabbix:zabbix /etc/zabbix/.my.cnf

# systemctl restart zabbix-agent

# tail /var/log/zabbix/zabbix_agentd.log

Ajouter dans /etc/zabbix/.my.cnf (copiable via l’annexe):


Dans /usr/share/doc/zabbix-agent-5.0.7/userparameter_mysql.conf ajouter ceci (copiable dans
l’annexe) :

II. Installation d’un proxy


A. Présentation
1. Architecture
L’utilisation d’un proxy Zabbix permet de monitorer des équipements qui se trouveraient dans un
réseau différent (autre VLAN ou WAN). Dans ce cas, il nous faut un proxy par réseau à monitorer.
2. Mode actif ou passif
Ces serveurs proxy servent de relais avec le serveur Zabbix principal, ils peuvent être en mode passif
ou actif. En mode actif, le proxy va récupérer la configuration et envoyer les données de lui-même au
serveur Zabbix. En mode passif, le serveur Zabbix devra d’abord se connecter au proxy et ensuite
celui-ci pourra envoyer les configurations et données.

Dans notre cas, nous allons configurer le proxy en mode actif, et permettre un mode passif en
failover.
B. Configuration
1. Installation des paquets version 5.2
wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-
1+ubuntu$(lsb_release -rs)_all.deb

sudo dpkg -i zabbix-release_5.2-1+ubuntu$(lsb_release -rs)_all.deb

sudo apt update

sudo apt -y install zabbix-proxy-mysql

2. Installation et configuration de la base de données MariaDB


sudo apt -y install mariadb-common mariadb-server mariadb-client

ou si problème installer la version 10.3 :

sudo apt -y install mariadb-common mariadb-server-10.3 mariadb-client-10.3

sudo systemctl start mariadb

sudo systemctl enable mariadb

sudo mysql_secure_installation
Enter current password for root (enter for none): Press the Enter
Set root password? [Y/n]: Y
New password: <Enter root DB password>
Re-enter new password: <Repeat root DB password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

sudo mysql -uroot -p[rootDBpass]

mysql> create database zabbix_proxy character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbix’;

mysql > flush privileges;

mysql> quit;

zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p'zabbix' zabbix_proxy


3. Configuration du proxy
nano /etc/zabbix/zabbix_proxy.conf

Changer les infos suivantes dans le fichier de conf :


Server=[ZABBIX IP]
Hostname=[Proxy Hostname]
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix
ConfigFrequency=100

sudo systemctl restart zabbix-proxy

sudo systemctl enable zabbix-proxy

Ensuite intégrer le proxy via l’interface graphique :

Ici, nous avons appelé le proxy : zabbixproxy


4. Activer le chiffrement PSK
Nous pouvons active le chiffrement PSK pour les communications entre le serveur Zabbix et le proxy
afin d’ajouter une couche de sécurité.

Generate PSK key :

openssl rand -hex 32 > /etc/zabbix/zabbix_proxy.psk

sudo chown zabbix:zabbix /etc/zabbix/zabbix_proxy.psk

sudo chmod 644 /etc/zabbix/zabbix_proxy.psk

sudo nano /etc/zabbix/zabbix_proxy.conf

Ajouter les paramètres suivants au fichier de conf :


TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/etc/zabbix/zabbix_proxy.psk
TLSPSKIdentity=ZBX-PSK-01

sudo systemctl restart zabbix-proxy

Ensuite nous paramétrons le chiffrement sur l’interface web du Zabbix :


III. Gestions des droits
Nous avons créé deux utilisateurs en plus de l’administrateur de Zabbix qui auront des niveaux de
droit différent : ingé et tech.

Tech aura seulement des droits de lecture et ingé des droits d’administration standards.
L’administrateur Zabbix a quant à lui des droits de super-admin qui donnent accès à l’ensemble des
fonctionnalités. Pour cela, plusieurs étapes sont à réaliser au préalable.

A. Création des groupes


Dans la version 5.2 de Zabbix, la gestion des autorisations passe par les groupes. Nous avons donc
créé deux groupes :

▪ IT Ingés
▪ IT Techs

Pour créer un groupe d’utilisateur, aller dans Administration > Groupe d’utilisateurs et cliquer sur
Créer un groupe d’utilisateur

Renter le nom du groupe et cocher activer pour l’instant. On peut également spécifier la méthode
d’accès à l’interface.
Nous configurons ensuite les permissions du groupe d’utilisateur. IT Techs aura des droits de lecture
seule sur les groupes d’hôtes et IT Ingés des droits de lecture-écriture.

IT Tech :

IT Ingés :

B. Création d’un rôle utilisateur


Le groupe des ingénieurs aura un rôle d’admin de la supervision car nous sommes dans une petite
structure. En revanche, les techniciens auront seulement un accès en lecture. Nous voulons
également restreindre leur accès par rapport au rôle utilisateur classique. Pour cela, nous devons
créer un rôle utilisateur spécifique.

Aller dans Administration > User roles et cliquer sur Create user rôle.

Nous configurons le nom du rôle et paramétrons ensuite les permissions liées à celui-ci.
C. Création des utilisateurs
Il nous reste plus qu’à créer les utilisateurs. Pour cela aller dans Administration > Utilisateurs et
cliquer sur Créer un utilisateur.

On renseigne ensuite les informations de l’utilisateur et on lui affecte un rôle.

Important : penser à affecter les groupes d’utilisateur et les rôles créés au préalable

Technicien :
Ingénieur :
IV. Gestion des alertes par mails
A. Pré-requis
Un système de gestion des mails est nécessaire pour envoyer des alertes mails depuis le serveur
Zabbix. Dans notre cas nous avons utilisé des BAL Gmail (donc serveur externalisé) et le relais SMTP
public de Gmail. Pour cela, nous devions autoriser « les applications moins sécurisées » dans Gmail :
Voici la config du relais SMTP de Gmail :

B. Alertes mail
Les alertes mail permettent de notifier les agents de la supervision quand un type choisi d’alertes
arrivent sur Zabbix. Plusieurs paramétrages sont à faire sur Zabbix :

1. Configurer les médias mail


Dans Administration > Type de média, paramétrer Email et Email (HTML) avec les infos suivantes :
Un compte gmail valide est nécessaire pour s’authentifier auprès du serveur de relais SMTP, ici nous
avons utilisé le compte : denardo.vincent@gmail.com.

2. Ajouter le média messagerie aux utilisateurs


Nous devons ensuite créer les utilisateurs qui seront notifiés par email. Pour cela, aller dans
Administration > Utilisateurs > [Nom utilisateur] > Média > Ajouter :
Nous pouvons configurer plusieurs adresses de messagerie et la sévérité des alertes pour lesquelles
un mail peut être envoyé.

3. Créer une action d’envoi de mail


La dernière étape est de configurer nos actions d’envoi de mail. Dans cet environnement nous
envoyons des alertes mails lorsque les conditions suivantes sont remplies :

Sévérité de l’alerte Notifier agent Temps avant escalade Agent cible de l’escalade
Avertissement Tech 1h Ingé
Moyen Tech 30 min Ingé
Haut ou Désastre Tech + Ingé 5 min Ingé

Pour créer une action, aller dans Configuration > Actions et créer une action :
D’abord, renseigner le nom et la condition de génération de l’alerte. Ici, le niveau de sévérité du
déclencheur doit être égal à « Moyen » pour générer cette alerte. Cocher « Activer » pour activer
l’alerte.

Ensuite nous configurons les opérations à réaliser si cette alerte est déclenchée. Nous en configurons
deux par alerte :

1. Premier déclencheur : Détection de l’incident


2. Deuxième déclencheur : Non prise en charge de l’incident par un agent

Nous avons également configuré des notifications pour tous les participants lorsqu’il y a une
opération de récupération ou de mise à jour de l’incident.

Ci-dessous la configuration des deux opérations :

Opération 1
La durée de l’étape est très importante à configurer car c’est elle qui va spécifier quand envoyer
l’escalade.
Opération 2

Ici il est bien important de rajouter la condition « Event is not acknowledged ». Ceci nous permet
d’envoyer cette seconde notification seulement si personne ne s’est attribué l’incident afin de créer
une escalade au N2 (ici l’utilisateur ingé).

V. Configuration des « vues » de supervision


A. Création d’une map/cartographie
La création d’une cartographie nous permet d’avoir une vue d’ensemble claire sur l’état des
équipements supervisés de manière continue.

Pour en créer une nouvelle, allez dans Surveillance > Cartes et cliquer sur créer une carte.
Rentrer ensuite les propriétés de la carte :

Et les configurations de partages. Ici, nous voulons que seulement les administrateurs de Zabbix
puissent modifier la carte, les équipes opérationnelles auront seulement un accès en lecture.
En 1 et 2, nous avons les liens nous permettant d’ajouter nos équipements réseau à la cartographie
et de les raccorder à notre serveur de supervision. Ensuite, nous configurons nos éléments pour
qu’ils représentent nos hôtes.

Important :

1. Ne rien remplir dans « Application » pour avoir tous les problèmes sur un équipement.
2. Nous avons défini la même icône mais avec une taille plus grande quand un problème
intervient sur l’équipement afin qu’il soit mis en évidence.
3. Nous avons configuré un déclencheur sur le lien au serveur Zabbix. Quand le ping ne
fonctionne plus entre le serveur et le client, le lien devient rouge.

Voici le rendu final :


B. Création d’un Dashboard/Tableau de bord
Nous pouvons configurer des dashboards spécifiques à chaque type d’utilisateur ayant accès au
Zabbix. O pourrait ainsi imaginer une vue pour les clients, une autre vue pour les équipes
opérationnelles et encore une autre pour les équipes de supervision.

Ici, nous avons configuré une vue différente pour les techniciens, ingénieurs et administrateurs. Dans
chaque vue, nous avons intégré la carte précédente ainsi que d’autres indicateurs.

1. Créer un nouveau Dashboard


Pour créer un nouveau dashboard, aller dans Surveillance > Tableau de bord et cliquer sur Créer un
tableau de bord.
Sélectionner ensuite le propriétaire et le nom du dashboard :

Ensuite ajouter les widgets que nous voulons intégrer à notre tableau de bord :

Nous configurons ensuite le partage du dashboard ensuite pour restreindre son accès aux
techniciens ou aux ingénieurs.

2. Dashboard technicien
Autorisations :
Dashboard :
3. Dashboard Ingénieur
Autorisations :
Dashboard :

VI. Enregistrement auto des périphériques


A. Découverte automatique
Il est possible de configurer la découverte automatique des équipements ou service sur le réseau via
Zabbix. Pour cela nous allons configurer plusieurs règles :

1. Découverte IP / SNMPv2 pour les clients Windows


2. Découverte IP / Agent Zabbix pour les clients Linux
3. Découverte HTTP / HTTPS pour les serveurs Web

Aller dans Configuration > Découverte et créer une nouvelle règle de découverte.
Découverte IP / SNMPv2 :
Découverte IP/Agent Zabbix :
Découverte service HTTP/HTTPS :

B. Enregistrement automatique
Pour paramétrer l’enregistrement automatique des hôtes découverts sur le réseau, nous allons créer
des actions pour automatiser l’intégration.

Ces règles vont :

1. Ajouter l’hôte dans le groupe d’hôtes « Discovered hosts »


2. Ajouter l’hôte dans les groupes d’hôtes :
a. « Virtual machine » si c’est un OS Windows
b. « Linux servers » si c’est un OS Linux
3. Lier l’hôte aux modèles :
a. Windows SNMP si OS Windows
b. Linux by Zabbix agent si OS Linux
4. Avertir l’équipe IT par mail qu’un nouvel hôte a été découvert

Aller dans Configuration > Actions > Discovery actions et créer une action.
Actions :

Opérations :

VII. Annexe :
A. Contenu copiable.
1. Ajouter la supervision pour MySQL sur le serveur Zabbix
a) Emplacement : etc/zabbix/.my.cnf :
[client]

user=zbx_monitor

password=zabbix

host=localhost

[mysql]

user=zbx_monitor

password=zabbix

host=localhost

[mysqladmin]

user=zbx_monitor

password=zabbix

host=localhost

b) Emplacement : /usr/share/doc/zabbix-agent-
5.0.7/userparameter_mysql.conf ou /etc/zabbix/zabbix-agentd.d

#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 4.2


#For OS Linux: You need create .my.cnf in zabbix-agent home directory (/var/lib/zabbix by
default)
#For OS Windows: You need add PATH to mysql and mysqladmin and create my.cnf in
%WINDIR%\my.cnf,C:\my.cnf,BASEDIR\my.cnf https://dev.mysql.com/doc/refman/5.7/en/option-
files.html
#The file must have three strings:
#[client]
#user=zbx_monitor
#password=<password>
#

UserParameter=mysql.ping[*], HOME=/etc/zabbix/ mysqladmin -h"$1" -P"$2" ping


UserParameter=mysql.get_status_variables[*], HOME=/etc/zabbix/ mysql -h"$1" -P"$2" -sNX -e
"show global status"
UserParameter=mysql.version[*], HOME=/etc/zabbix/ mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], HOME=/etc/zabbix/ mysql -h"$1" -P"$2" -sN -e "show
databases"
UserParameter=mysql.dbsize[*], HOME=/etc/zabbix/ mysql -h"$1" -P"$2" -sN -e "SELECT
SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TAB>
UserParameter=mysql.replication.discovery[*], HOME=/etc/zabbix/ mysql -h"$1" -P"$2" -sNX -e
"show slave status"
UserParameter=mysql.slave_status[*], HOME=/etc/zabbix/ mysql -h"$1" -P"$2" -sNX -e "show
slave status"

B. Liens
https://www.zabbix.com/documentation/current/manual/appliance

https://www.fosslinux.com/7705/how-to-install-and-configure-zabbix-on-centos-7.htm

https://www.zabbix.com/documentation/3.0/manual/discovery/network_discovery/rule

https://techexpert.tips/fr/zabbix-fr/zabbix-email-configuration-de-notification/

https://bestmonitoringtools.com/install-zabbix-proxy-on-ubuntu/

https://www.zabbix.com/documentation/current/manual/discovery/auto_registration

https://www.digitalocean.com/community/tutorials/comment-installer-mysql-sur-ubuntu-18-04-
fr

Vous aimerez peut-être aussi