Installation Zabbix
>>> Debian 8.2 (Jessie) & Zabbix 3.2.1
Description :

Le but de cet article est d’installer Zabbix sur la dernière distribution de Debian Jessie (8.2). L’installation de Zabbix passe par plusieurs étapes que je vais décrire ici.

>>> Debian 8.2 (Jessie) & Zabbix 3.2.1

Sommaire :

I) Introduction
1) Présentation du projet
2) Présentation de Zabbix
II) Installation
1) Configuration sources APT et mise à jour
2) Installation des paquets
3) Vérification présence du MTA
III) Post-Installation Configuration
1) Téléchargement des MIB
2) Création de la base de données Zabbix
3) Démarrage du process Zabbix Server
4) Configuration PHP pour Zabbix Frontend
5) Installation via interface WEB
IV) Configuration rapide
1) Présentation de l’interface web
2) Changement mot de passe
3) Changer la langue de l’interface
4) Création groupes et utilisateurs
5) Configuration des média
V) Configuration
1) Ajout d’un hôte
2) Découverte du réseau
3) Groupes d’hôtes
4) Actions
5) Période de maintenance
VI) Agent Zabbix Windows
VII) Conclusion


I) Introduction

1) Présentation du projet

Deuxième étape de mon projet supervision, tester la solution Zabbix.

Vous pouvez retrouver la première étape du projet supervision en cliquant ici

La supervision est très importante en entreprise, afin de prévenir les pannes et afin d’être averti des pannes. Il existe plusieurs solutions de supervisions payantes et gratuites. La supervision concerne autant les serveurs que les équipements réseaux.

2) Présentation de Zabbix

Zabbix est un logiciel qui supervise de nombreux paramètres réseaux ainsi que la santé et l’intégrité des serveurs. Zabbix utilise un mécanisme de notification flexible qui permet aux utilisateurs de configurer une base d’alerte e-mail pour pratiquement tous les événements. Cela permet une réponse rapide aux problèmes serveurs. Zabbix offre un excellent reporting et des fonctionnalités de visualisation de données basées sur les données stockées.

Les principales fonctionnalités de Zabbix sont les suivantes :
 une supervision répartie avec une administration web centralisée, afin que la récolte des données ne soit pas interrompu en cas de problème réseau,
 une supervision de site web avec recherche de motif et scénarios de navigation,
 un fonctionnement en actif et/ou passif, le serveur Zabbix va récupérer les données via des agents sur les éléments supervisés, et/ou, ce sont les éléments supervisés qui vont envoyer au serveur Zabbix les données,
 une interface web pour une visualisation efficace de l’états des éléments réseaux et des données récoltées,
 la notification par e-mail, messagerie instantanée, sms, et pratiquement n’importe quel autre moyen, pour être informé rapidement lors qu’un problème apparaît,
 le calcul de SLA, pour avoir une vue "commerciale" des services,
 une supervision sans agent, par SNMP, par SSH ou encore par IPMI, pour les serveurs ou éléments réseaux ne permettant pas l’installation de l’agent zabbix,
 un agent haute performance en natif (Logiciel client pour Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000, Windows 2003, Windows XP, Windows Vista)
 une supervision proactive, pour une interaction forte avec vos équipements (relance de services, extinction, reboot ...)
 la découverte automatique des serveurs et périphériques réseaux, pour surveiller les nouveaux serveurs dés que ceux-ci sont présents sur le réseau,

II) Installation

1) Configuration sources APT et mise à jour

a) Configuration des sources APT

Pour installer la dernière version de Zabbix, nous avons besoin d’ajouter une source APT supplémentaire.
 Tapez les commandes suivantes :

http://repo.zabbix.com/zabbix/3.2/debian/pool/main/z/zabbix-release/zabbix-release_3.2-1+jessie_all.deb
dpkg -i zabbix-release_3.2-1+jessie_all.deb

 Puis vérifiez dans le fichier "/etc/apt/sources.list" que vous avez bien les dépendances "non-free" et "contrib".

deb http://ftp.fr.debian.org/debian/ jessie main contrib non-free

b) Mise à jour de la BDD APT

La configuration APT étant terminée, il faut maintenant mettre à jour la BDD avec les nouvelles sources.

 Tapez la commande suivante :

apt-get update

2) Installation des paquets

Voici la liste de paquets que vous devez installer :
 zabbix-server-mysql
 zabbix-frontend-php
 zabbix-agent
 snmpd
 php5-mysql
 snmp-mibs-downloader

aptitude install zabbix-server-mysql zabbix-frontend-php zabbix-agent snmpd php5-mysql snmp-mibs-downloader snmp

 Vous devez obtenir ceci :

