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

Raspberry Pi Home Server – Monitorer le système avec 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 !

  1. Mettre à jour le système
    apt-get update
  2. 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
  3. Télécharger Zabbix sur le site officiel. Décompresser l’archive
  4. Aller dans le répertoire de zabbix. Tout va se faire depuis ce répertoire qui contient les scripts nécessaires
  5. Lancer la configuration
     ./configure --enable-server --enable-agent --with-sqlite3 --with-net-snmp --with-jabber --with-libcurl
  6. Lancer la compilation
     make
  7. Installer
     make install
  8. Ajouter le user zabbix
     adduser zabbix
  9. Créer le répertoire pour SQLite si vous ne l’avait pas déjà installé
     mkdir /var/lib/sqlite
  10. 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
  11. 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
  12. Dans le fichier /usr/local/etc/zabbix_server.conf, changer la ligne
    DBName=zabbix

    par

    DBName=/var/lib/sqlite/zabbix.db
  13. 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
  14. 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.

  15. Ajouter les scripts au lancement
     update-rc.d zabbix-server defaults
    
     update-rc.d zabbix-agent defaults
  16. 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
  17. Lancer les scripts manuellement ou rebooter le Raspberry Pi
     /etc/init.d/zabbix-server start
    
     /etc/init.d/zabbix-agent start
  18. 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;
    
     }
    
     }
  19. Activer le site
    ln -s /etc/nginx/sites-available/zabbix /etc/nginx/sites-enabled/zabbix
  20. 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)
  21. Installer les packages supplémentaires pour optimiser les performances
     apt-get install php5-fpm php-pear php-apc php5-gd php5-curl
  22. Relancer Nginx et php-fpm
    service nginx restart
    
    service php5-fpm restart
  23. 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
Raspberry Pi Home Server – Monitorer le système avec Zabbix

Pré requis

Raspberry Pi Home Server – Monitorer le système avec Zabbix

Configuration de la base de données

Raspberry Pi Home Server – Monitorer le système avec Zabbix

Configuration du serveur

Raspberry Pi Home Server – Monitorer le système avec Zabbix

Résumé de la configuration

Raspberry Pi Home Server – Monitorer le système avec Zabbix

Fin de l’installation

Par défaut le login est Admin/zabbix (attention au A majuscule)

Raspberry Pi Home Server – Monitorer le système avec Zabbix

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 !

Vous aimerez aussi...