--- aliases: [/fr/sys/openbsd/nagios] date: 2019-11-14T10:56:30+01:00 description: "Comment mettre en place Nagios, sous OpenBSD, couplé avec les services web httpd et CGI slowcGI pour assurer le monitoring du matériel informatique. " draft: false include_toc: true lastmod: 2019-11-17T06:05:06+01:00 show_comments: false tags: ["httpd","nagios","OpenBSD","slowcgi","serveur","supervision"] title: "Nagios : Monitorer OpenBSD avec httpd + slowcgi" --- ## 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 {{< man httpd 8 >}}, installez les paquets `nagios-*-chroot` spécifiques pour l'usage avec ce serveur web natif : {{< code "openbsd-add-nagios" sh >}} 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 "openbsd-femail-chroot" sh >}} ### Test config nagios La commande de test de la configuration de nagios est : {{< code "openbsd-nagios-check-config" sh >}} Exemple : {{< code "openbsd-nagios-check-config-example" sh >}} Ensuite, penser à activer et démarrer le service `nagios` avec le contrôleur {{< man 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 {{< inside2 l="web:httpd:httpd" t="fragment de configuration" a="php-fpm" >}} 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 "openbsd-php-enable-modules" sh >}} #### OpenSSL Functions Du fait de la prison `/var/www` : {{< code "openbsd-ssl-chroot" sh >}} ### slowcgi * Le service se nomme tout simplement : `slowcgi`. * Les scripts cgi fournis dans `/var/www/cgi-bin/` sont accessibles grâce à {{< man slowcgi 8 >}}. Ceux de nagios sont fournis dans le répertoire enfant `nagios/`. ### httpd Ici, je vous renvoie à mon article de découverte du serveur **httpd**, et tout particulièrement aux informations d'{{< inside2 t="utilisations" l="web:httpd:httpd" a="utilisation" >}}. Modification du fichier de configuration `/etc/httpd.conf` pour y ajouter : {{< code "openbsd-httpd-add-server-nagios" >}} Création du fichier de config du serveur pour nagios `/etc/httpd.d/nagios.conf` : {{< code "openbsd-httpd-config-server-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 {{< inside2 t="htpasswd" l="web:httpd:httpd" a="authentification-web" >}} : {{< code "openbsd-htpasswd-nagios" sh >}} 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 - {{< color red >}}ATTENTION, c'est une très mauvaise idée de fonctionner sans authentification !{{< /color >}} * 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 valeur `1` 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 valeur `euro` * Option `use_timezone` : paramètrer `Europe/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 {{< blockquote "openbsd-nagios-error-not-permission-view" >}} * Ê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 options `authorized_*` ? * 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