Les NOUVEAUX paquets suivants vont être installés :
  apache2{a} apache2-bin{a} apache2-data{a} apache2-utils{a} fping{a}
  libaio1{a} libapache2-mod-php5{a} libapr1{a} libaprutil1{a}
  libaprutil1-dbd-sqlite3{a} libaprutil1-ldap{a} libcurl3{a}
  libdbd-mysql-perl{a} libdbi-perl{a} libgd3{a} libhtml-template-perl{a}
  libiksemel3{a} libltdl7{a} liblua5.1-0{a} libmysqlclient18{a} libodbc1{a}
  libonig2{a} libopenipmi0{a} libperl5.20{a} libqdbm14{a} libsensors4{a}
  libsnmp-base{a} libsnmp30{a} libterm-readkey-perl{a} libvpx1{a}
  libxpm4{a} mysql-client{a} mysql-client-5.5{a} mysql-common{a}
  mysql-server{a} mysql-server-5.5{a} mysql-server-core-5.5{a} php5{a}
  php5-cli{a} php5-common{a} php5-gd{a} php5-json{a} php5-ldap{a}
  php5-mysql php5-readline{a} snmpd ssl-cert{a} ttf-dejavu-core{a}
  zabbix-agent zabbix-frontend-php zabbix-server-mysql
0 paquets mis à jour, 51 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de télécharger 26,7 Mo d'archives. Après dépaquetage, 172 Mo seront utilisés.

 Pendant l’installation du paquet "mysql-server", on vous demandera de saisir le mot de passe de la base de données :

 Puis de confirmer le mot de passe :

3) Vérification présence du MTA

Zabbix utilise l’agent de transfert de courrier par défaut pour envoyer les mails. Vous devez confirmer qu’un agent MTA est bien installé sur votre machine (par exemple : exim ou postfix).

 Tapez la commande suivante pour vérifier la présence d’un MTA sur votre serveur :

telnet 127.0.0.1 25

Vous devez obtenir ceci :

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 zabbix ESMTP Exim 4.84_2 Wed, 02 Nov 2016 17:00:36 +0100

La commande "telnet 127.0.0.1 25" permet d’interroger votre serveur sur le port 25 (port 25 : smtp), s’il y a une réponse alors un agent MTA est installé, sinon vous devez en installer un.

 Si vous n’avez pas de MTA, tapez la commande suivante :

apt-get install default-mta

Par défaut sur Debian, l’agent MTA est Exim4. Acceptez la configuration par défaut de debconf quand vous installez votre Agent.

III) Post-Installation Configuration

1) Téléchargement des MIB

Pour pouvoir superviser des équipements réseaux, vous devez télécharger les MIBs SNMP.

 Tapez la commande suivante :

download-mibs

2) Création de la base de données

 Créez la base de données Zabbix et l’utilisateur Zabbix sur Mysql Serveur.
 Tapez les commandes suivantes :

mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 44
Server version: 5.5.49-0+deb8u1 (Debian)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.01 sec)

mysql> quit;
Bye

 Tapez les commandes suivantes pour remplir la base de données :

cd /usr/share/doc/zabbix-server-mysql
zcat create.sql.gz | mysql -u root -p zabbix

Enter password:

3) Démarrage du process Zabbix Server

 Editez maintenant le fichier "zabbix_server.conf".

vim /etc/zabbix/zabbix_server.conf

 Recherchez et modifiez les champs suivants :

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

 Démarrez le service "Zabbix-server".

service zabbix-server start

4) Configuration PHP pour Zabbix Frontend

 Le fichier de configuration Apache pour Zabbix frontend se trouve dans "/etc/apache2/conf-available/zabbix". Plusieurs paramètres PHP sont déjà configurés.
 Editez le fichier "/etc/apache2/conf-available/zabbix"

vim /etc/apache2/conf-available/zabbix

 Recherchez et vérifiez les champs suivants :

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 always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga

 Décommentez le champ "Date.timezone" et configurez-le avec votre timezone.

php_value date.timezone Europe/Paris

 Redémarrez ensuite le serveur Apache.

service apache2 restart

5) Installation via interface WEB

 Connectez-vous via votre navigateur web sur l’adresse http://ADRESSE_IP_DE_VOTRE_SERVEUR/zabbix
 Cliquez sur "Next Step" pour commencer l’installation.

 Vérifiez que tous les paramètres sont "OK", puis cliquez sur "Next Step".

 Définissez les paramètres de la base de données MySQL. Cliquez sur "Next Step".

 Définissez le nom du serveur.

 Cliquez sur "Next Step".

 Cliquez sur "Finish".

