Comment surveiller un réseau via un Raspberry Pi ? (Nagios)
Si vous avez un Raspberry Pi qui fonctionne en permanence sur votre réseau, vous pouvez l’utiliser comme serveur pour de nombreuses choses. J’ai souvent une solution de surveillance sur mon réseau pour garder un œil sur tous les appareils importants. J’utilise généralement Nagios pour cela, mais pourrait-il fonctionner sur Raspberry Pi ?
Il est possible d’installer Nagios sur un Raspberry Pi pour surveiller les appareils réseau. Il y a quelques exigences de base (Linux, Apache et PHP) et ensuite il est possible d’utiliser le même paquet core et les plugins Nagios que sur n’importe quel serveur Linux.
J’ai essayé quelques autres solutions que je mentionnerai rapidement, mais à mon avis, utiliser Nagios installé depuis ses sources est la meilleure façon de surveiller votre réseau sur Raspberry Pi. Et bien sûr, je vous donnerai le processus d’installation pas à pas.
Si vous débutez avec Raspberry Pi ou Linux, j’ai quelque chose qui peut vous aider !
Téléchargez ma fiche mémo des commandes Linux gratuitement – c’est un guide de référence rapide avec toutes les commandes essentielles dont vous aurez besoin utiliser votre Raspberry Pi. Cliquez ici pour l’obtenir gratuitement !
Quelle est la meilleure façon d’obtenir Nagios sur Pi ?
Lorsque j’ai essayé d’installer Nagios sur mon Raspberry Pi pour la première fois, j’ai fait un rapide tour des options.
J’ai remarqué différents projets et façons de l’installer, alors j’ai pris le temps de voir s’il y avait de meilleures options que d’utiliser la méthode traditionnelle à laquelle je suis habitué sur les serveurs Linux (en utilisant un serveur LAMP + les sources de Nagios).
Voici quelques-unes des options que j’ai trouvées :
- NagiosPi : Il est souvent plus facile de suivre les instructions pour un projet parallèle conçu et documenté en pensant au Raspberry Pi. Mais ce projet semble être mort, sans mise à jour depuis 2013, alors je suis vite passé à autre chose.
- Utiliser APT : Oui, Nagios est disponible via le gestionnaire de paquets de Raspberry Pi OS. Mais vous n’aurez souvent pas la dernière version. De plus, l’installer avec APT signifie que vous installerez de nouvelles versions sans contrôle (à chaque fois que vous faites une mise à jour système). C’est une bonne option si vous voulez le tester rapidement, mais pas nécessairement la meilleure pour les environnements de production.
- Installation de NEMSLinux : C’est une image préchargée que vous pouvez flasher sur votre carte SD avec Linux et Nagios, donc elle est prête à l’emploi. Le principal problème était ses performances. Je pense que trop de choses sont activées par défaut qui ne sont pas adaptées au Raspberry Pi (surtout les anciens modèles).
- Sources : Installer Nagios à partir des sources n’est pas si compliqué ou chronophage. C’est un moyen sûr d’obtenir la version exacte que vous voulez et d’activer uniquement ce dont vous avez besoin, pour ne pas surcharger votre Raspberry Pi avec des fonctionnalités inutiles.
Faites-le moi savoir dans la communauté si vous avez trouvé de meilleures solutions ou eu plus de succès avec certaines de celles énumérées ici, mais pour ce tutoriel, je vais vous donner toutes les étapes pour installer Nagios à partir des sources.
Comment installer Nagios sur votre Raspberry Pi
Voici les principales étapes pour installer Nagios sur Raspberry Pi :
- Avoir Raspberry Pi OS fonctionnel dessus.
- Installer les prérequis (Apache et PHP).
- Télécharger les fichiers Nagios depuis le site officiel.
- Extraire et compiler les sources pour votre système.
Voyons comment effectuer chaque étape en détail.
Installer Raspberry Pi OS
La première chose dont vous avez besoin est un système d’exploitation. Je pense que Raspberry Pi OS Lite est parfait pour ce projet, mais utilisez la version Desktop si vous êtes plus à l’aise avec.
Voici les premières étapes à compléter avant de continuer :
- Installer Raspberry Pi OS sur votre Raspberry Pi (lien vers mon tutoriel).
- Complétez la configuration du système pour définir vos préférences (langue, clavier, réseau, etc.).
- Assurez-vous que le système est à jour :
sudo apt update
sudo apt upgrade
sudo reboot - Activez SSH et assurez-vous d’y accéder depuis votre ordinateur.
L’idée est de suivre ce tutoriel sur votre ordinateur et de copier/coller les commandes vers le Pi via SSH.
C’est bon, système prêt, nous pouvons continuer.
Si les commandes Linux ce n’est pas trop votre truc, n’hésitez pas à jeter un œil à cet article qui vous explique les commandes qu’il faut absolument connaître. Je vous donne aussi une antisèche à télécharger pour les avoir toujours sous la main !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Téléchargements et prérequis
Nagios est une interface web, donc la première chose à faire est d’installer Apache et PHP :sudo apt install apache2 libapache2-mod-php
Ensuite, nous pouvons télécharger Nagios depuis le site officiel. Il y a deux fichiers que nous devons télécharger :
- Nagios Core : C’est la partie principale du système Nagios.
- Nagios Plugins : C’est comme des extensions, incluant des vérifications courantes pour Nagios, donc nous n’avons pas à écrire de scripts nous-mêmes.
Nous devons télécharger les sources pour eux. Vérifiez leurs sites web pour la dernière version :
Téléchargements de Nagios Core
Téléchargements de Nagios Plugins
Si vous avez une version Desktop, vous pouvez visiter les pages de téléchargement directement depuis le Raspberry Pi.
Sur un système Lite ou via SSH, vous pouvez utiliser la commande “wget” pour télécharger les fichiers correspondants :cd ~
mkdir Downloads
cd Downloads
wget https://go.nagios.org/get-core/4-5-2/ -O Nagios-4.5.2.tar.gz
wget http://nagios-plugins.org/download/nagios-plugins-2.4.9.tar.gz
Nous sommes maintenant prêts à passer au processus d’installation.
Installer Nagios sur Raspberry Pi
Créer un utilisateur et un groupe Nagios
Nous devons créer un utilisateur spécifique pour Nagios, et un groupe pour les utilisateurs Nagios et Apache (nagcmd) :sudo useradd -m -s /bin/bash nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagcmd www-data
Compiler et installer Nagios
Nous devons maintenant extraire les fichiers de l’archive, compiler les sources et installer Nagios sur le Raspberry Pi :
- Aller dans le répertoire “Downloads” :
cd /home/$USER/Downloads
- Extraire les fichiers de l’archive téléchargée précédemment :
tar zxvf Nagios-4.5.2.tar.gz
N’oubliez pas de changer le numéro de version si vous en avez téléchargé une différente. - Démarrer l’étape de configuration :
cd nagios-4.5.2/
./configure --with-command-group=nagcmd
Si vous obtenez des erreurs, c’est généralement parce qu’il manque certaines dépendances. Essayez de trouver le paquet correspondant avec APT.
Par exemple, lors de mon test, j’ai eu l’erreur “Cannot find ssl headers” que j’ai corrigée avec :sudo apt install libssl-dev
Mais cela dépend de ce que vous avez déjà sur votre système et de la version que vous installez, donc vous pourriez avoir quelque chose de différent. - Une fois que l’étape de configuration est terminée, vous pouvez exécuter cette commande :
make all
Cela peut prendre quelques minutes en fonction de votre modèle de Raspberry Pi et de votre stockage (beaucoup plus rapide avec un SSD ou un Raspberry Pi 5). - Vous pouvez maintenant utiliser sudo pour exécuter l’installation :
sudo make install
sudo make install-init
sudo make install-config
sudo make install-commandmode
L’installation de Nagios core est désormais terminée.
Nous devons maintenant configurer la partie Apache pour permettre l’accès à la page Nagios.
Configurer Apache pour Nagios
- Activez le module CGI pour Apache :
sudo a2enmod cgi
- Copiez la configuration Apache dans le dossier Apache :
sudo cp sample-config/httpd.conf /etc/apache2/sites-enabled/nagios.conf
- Créez le premier utilisateur pour l’interface web :
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Vous serez invité à entrer un mot de passe. - Redémarrez Apache :
sudo service apache2 restart
- Vérifiez si vous avez accès à la page web :
Allez sur http://<IP_RASPBERRYPI>/nagios
(consultez ce tutoriel si vous ne savez pas comment trouver l’adresse IP actuelle).
Vous devriez obtenir quelque chose comme ceci :
Le message “Not running” est normal, nous allons le résoudre maintenant.
L’installation de Nagios est presque terminée, nous devons juste démarrer le service Nagios.
Démarrez le service Nagios
Nagios a un service qui fonctionne en arrière-plan pour lancer une vérification à une fréquence prédéfinie (toutes les 5 minutes par exemple). Nous devons le démarrer pour terminer l’installation.
Voici la commande pour démarrer le service :sudo service nagios start
Exécutez cette commande pour démarrer automatiquement Nagios au démarrage :sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Si vous actualisez l’interface web, vous devriez maintenant voir “Daemon running with PID XXX”.
Tout est en ordre avec Nagios, nous pouvous maintenant ajouter des plugins.
Installer les plugins Nagios
Nous pouvons maintenant extraire et installer les plugins Nagios que nous avons téléchargés précédemment :
- Retournez dans le dossier Downloads :
cd /home/$USER/Downloads
- Extrayez les fichiers de l’archive :
tar zxvf nagios-plugins-2.4.9.tar.gz
- Compilez et installez-les :
cd nagios-plugins-2.4.9/
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
sudo make install
Tous les plugins sont maintenant disponibles dans le dossier /usr/local/nagios/libexec/ et prêts à être utilisés dans Nagios.
Vous devrez peut-être redémarrer Nagios pour appliquer les changements :sudo service nagios restart
Comment configurer Nagios pour répondre à vos besoins ?
Vocabulaire de Nagios
Nagios utilise un jargon pour tout ce qui est lié à la configuration. Donc, avant d’essayer de changer quoi que ce soit, assurez-vous de comprendre de quoi je parle.
Voici les principaux mots-clés :
- Command : une commande est un script du dossier de plugins Nagios. Nous la configurons dans Nagios pour l’utiliser plus tard avec des paramètres (ex : check_load est une commande).
- Service : un service est une vérification qui s’applique à un ou plusieurs ordinateurs, et utilise une commande pour exécuter une vérification particulière (ex : vérifier si la charge est supérieure à 10 sur Raspberry Pi est un service).
- Host : un hôte est un ordinateur, un serveur, ou tout appareil avec une adresse IP.
- Hostgroup : vous pouvez définir un groupe d’hôtes, comme “Raspberry Pi”, et appliquer les mêmes services à tous les hôtes de ce groupe (par ex. tous vos Raspberry Pi).
Nous allons maintenant voir comment configurer cela dans le fichier de configuration de Nagios.
Pour l’exemple ci-dessous, je vais surveiller mon Raspberry Pi Zero depuis le Raspberry Pi où Nagios est installé.
Préparer le serveur
Nagios utilise principalement SNMP pour se connecter à d’autres serveurs et obtenir toutes les informations. Nous devons donc installer SNMP sur chaque nouveau serveur avant de l’ajouter au fichier de configuration.
Ce n’est pas obligatoire, cela dépend des services que vous allez créer pour ce serveur.
Quoi qu’il en soit, je vais vous montrer comment faire, pour que vous ayez un tutoriel complet.
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Dans mon cas, j’ai suivi ces étapes sur le Raspberry Pi Zero (pas le même appareil que le serveur Nagios) :
- Connectez-vous au serveur via SSH.
- Installez snmpd :
sudo apt install snmpd
- Allez dans le dossier de configuration :
cd /etc/snmp
- Supprimez (ou sauvegardez) le fichier snmpd.conf par défaut :
sudo rm snmpd.conf
- Créez un nouveau fichier snmpd.conf :
sudo nano snmpd.conf
- Collez ces lignes :
com2sec readonly default RASPBERRYTIPS
group MyROGroup v1 readonly
group MyROGroup v2c readonly
view all included .1 80
access MyROGroup "" any noauth exact all none none
sysName Pi Zero
Remplacez RASPBERRYTIPS par la communauté que vous souhaitez utiliser.
Remplacez sysName par votre nom d’hôte ou description.
Il y a de nombreuses options disponibles dans snmpd.conf, mais pour ce test nous n’avons pas besoin de plus. - Enregistrez et quittez le fichier de configuration.
- Redémarrez le service :
sudo service snmpd restart
Nous pouvons maintenant ajouter cet hôte dans Nagios.
Ajouter un hôte
- Revenez au Raspberry Pi hébergeant Nagios.
- Allez dans ce dossier :
cd /usr/local/nagios/etc/objects
- Créez un nouveau fichier pour votre hôte, comme pizero.cfg :
sudo nano pizero.cfg
- Collez ces lignes dedans :
define host {
use linux-server ; Host group to use
host_name Pi Zero ; Name of this host
alias pizero ; Alias
address 192.168.1.18 ; IP Address
}
Ceci est une définition de base pour l’hôte, avec le nom de l’hôte, l’alias et l’adresse IP.
Nous l’ajoutons également au groupe des serveurs Linux pour hériter des services définis par le groupe si vous en ajoutez plus tard. - Enregistrez et quittez (CTRL+O, CTRL+X).
- Maintenant, nous devons informer Nagios que nous avons ajouté un nouveau fichier.
Ajoutez cette ligne dans /usr/local/nagios/etc/nagios.cfg (juste en dessous de localhost.cfg sera parfait) :cfg_file=/usr/local/nagios/etc/objects/pizero.cfg
- Redémarrez Nagios pour appliquer les changements :
sudo service nagios restart
- Retournez à l’interface web de Nagios, dans le menu Hosts.
Vous devriez avoir une nouvelle ligne comme celle-ci :
Nagios surveille déjà la réponse ping de notre nouvel hôte, mais nous voulons surveiller davantage de choses.
Nous devons donc ajouter un service à l’intérieur, mais nous devons d’abord définir la commande à utiliser.
Ajouter une commande
Précédemment dans ce tutoriel, Vous avez téléchargé et installé les plugins Nagios. Les plugins Nagios fournissent de nombreuses commandes pour vérifier l’hôte local, mais pas tant que ça pour les hôtes distants.
Vous pouvez également télécharger de nombreuses autres commandes sur ce site web (cherchez spécifiquement les plugins SNMP).
Pour cet exemple, je vais surveiller la synchronisation temporelle entre mes deux Raspberry Pi.
Pour ajouter une commande dans Nagios, suivez ces étapes :
- Allez dans le dossier des plugins Nagios :
cd /usr/local/nagios/libexec
- Exécutez la commande sans paramètres :
./check_ntp
- Notez le message d’aide et les paramètres à passer.
Dans mon cas, j’ai eu ce message d’erreur :Usage: check_ntp -H <host> [-w <warn>] [-c <crit>] [-j <warn>] [-k <crit>] [-4|-6] [-v verbose]
Donc, je sais que je dois spécifier l’IP de l’hôte dans l’argument -H.
Et peut-être un seuil d’alerte et critique avec -w et -c
Les autres options ne me semblent pas pertinentes. - Ouvrez le fichier de configuration des commandes :
sudo nano /usr/local/nagios/etc/objects/commands.cfg
- Vérifiez si votre commande est déjà présente et si ce n’est pas le cas, vous devez l’ajouter ainsi :
define command {
command_name check_ntp
command_line $USER1$/check_ntp -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$
} - Sauvegardez, quittez et redémarrez Nagios :
sudo service nagios restart
- Vérifiez que votre commande est maintenant disponible dans Nagios.
- Allez sur l’interface web.
- Cliquez sur “Configuration” dans le menu de gauche.
- Choisissez “Commands” dans la liste et cliquez sur “Continue”.
- Vous devriez maintenant voir “check-ntp” dans la liste (ou toute autre commande que vous avez ajoutée).
La commande est maintenant prête à être utilisée pour votre hôte, mais nous devons créer un nouveau service pour l’appliquer.
Ajouter un service
Pour créer un nouveau service, suivez ces étapes :
- Ouvrez votre fichier de configuration d’hôte :
sudo nano /usr/local/nagios/etc/objects/pizero.cfg
Adaptez le nom du fichier à ce que vous avez créé précédemment. - Collez ces lignes :
define service {
use local-service ; Name of service template to use
host_name Pi Zero
service_description Time synchronization
check_command check-ntp!1!5
}
N’oubliez pas d’adapter ces lignes à votre configuration précédente.
Sur la ligne check_command, nous définissons tous les arguments, séparés par des points d’exclamation. - Enregistrez et quittez.
- Vérifiez votre configuration :
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Cela peut être utile pour savoir si vous avez des erreurs de configuration avant de redémarrer Nagios.
Dans mon cas, j’ai écrit check_ntp au lieu de check-ntp. - Redémarrez Nagios :
sudo service nagios restart
Maintenant, dans le détail du statut de votre hôte, vous devriez voir le nouveau service.
Si vous avez compris comment créer un hôte, une commande et un service, vous êtes maintenant prêt à tout faire dans Nagios.
N’hésitez pas à télécharger de nouveaux plugins sur Internet, ou même à coder vos propres plugins (ce n’est rien de plus qu’un script basique pour vérifier quelque chose).
Vidéo
Questions liées
Puis-je gérer la configuration de Nagios directement depuis l’interface web ?
Malheureusement, non. Nagios ne fournit pas d’outil de configuration dans sa version de base. Mais il y a plusieurs outils de configuration que vous pouvez installer. J’utilise souvent Thruk, je ne l’ai pas encore essayé sur Raspberry Pi, mais vous pouvez le télécharger ici si vous le souhaitez.
Puis-je surveiller les hôtes Windows avec Nagios ?
Oui, vous pouvez surveiller tout ce qui se trouve sur votre réseau. SNMP est également disponible pour Windows et la plupart des appareils du réseau (routeurs, commutateurs, dispositifs domotiques, …). Comme vous pouvez créer vos commandes de vérification, tout est possible.
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Vous comprenez l'anglais et en voulez encore plus ? Je publie une nouvelle leçon chaque mois, réservée à mes abonnés premium. Rejoignez la communauté dès maintenant pour y avoir accès !
Conclusion
C’est tout, vous savez maintenant comment installer et configurer un serveur Nagios sur votre Raspberry Pi pour surveiller votre réseau ou tout ce que vous voulez. Avec ce tutoriel, vous obtenez la dernière version de Nagios, sans charge moyenne excessive (actuellement 0,00 sur mon Pi ^^).
Une fois Nagios installé, il n’y a pas vraiment de différence avec n’importe quel serveur Nagios sur Linux.
N’hésitez donc pas à consulter les tutoriels Linux pour une configuration avancée.
Et si vous souhaitez créer des graphiques faciles à lire avec les données générées dans Nagios, jetez un œil à comment installer Grafana sur votre Raspberry Pi.
Mise à jour : J’ai récemment testé Zabbix sur Raspberry Pi, qui semble un peu plus intuitif pour commencer. Pour un petit réseau, c’est probablement une alternative appropriée (j’ai moins d’expérience avec, mais il a l’air génial).
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Ressources supplémentaires pour votre Raspberry Pi
Initiation au Raspberry Pi en vidéo
Si vous débutez et voulez passer rapidement à la vitesse supérieure, j’ai exactement ce qu’il vous faut.
Regardez ma formation vidéo qui vous aidera à démarrer du bon bien, choisir votre matériel, installer les meilleures applications et vous lancer directement dans vos premiers projets avec mon aide.
Regarder les vidéos dès maintenant
Maîtrisez votre Raspberry Pi en 30 jours
Vous avez besoin de plus ? Si vous êtes à la recherche des meilleures astuces pour devenir expert sur Raspberry Pi, ce livre est fait pour vous. Développez vos compétences sous Linux et pratiquez via de nombreux projets en suivant mes guides étape par étape. 10% de remise aujourd’hui !
Télécharger le livre au format PDF ici
Maîtrisez Python sur Raspberry Pi
Pas besoin d’être un génie pour coder quelques lignes pour votre Raspberry Pi.
Je vous apprends juste ce qu’il faut sur Python afin de réaliser n’importe quel projet. La seconde partie du livre est d’ailleurs consacrée à des exemples de projets où je vous guide pas à pas.
Ne perdez pas de temps, apprenez le strict nécessaire et économisez 10% avec ce lien :
Télécharger maintenant
Autres ressources pour profiter de votre Raspberry Pi
J’ai regroupé toutes mes recommandations de logiciels, sites utiles et de matériel sur cette page de ressources. Je vous invite à la consulter régulièrement pour faire les bons choix et rester à jour.
Visiter les pages ressources