Raspberry Pi : monitorer le système avec Zabbix
Lors d’un précédent article, j’avais donné les explications pour installer l’outil Monitorix. Aujourd’hui c’est d’un autre outil de monitoring dont nous allons faire l’installation : Zabbix
Si vous voulez choisir un outil pour surveiller votre système ou juste par curiosité, je vais (essayer de) vous proposer une petite série d’articles avec différents logiciels.
Ici c’est de Zabbix dont nous allons parler. Un peu plus professionnel que Monitorix, l’entreprise propose une version open source installable par tous. C’est par contre plus complexe … Et autant le dire de suite, sa configuration est vraiment pas simple et les performances ne sont vraiment pas top. Alors si vous avez des astuces d’optimisations, je suis preneur !
La version utilisée pour cet article est la version 2.0.4. L’article a été mis à jour pour la version 2.0.6.
C’est parti !
- Mettre à jour le système
apt-get update
- Installer les packages suivant
apt-get install fping sqlite3 libsnmp-dev php5-gd php5-sqlite php5-dev libiksemel-dev libsqlite3-dev libcurl4-openssl-dev php5-curl make
- Télécharger Zabbix sur le site officiel. Décompresser l’archive
- Aller dans le répertoire de zabbix. Tout va se faire depuis ce répertoire qui contient les scripts nécessaires
- Lancer la configuration
./configure --enable-server --enable-agent --with-sqlite3 --with-net-snmp --with-jabber --with-libcurl
- Lancer la compilation
make
- Installer
make install
- Ajouter le user zabbix
adduser zabbix
- Créer le répertoire pour SQLite si vous ne l’avait pas déjà installé
mkdir /var/lib/sqlite
- Créer et configurer la base de données associée dans SQLite (Remplacer /var/lib/sqlite si vous avez installé SQLite ailleurs)
cd database/sqlite3 sqlite3 /var/lib/sqlite/zabbix.db < schema.sql sqlite3 /var/lib/sqlite/zabbix.db < images.sql sqlite3 /var/lib/sqlite/zabbix.db < data.sql chown -R zabbix:zabbix /var/lib/sqlite chmod 774 /var/lib/sqlite chmod 664 /var/lib/sqlite/zabbix.db
- Ajouter le user www-data dans le groupe zabbix afin de lui donner les droits d’accéder à la base de données
adduser www-data zabbix
- Dans le fichier /usr/local/etc/zabbix_server.conf, changer la ligne
DBName=zabbix
par
DBName=/var/lib/sqlite/zabbix.db
- Configurer et installer les scripts de démarrage
cp misc/init.d/debian/zabbix-server /etc/init.d/ chmod 755 /etc/init.d/zabbix-server cp misc/init.d/debian/zabbix-agent /etc/init.d/ chmod 755 /etc/init.d/zabbix-agent
- Si besoin, vous pouvez modifier les scripts pour qu’ils soient compatibles LSB et qu’ils ne rentrent pas en conflit avec d’autres scripts (minidlna chez moi) :Voilà mon message d’erreur :
insserv: There is a loop between service minidlna and zabbix-server if stopped
insserv: loop involving service zabbix-server at depth 2
insserv: loop involving service minidlna at depth 1
insserv: Stopping zabbix-server depends on minidlna and therefore on system facility `$all’ which can not be true!
insserv: Stopping zabbix-agent depends on minidlna and therefore on system facility `$all’ which can not be true!
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
Donc pour résoudre ce problème, la solution est d’ajouter les lignes suivantes juste après #!/bin/sh (donc à partir de la ligne 2) :
### BEGIN INIT INFO
# Provides: zabbix-server
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Initialize Zabbix server
# Description:
### END INIT INFO
Ci dessous c’est le bloc pour le script /etc/init.d/zabbix-server. Vous pouvez utiliser le même pour /etc/init.d/zabbix-agent, en remplaçant server par agent.
- Ajouter les scripts au lancement
update-rc.d zabbix-server defaults update-rc.d zabbix-agent defaults
- Installer le front-end qui est fourni avec Zabbix
mkdir /var/www/zabbix cp -a frontends/php/* /var/www/zabbix/ chown -R www-data:www-data /var/www/zabbix
- Lancer les scripts manuellement ou rebooter le Raspberry Pi
/etc/init.d/zabbix-server start /etc/init.d/zabbix-agent start
- Créer un nouveau site zabbix dans la configuration de nginx (pour plus d’informations sur l’installation Nginx avec le support PHP vous pouvez voir ici). Le contenu du fichier /etc/nginx/sites-available/zabbix :
server { listen 8090; # A vous de choisir ! root /var/www/zabbix; index index.php; server_name zabbix; error_log /var/log/nginx/zabbix_error.log; access_log /var/log/nginx/zabbix_access.log; location ~ .php$ { include /etc/nginx/fastcgi_params; try_files $uri =404; fastcgi_index index.php; fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php5-fpm.sock; } }
- Activer le site
ln -s /etc/nginx/sites-available/zabbix /etc/nginx/sites-enabled/zabbix
- Modifier les paramètres de configuration PHP dans /etc/php5/fpm/php.ini pour avoir ces valeurs au minimum
max_execution_time = 300 max_input_time = 300 post_max_size = 16M date.timezone = Europe/Paris (liste des zones : http://fr2.php.net/manual/fr/timezones.php)
- Installer les packages supplémentaires pour optimiser les performances
apt-get install php5-fpm php-pear php-apc php5-gd php5-curl
- Relancer Nginx et php-fpm
service nginx restart service php5-fpm restart
- A partir de là c’est vraiment plus simple : connectez vous sur l’ip avec le bon numéro de port et suivez les instructions.Attention sur l’écran 3 à bien choisir SQlite 3 et indiquer le chemin où vous avez installer la DB
Pré requis
Configuration de la base de données
Configuration du serveur
Résumé de la configuration
Fin de l’installation
Par défaut le login est Admin/zabbix (attention au A majuscule)
Ecran de connexion de Zabbix une fois installé
A vous ensuite de configurer l’application. Vous trouverez toute l’aide sur le site de Zabbix.
Et comme je vous le disais en début d’article, si vous avez des pistes d’optimisation, n’hésitez pas !