L’installation est maintenant terminée.

IV) Configuration rapide

1) Présentation de l’interface web

Avant de présenter l’interface web, il faut s’authentifier.

Le login et le mot de passe par défaut est :

login : Admin
password : zabbix

Voici l’interface web de Zabbix :

2) Changement mot de passe

Le mot de passe n’étant pas très sécurisé, nous allons le changer.

 Dans le menu en haut à droite, cliquez sur l’icône "Admin"

 Puis sur "Change Password".

 Définissez le nouveau mot de passe, cliquez ensuite sur "Update"

3) Changer la langue de l’interface

Le Français étant disponible pour l’interface web, nous allons donc changer la langue.

 Dans le menu en haut à droite, cliquez sur l’icône "Admin"

 Repérez le champ "Language".

 Sélectionnez dans le menu-déroulant de "Language" la ligne "French_(fr_FR)".

 Cliquez sur "Update" pour valider.

4) Création groupes et utilisateurs

a) Création d’un groupe

Imaginez que vous supervisez à la fois des routeurs, switches et serveurs. Les personnes à prévenir en cas de problème entre les trois catégories sont différentes. Nous allons donc créer un groupe d’utilisateurs gérant les routeurs, un autre pour les switches et un dernier pour les serveurs.

 Dans le menu en haut à gauche, cliquez sur "Administration".

 Puis sur "Groupes d’utilisateurs".

 Cliquez sur "Créer un groupe d’utilisateurs".

 Saisissez le nom du groupe et cliquez sur "Ajouter".

 Cliquez sur l’onglet "Permissions".

 Vous devez ajouter le droit de lecture au groupe, sinon vous ne recevrez pas les mails. Tapez le nom du "Groupe d’hôtes" correspondant et cliquez sur "Lecture". Enfin cliquez sur le lien "Ajouter".

 Cliquez sur le bouton "Ajouter".

 Vous pouvez voir que votre nouveau groupe est bien présent dans la liste.

b) Création d’un utilisateur

Nous allons maintenant créer trois utilisateurs, un utilisateur par catégorie :

  • User1-switches
  • User2-routeurs
  • User3-serveurs

 Dans le menu en haut à gauche, cliquez sur "Administration", puis sur "Utilisateurs".

 Cliquez sur "Créer un utilisateur".

 Saisissez les paramètres suivants :

  • Identifiant
  • Prénom
  • Nom de famille
  • Mot de passe
  • Langue

 Pour définir un groupe, cliquez sur "Ajouter". Sélectionnez le groupe.

 Cliquez sur "Ajouter" ou sur "Actualiser" pour confirmer les paramètres.

 Cliquez sur l’onglet "Média".

 Cliquez sur le lien "Ajouter"

 Définissez :

  • Le type de média "Email"
  • L’adresse mail
  • Le type de sévérité
     Cliquez sur "Ajouter".

Dans le champ "Lorsque actif", vous pouvez définir si l’utilisateur doit recevoir les mails du lundi au dimanche et de 00h00 à 24h00.

 Vous pouvez voir la liste des utilisateurs créés.

5) Configuration des médias

Les "médias" permettent de définir comment notifier un utilisateur. Il existe plusieurs types de média (Mail, SMS, Jabber, ...).

Pour définir un nouveau média, vous devez cliquer sur "Administration", puis sur "Types de média" et enfin "Créer un type de média".

Je n’expliquerai pas dans cet article comment faire, car les trois médias de bases (Mail, Jabber, SMS) sont suffisants.

 Nous allons configurer le média "Email". Vous devez cliquer sur "Administration", puis sur "Types de média" et enfin "Créer un type de média".

 Vous pouvez voir les trois types de média, cliquez sur "Email".

 Définissez les paramètres de votre SMTP et cliquez sur "Actualisez".

Si tout va bien, votre serveur Zabbix est maintenant configuré pour envoyer des mails. Il reste à ajouter des hôtes et des actions.

V) Configuration

1) Ajout d’un hôte

a) Activation de l’hôte Zabbix-server

Commençons par activer l’hôte "Zabbix Server" qui est déjà créé.

 Dans le menu en haut à gauche, cliquez sur "Configuration".

 Cliquez sur "Hôtes".

 Sélectionnez "Zabbix server", puis cliquez sur "Activer".

Vous pouvez observer que l’état est passé à "Activé".

b) Création d’un hôte

