Nagios1 est un logiciel de surveillance qui couvre un vaste éventail d’entités, des applications individuelles aux réseaux entiers. Nagios n’est pas un système de détection d’intrusion, en fait nagios est un système de surveillance des ressources, il surveille la disponibilité de certaines ressources et services sur un hôte ou un réseau. Il rend tout cela dans un format lisible par l’homme et peut être programmé pour prendre certaines actions lors de certains événements.
Installation
L’installation se fera à partir des sources. Je vais suivre les étapes du tutoriel de M. Jean Gautier.
sudo su -
apt update
apt install -y autoconf gcc libc6 make wget unzip apache2 apache2-utils php libgd-dev openssl
apt install -y libssl-dev snmp mailutils php-apcu libmcrypt-dev bc gawk dc build-essential libnet-snmp-perl gettext avahi-daemon
Une fois les outils de construction et les dépendances installés, je télécharge les fichiers source:
cd /usr/src
wget -O nagioscore.tar.gz https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.6.tar.gz
wget -O nagios-plugins.tar.gz https://nagios-plugins.org/download/nagios-plugins-2.4.3.tar.gz
wget --no-check-certificate -O vshell.tar.gz https://assets.nagios.com/downloads/exchange/nagiosvshell/vshell.tar.gz
Une fois cela fait, je vais décompresser les fichiers pour le déploiement.
ls
nagios-plugins.tar.gz nagioscore.tar.gz vshell.tar.gz
tar -zxf nagioscore.tar.gz
tar -zxf nagios-plugins.tar.gz
tar -zxf vshell.tar.gz
Puis on rentre dans chaque répertoire pour compiler et installer :
cd nagioscore-nagios-4.4.6/
./configure --with-httpd-conf=/etc/apache2/sites-enabled
make all
Avant d’installer le noyau, nous devrons faire d’autres commandes :
cd ../nagios-plugins-2.4.3/
./configure
make && make install
cd ../nagioscore-nagios-4.4.6/
make install-groups-users && usermod -a -G nagios www-data
Installation du noyau et de ses modules :
make install
make install-daemoninit
make install-commandmode
make install-config
Installation et configuration de l’interface Web :
make install-webconf
a2enmod rewrite && a2enmod cgi
Création du compte administrateur de nagios (nagiosadmin)
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Activation et démarrage des services :
systemctl enable --now nagios.service
systemctl enable --now apache2.service
Modification du fichier source /usr/src/vshell/install.php
nano /usr/src/vshell/install.php
Exécution du script d’installation :
/usr/src/vshell/install.php
systemctl restart apache2
Et le nettoyage après installation :
rm -rf vshell nagioscore-nagios-4.4.6 nagios-plugins-2.4.3
Configuration
Et nous voici :
Je vais vérifier si le plugin nagios local fonctionne avant d’en ajouter d’autres. Ce sera le menu hôte :
Les fichiers de configuration pour nagios se trouvent dans “/usr/local/nagios/etc/”:
ls -ahl /usr/local/nagios/etc/
total 84K
drwxrwxr-x 3 nagios nagios 4.0K Mar 1 08:47 .
drwxr-xr-x 8 root root 4.0K Mar 1 08:44 ..
-rw-rw-r-- 1 nagios nagios 14K Mar 1 08:44 cgi.cfg
-rw-r--r-- 1 root root 50 Mar 1 08:47 htpasswd.users
-rw-rw-r-- 1 nagios nagios 45K Mar 1 08:44 nagios.cfg
drwxrwxr-x 2 nagios nagios 4.0K Mar 1 09:06 objects
-rw-rw---- 1 nagios nagios 1.3K Mar 1 08:44 resource.cfg
Le sous-répertoire objects contient les modèles pour d’autres types de machines que nous pouvons ajouter ainsi que des configurations plus granulaires. J’ai déjà préparé un nouveau dossier pour conserver les fichiers de configuration des nouveaux hôtes que je vais ajouter “serveurs-linux”.
ls -hl /usr/local/nagios/etc/objects/
total 56K
-rw-rw-r-- 1 nagios nagios 6.6K Mar 1 08:44 commands.cfg
-rw-rw-r-- 1 nagios nagios 1.8K Mar 1 09:06 contacts.cfg
-rw-rw-r-- 1 nagios nagios 4.7K Mar 1 08:44 localhost.cfg
-rw-rw-r-- 1 nagios nagios 3.0K Mar 1 08:44 printer.cfg
drwxr-xr-x 2 root root 4.0K Mar 1 09:19 serveurs-linux
-rw-rw-r-- 1 nagios nagios 3.5K Mar 1 08:44 switch.cfg
-rw-rw-r-- 1 nagios nagios 13K Mar 1 08:44 templates.cfg
-rw-rw-r-- 1 nagios nagios 3.5K Mar 1 08:44 timeperiods.cfg
-rw-rw-r-- 1 nagios nagios 4.0K Mar 1 08:44 windows.cfg
Nous devons également modifier le fichier nagios.cfg pour ajouter le nouveau dossier en tant que dossier de configuration qui sera inclus au démarrage.
nano /usr/local/nagios/etc/nagios.cfg
Et j’ajouterai les fichiers suivants :
nano /usr/local/nagios/etc/objects/serveurs-linux/hosts.cfg
define host{
use linux-server
host_name nagios
alias Serveur Nagios
address 127.0.0.1
}
define host{
use linux-server
host_name ubuntu-web
alias srv-http
address 192.168.0.211
}
define host{
use linux-server
host_name ubuntu-samba
alias srv-samba
address 192.168.0.77
}
nano /usr/local/nagios/etc/objects/serveurs-linux/groups.cfg
define hostgroup {
hostgroup_name linux_servers
alias Serveurs Linux
members ubuntu-web,ubuntu-samba
}
;define hostgroup {
; hostgroup_name clients
; alias Machines clientes Linux
; members pc1,pc2
; }
nano /usr/local/nagios/etc/objects/serveurs-linux/services.cfg
define service{
use local-service
host_name ubuntu-web, ubuntu-samba
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
Et un redemarage du service:
service nagios restart
Donc, pour que cela fonctionne, nous devons en fait installer un plugin sur les machines ciblées qui communiquera avec le serveur nagios. Nous en avons déjà installé une partie sur le serveur nagios, maintenant je vais l’installer sur les machines que j’ai déclarées dans le fichier may hosts.cfg.
sudo apt install nagios-nrpe-server
Et éditez le /etc/nagios/nrpe.cfg
# l'adresse du serveur nagios
allowed_hosts=192.168.0.215,::1
# mes disques spécifiques
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -r -w .15,.10,.05 -c .30,.25,.20
command[check_sda3]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda3
command[check_md127]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/md127
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200
Et sur le serveur nous allons installer :
apt-get install nagios-nrpe-plugin
Je vais tester le plugin :
/usr/lib/nagios/plugins/check_nrpe -H 192.168.0.77
NRPE v4.0.3
/usr/lib/nagios/plugins/check_nrpe -H 192.168.0.77 -c check_sda3
DISK OK - free space: /dev 1158 MB (100% inode=99%);| /dev=0MB;926;1042;0;1158
Pour intégrer le nouveau plugin, je vais modifier le fichier command.cfg et ajouter ce qui suit :
nano /usr/local/nagios/etc/objects/commands.cfg
##Commande check_nrpe
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
Et aussi le fichier services.cfg dans le dossier serveur-linux :
### LINUX SERVICES DEFINITIONS ####
##Check PING
define service{
use local-service
host_name ubuntu-samba, ubuntu-web, localhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
##Check NRPE sda1
define service{
use local-service
host_name localhost
service_description sda1
check_command check_nrpe!check_sda1
}
##Check NRPE sda3
define service{
use local-service
host_name ubuntu-samba,ubuntu-web,
service_description sda3
check_command check_nrpe!check_sda3
}
##Check NRPE md127
define service{
use local-service
host_name ,ubuntu-samba
service_description md127
check_command check_nrpe!check_md127
}
##Check NRPE users
define service{
use local-service
host_name ubuntu-samba,ubuntu-web,localhost
service_description Users
check_command check_nrpe!check_users
}
##Check NRPE load
define service{
use local-service
host_name ubuntu-samba,ubuntu-web,localhost
service_description Load
check_command check_nrpe!check_load
}
##Check NRPE total procs
define service{
use local-service
host_name localhost, ubuntu-samba, ubuntu-web
service_description Total Procs
check_command check_nrpe!check_total_procs
}
## Check NRPE zombie procs
define service{
use local-service
host_name localhost,ubuntu-samba,ubuntu-web
service_description Zombie Procs
check_command check_nrpe!check_zombie_procs
}
En suite un redemarage du service:
service nagios restart
Résultat
Nous avons une solution de surveillance fonctionnelle :
Comme je le vois, je dois prendre soin de certains des avertissements.
Nagios webpage : https://www.nagios.org/ ↩︎