Description
Nagios est un moniteur d’hôtes et de services conçu pour vous informer sur vos machines clientes, utilisateurs finaux ou gestionnaires.
Le démon de surveillance exécute des contrôles intermittents sur les hôtes et les services que vous spécifiez à l’aide de “plugins” externes qui retournent les informations d’état à Nagios. En cas de problèmes, le démon peut envoyer à des contacts administratifs dans une variété de pays différents par différents biais (courriel, messagerie instantanée, SMS, etc.) des informations sur l’état actuel ; les rapports peuvent tous être consultés par l’intermédiaire d’un navigateur Web.
- Site web : https://www.nagios.org/projects/
- Version : 4.3.1
- OpenBSD : 6.6
- Services : httpd + slowcgi + nagios + php73_fpm
Documentation
Il est toujours utile de lire les documentations pkg-readmes
fournies ; celles disponibles sont dans /usr/local/share/doc/pkg-readmes/
, à-propos de :
- femail-chroot
- nagios
- php-7.3
Installation du serveur Nagios
Afin de fonctionner avec le serveur web natif à OpenBSD, dixit
httpd(8)
, installez les paquets nagios-*-chroot
spécifiques pour l’usage avec ce serveur web natif :
Code : sh
# pkg_add nagios-4.3.1p1-chroot nagios-web-4.3.1p2-chroot
quirks-3.182 signed on 2019-11-15T10:35:39Z
nagios-4.3.1p1-chroot:libltdl-2.4.2p1: ok
nagios-4.3.1p1-chroot:monitoring-plugins-2.2p8: ok
useradd: Warning: home directory `/var/www/nagios' doesn't exist, and -m was not specified
nagios-4.3.1p1-chroot: ok
nagios-web-4.3.1p2-chroot:femail-1.0p1: ok
nagios-web-4.3.1p2-chroot:femail-chroot-1.0p3: ok
nagios-web-4.3.1p2-chroot:argon2-20171227: ok
nagios-web-4.3.1p2-chroot:php-7.3.11: ok
nagios-web-4.3.1p2-chroot:php-gd-7.3.11: ok
nagios-web-4.3.1p2-chroot: ok
The following new rcscripts were installed: /etc/rc.d/nagios /etc/rc.d/php73_fpm
See rcctl(8) for details.
New and changed readme(s):
/usr/local/share/doc/pkg-readmes/femail-chroot
/usr/local/share/doc/pkg-readmes/nagios
/usr/local/share/doc/pkg-readmes/php-7.3
Le répertoire web par défaut est /var/www/nagios
; des scripts CGI sont installés dans /var/www/cgi-gin/nagios/
.
Femail-chroot
Code : sh
# cd /var/www/
# mkdir -p etc/ssl
# cp /etc/{resolv.conf,hosts,localtime} etc/
# install -m 444 -o root -g bin /etc/ssl/cert.pem /etc/ssl/openssl.cnf /var/www/etc/ssl
# chmod -R 444 etc/*
# chmod -R a+X etc/
# cp /bin/sh /var/www/bin/
Test config nagios
La commande de test de la configuration de nagios est :
Code : sh
$ su -m _nagios -c "/usr/local/sbin/nagios -v /etc/nagios/nagios.cfg"
Exemple :
Code : sh
$ su -m _nagios -c "/usr/local/sbin/nagios -v /etc/nagios/nagios.cfg"
Nagios Core 4.3.1
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 02-23-2017
License: GPL
Website: https://www.nagios.org
Reading configuration data...
Read main config file okay...
Read object config files okay...
Running pre-flight check on configuration data...
Checking objects...
Checked 8 services.
Checked 1 hosts.
Checked 1 host groups.
Checked 0 service groups.
Checked 1 contacts.
Checked 1 contact groups.
Checked 24 commands.
Checked 5 time periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking for circular paths...
Checked 1 hosts
Checked 0 service dependencies
Checked 0 host dependencies
Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight check
Ensuite, penser à activer et démarrer le service nagios
avec le contrôleur
rcctl(8)
.
PHP-FPM
- Le service se nomme :
php73_fpm
- L’outil pour tester la configuration est :
php-fpm-73
avec l’option-t
, par exemple.
httpd configuration
Le fragment de configuration
pour httpd
nécessaire est expliqué dans mon article présentant httpd.
Activer les modules
Les commandes suivantes sont à exécuter à chaque installation d’un module PHP, pecl, et opcache :
Code : sh
# cd /etc/php-7.3.sample
# for i in *; do ln -sf ../php-7.3.sample/$i ../php-7.3/; done
OpenSSL Functions
Du fait de la prison /var/www
:
Code : sh
# mkdir -p /var/www/etc/ssl
# install -m 444 -o root -g bin /etc/ssl/cert.pem /etc/ssl/openssl.cnf /var/www/etc/ssl/
slowcgi
- Le service se nomme tout simplement :
slowcgi
. - Les scripts cgi fournis dans
/var/www/cgi-bin/
sont accessibles grâce à slowcgi(8) . Ceux de nagios sont fournis dans le répertoire enfantnagios/
.
httpd
Ici, je vous renvoie à mon article de découverte du serveur httpd, et tout particulièrement aux informations d’utilisations .
Modification du fichier de configuration /etc/httpd.conf
pour y ajouter :
Code :
include "/etc/httpd.d/nagios.conf"
Création du fichier de config du serveur pour nagios /etc/httpd.d/nagios.conf
:
Code :
server "192.168.1.3" {
listen on * port 80
root "/"
location "/cgi-bin/nagios/*.cgi" {
authenticate "! Nagios Restricted !" with "/nagios.ht"
fastcgi socket "/run/slowcgi.sock"
root "/"
}
location "/" {
authenticate "! Nagios Restricted !" with "/nagios.ht"
directory index index.php
root "/nagios"
}
location "*.php" {
fastcgi socket "/run/php-fpm.sock"
root "/nagios"
}
}
Il est hautement recommandé de créer une authentification web avec accès restreint !
Création de l’authentification web
Sachant que le compte admin par défaut est nagiosadmin
, utilisons l’outil htpasswd
:
Code : sh
# htpasswd nagios.ht nagiosadmin
Réfléchissez bien avant de vouloir changer de nom d’administrateur, car il faudra le modifier au moins dans le fichier objects/contacts.cfg
…
Ensuite, il faut lui donner des droits d’exécution 0400
, et utilisateur web www
, autrement l’authentification ne se fera pas.
Il est ensuite possible de configurer d’autres utlisateurs, de la même manière auquels un rôle sera attribué, tel que celui d’operator
.
Configuration
Tous les fichiers de configuration se trouvent dans /etc/nagios
- qui se trouve être un alias de /var/www/etc/nagios
:
cgi.cfg
- Option
use_authentication
: Seulement le temps de tester que tout fonctionne, il est possible de mettre la valeur àO
pour désactiver l’authentification - ATTENTION, c'est une très mauvaise idée de fonctionner sans authentification ! - Les options
authorized_for_*
: si vous avez paramétré un rôle particulier, ou tout autre nom d’utilisateur, vous pouvez l’ajouter selon ce qui est désirable d’être utilisé par ce rôle, ou cet utilisateur. - Option
show_context_help
: utile pour avoir une aide contextuelle - Il peut être intéressant de configurer les options
*_sound
qui émettront un son caractéristique lié à l’erreur remontée. - Laissez l’option
lock_author_names
sur la valeur1
permet d’empêcher le changement de nom d’utilisateur.
nagios.cfg
- Option
admin_email
: remplacer la valeur par défaut, par votre courriel. - Option
date_format
: choisir la valeureuro
- Option
use_timezone
: paramètrerEurope/Paris
Les fichiers de configuration se trouvent dans le répertoire enfant objects
:
contacts.cfg
- Définition
alias
: remplacer par un alias d’administration personnalisé, si besoin. - Définition
contact_name
: remplacer par votre identifiant - Définition
email
: remplacer par votre courriel administrateur
Dépannage
Erreur : not have permission to view
Citation :
It appears as though you do not have permission to view information for any of the hosts you requested…
If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI and check the authorization options in your CGI configuration file.
- Êtes-vous sûr d’avoir créé un utilisateur qui a/aura les droits de regarder la vue en question ?
- Si oui, êtes-vous sûr d’avoir autorisé l’utilisateur dans les fichiers de configuration, tel celui de
cgi.cfg
, cf les optionsauthorized_*
? - Si oui, êtes-vous sûr d’avoir relancé les différents services, tel httpd ou nagios ?
Cherchez votre oubli !
Autres moniteurs réseaux :
- Icinga2
- LibreNMS : https://www.librenms.org
- Zabbix : https://www.zabbix.com