Nous allons ajouter un hôte, qui sera mon switch Cisco SW01-SR1-01.

 Toujours dans le menu "Configuration" et dans "Hôtes", cliquez sur "Créer un hôte"

 Une nouvelle fenêtre s’affiche avec plusieurs onglets. Commençons par configurer le premier onglet "Hôte" avec les informations ci-dessous :

  • Nom de l’hôte : Correspond au nom de l’équipement, celui qui s’affichera dans l’interface Zabbix.
  • Nom visible : Même chose
  • Groupes : Vous devez utiliser le groupe "Discoverred hosts"
  • Interfaces de l’agent : Sur un switch Cisco nous n’avons pas d’agent Zabbix, donc il faut supprimer la ligne.
  • Interfaces SNMP : Définissez ici l’adresse IP de l’équipement ainsi que la macro $SNMP_COMMUNITY
  • Interface JMX : Sur un switch Cisco nous n’avons pas d’agent JMX, donc ne modifiez rien.
  • Interface IPMI : Même chose.

 Cliquez sur le deuxième onglet "Modèles".

 Cliquez sur le bouton "Sélectionner", Sélectionnez ensuite le "Template SNMP Device" et cliquez de nouveau sur le bouton "Sélectionner".

 Cliquez sur le lien "Ajouter".

 Vous pouvez observer que le template est passé dans l’encadré "Modèles liés".

 Cliquez sur le quatrième onglet "Macros".

 Définissez la macro "$SNMP_COMMUNITY" et la valeur correspondante. La communauté utilisée sur mon switch est "IDUM_RW".

 Cliquez sur le cinquième onglet "Inventaire d’hôtes".

 Cliquez sur "Automatique".

 Puis pour finir, cliquez sur le bouton "Ajouter" tout en bas de la page.

 Une fois ajouté, le nouvel hôte apparaît dans la liste.

Attention : Il faut un certain temps avant que toutes les informations remontent dans l’interface.

2) Découverte du réseau

Zabbix offre la possibilité de configurer des "Découverte". Pour simplifier, il s’agit de scan réseau avec différents protocoles (Ping, SSH, HTTP, HTTPS,etc). Nous allons mettre en place 3 règles de "Découverte" :

  • Ping
  • HTTP et HTTPS
  • SSH

Pour configurer une découverte, dans le menu en haut à gauche, cliquez sur "Configuration".

 Cliquez ensuite sur "Découverte".

 Cliquez sur "Créer une règle de découverte".

 Définissez les paramètres suivants :

  • Le nom de la règle
  • La plage d’adresse IP à scanner

 Dans la zone "Vérifications", cliquez sur "Nouveau". Sélectionnez Ping CIMP". Cliquez sur le lien "Ajouter".

 Puis pour terminer, cliquez sur le bouton "Ajouter".

 Vous pouvez observer que les règles sont bien ajoutées et actives.

Après plusieurs minutes d’attente, si je regarde mon tableau de bord je peux voir que Zabbix a découvert des équipements réseaux.

3) Groupes d’hôtes

Comme indiqué dans le chapitre IV.4.a) création des groupes utilisateurs, nous voulons différencier le problème de switch, de routeur et de serveur.

Nous allons maintenant créer trois groupes d’hôtes.

 Dans le menu "Configuration", cliquez sur "Groupes d’hôtes".

 Cliquez sur "Créer un groupe d’hôtes".

 Définissez le nom du nouveau groupe. Dans mon cas, j’ajoute le switch Cisco "SW01-SR1-01" comme hôte membre du groupe. Pour terminer, cliquez sur le bouton "Ajouter".

 Comme vous pouvez le voir, mon nouveau groupe est bien ajouté. J’ai aussi créé les deux autres groupes.

4) Actions

Maintenant que les groupes d’hôtes sont créés, nous allons définir une action envoi de mail.

 Dans le menu "Configuration", cliquez sur "Actions".

 Cliquez sur "Créer une action".

 Définissez le nom de l’action. Puis dans la zone "Nouvelle condition", sélectionnez la nouvelle condition "Groupe d’hôtes". Cliquez ensuite sur le bouton "Sélectionner".

 Sélectionnez le groupe "switches", puis cliquez sur le bouton "Sélectionner"

 Cliquez sur le lien "Ajouter".

 Cliquez sur l’onglet "Opérations". Cliquez sur le lien "Nouveau" dans la zone "Opérations".

 Dans la zone "Envoyer aux groupes utilisateurs", ajouter le groupe "Supervision switches". Sélectionner "Email" dans la zone "Envoyer uniquement à". Pour valider, cliquez sur le lien "Ajouter".

 Cliquez sur l’onglet "Opérations de récupération". Cliquez sur "Nouveau" dans la zone "Opérations".

 Sélectionnez le type d’opération "Envoyer le message de récupération", puis cliquez sur le lien "Ajouter".

 Cliquez sur le bouton "Ajouter".

 On observe que les actions ont bien été ajoutées.

5) Période de maintenance

Pour éviter de recevoir des alertes lors d’intervention de maintenance, Vous pouvez déclarer une "Période de maintenance".

 Pour déclarer une période de maintenance, dans le menu en haut à gauche, cliquez sur "Configuration" puis sur "Maintenance".

 Cliquez sur "Créer une période de maintenance".

 Définissez :

  • Le nom de la période de maintenance
  • La période où cette période sera active.
  • La description
     Puis cliquez sur l’onglet "Périodes".

 Définissez la "Périodicité" et cliquez sur le lien "Ajouter".

 Vous pouvez observer que la "Périodicité" est bien ajoutée. Cliquez sur l’onglet "Hôtes & Groupes".

 C’est ici que l’on va définir les équipements impactés. Sélectionnez un équipement ou un groupe et basculez le dans la zone "En maintenance". Pour finir, cliquez sur "Ajouter".

 Vous pouvez observer que la "Période de maintenance" est bien active.

 Si vous retournez dans le menu "Configuration" > "Hôtes", vous pouvez voir que l’équipement "SW02-SR1-01" est indiqué en maintenance.

VI) Agent Zabbix Windows

Dans ce nouveau chapitre, nous allons apprendre à installer un agent Zabbix.

 Commencer par télécharger le client Zabbix sur le site Zabbix (cliquez sur ici), allez dans la partie "Zabbix pre-compiled agents".

 Créez un nouveau répertoire dans "C :\Program Files" par exemple "Zabbix".
 Extraire les fichiers de l’archive dans le nouveau dossier.

 Ouvrez une invite de commande "CMD" en mode administrateur. Pour cela, ouvrez le "Gestionnaire de tâches", cliquez sur "Fichier", puis sur "Exécuter une nouvelle tâche".

 Tapez "CMD" et cochez l’option "Créez cette tâche avec des privilèges d’administration".

 Éditez le fichier de configuration présent dans le dossier "Zabbix\conf". Recherchez la ligne "Server=127.0.0.1".

 Modifiez la ligne pour indiquer l’adresse IP du serveur Zabbix.

 Même chose pour la ligne "ServerActive"

 Recherchez et modifiez la ligne "Hostname", et définissez le nom du serveur. Pour terminer, enregistrez et fermez le fichier de conf.

 Modifiez la ligne "LogFile"

 Tapez les commandes suivantes :

C:\Windows\system32>cd c:\Program Files\Zabbix\bin\win64

c:\Program Files\Zabbix\bin\win64>zabbix_agentd.exe -c "c:\Program Files\Zabbix\conf\zabbix_agentd.win.conf" --install
zabbix_agentd.exe [352]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [352]: event source [Zabbix Agent] installed successfully

c:\Program Files\Zabbix\bin\win64>zabbix_agentd.exe --start
zabbix_agentd.exe [992]: service [Zabbix Agent] started successfully

 Ajoutez le nouveau "Hôte" sur le serveur Zabbix. Cliquez sur "Configuration" > "Hôtes" > "Créer un hôtes". Définissez le "Nom de l’hôte", les "Groupes" et l’adresse IP de "L’interface de l’agent".

 Cliquez sur l’onglet "Modèles", ajoutez les modèles suivants :

  • Template App Zabbix Agent
  • Template ICMP Ping

 Cliquez sur l’onglet "Inventaire d’hôtes" et cliquez sur "Automatique".

 Cliquez sur "Ajouter".

 Vous pouvez observer que l’hôte est bien ajouté à la liste d’hôte.

ATTENTION : Si Zabbix n’arrive pas à communiquer avec le client-Zabbix, il faudra peut-être ajouter des règles de pare-feu pour autoriser les flux.

VII) Conclusion

Pour conclure, Zabbix est un bon outil de supervision mais principalement orienté Système :

Zabbix est trop tourné "Système", si vous voulez superviser des équipements réseaux il faudra ajouter des templates.
Zabbix est assez bien documenté mais pas forcément pour la dernière version.
Je trouvais Zabbix trop difficile à prendre en main. Mais à force de chercher et de visiter les menus, on finit par comprendre le fonctionnement de Zabbix.
L’avantage de Zabbix par rapport à OpenNMS, est qu’il n’est pas codé en Java donc c’est plus facile de coder et de rajouter des déclencheurs.

Je testerai donc dans un prochain article la solution de supervision : Nagios.