Munin : Monitorer OpenBSD avec httpd

Article publié, le et modifié le
5 minute(s) de lecture

Cet article contient 997 mots.
Source brute de l'article : MD

Description

Munin est un outil de surveillance des ordinateurs. Il présente ces informations par le biais d’une interface web, qui visualise des graphiques statiques, générés toutes les 5 minutes, par défaut. Un certain nombre de plugins de monitoring divers sont utilisables sans gros effort.

Munin permet de monitorer facilement la performance de tout matériel informatique (ordinateurs, réseaux, applications, mesures diverses, etc.). Il permet de discerner les problèmes de performance des ressources.

Documentation

Il est toujours utile de lire les documentations pkg-readmes fournies ; celles disponibles sont dans /usr/local/share/doc/pkg-readmes/, à-propos de :

Installation

Code : sh

# pkg_add munin-node munin-server

Un utilisateur _munin a été créé et le répertoire web, par défaut, est dans /var/www/htdocs/munin/. Ce répertoire reçoit les droits de l’utilisateur _munin et du groupe web www.

Pour information, cela installe en dépendance quelques paquets de plus, dont p5-Net-CIDR - ce paquet est utile pour la configuration de l’option cidr_allow dans le fichier de configuration du nœud de munin ; s’il n’est pas installé, faites-le !

Si vous désirez le support des moniteurs SNMP , il faut installer le paquet p5-Net-SNMP.

Configuration

Deux fichiers de configuration principaux sont dans /etc/munin :

  • munin.conf relatif au serveur lui-même
  • munin-node.conf relatif au nœud de surveillance local.

Une fois, ces fichiers configurés, il est possible de démarrer les deux services de munin.

munin.conf

Généralement, il y a peu de choses à changer, néanmoins, pour informations, certaines variables peuvent être configurées.

  • dbdir : répertoire de la base de donnée de munin
  • htmldir : répertoire de destination des données graphiques générées.
  • logdir : répertoire des journaux de munin
  • rundir : répertoire où s’exécute le processus munin.

Si vous préférez une exécution du processus par cron plus que par script CGI, vous pouvez modifier les deux variables graph_strategy et html_strategy.

Par défaut sera configurée une arborescence basique basée sur localhost, tel que :

Code : 

[localhost]
    address 127.0.0.1
    user_node_name yes

Si vous préférez une arborescence par nom de domaine, modifiez/commentez/ajoutez localhost par le nom de domaine désiré, tel huc.fr.eu.org. Bien sûr, il est possible de surveiller autant d’hôtes que désiré.

Il est possible de gérer les différents nœuds par groupe ; cela permet de regrouper les informations. Je vous renvoie aux documentations officielles et autres manpages.

Les noms de nœuds, de groupe de nœuds ainsi que les adresses IPv6 doivent être encadrés de [ ].

Ajouter un nœud

Exemple :

Code : 

# server name
[srvr.huc.fr.eu.org]
# address IP
    address 192.168.1.1
    use_node_name yes

# first pc
[pc1.huc.fr.eu.org]
    address 192.168.1.10
    use_node_name yes

Recevoir les alertes par mail

Pour recevoir les alertes par mail, il est nécessaire de renseigner une ou plusieurs adresses de contact, tel que :

Code : 

contact.root.command mail -s "Munin notification" email
contact.other-user.command mail -s "Munin notification" email-user

Ceci étant un exemple, remplacez par les informations nécessaires à votre situation.

munin-node.conf

La partie de la configuration du fichier de nœud étant expliquée sur sa propre page, il suffit de suivre les informations et de les adapter au nœud du serveur lui-même

crontab

Après avoir configuré les deux fichiers de configuration ci-dessus, il est important de paramétrer une tâche cron, tel que :

Code : 

# crontab for munin-server
*/5     *       *       *       *       su  -s /bin/sh _munin /usr/local/bin/munin-cron

newsyslog.conf

Il est nécessaire de modifier le fichier de configuration du journal /etc/newsyslog.conf pour créer une rotation des journaux générés par munin.

Ajoutez-y :

Code : 

# munin-server
/var/www/logs/munin/munin-cgi-graph.log  www:_munin  644  7     250  *     Z
/var/www/logs/munin/munin-cgi-html.log   www:_munin  644  7     250  *     Z
/var/www/logs/munin/munin-graph.log  _munin:_munin   644  7     250  *     Z
/var/www/logs/munin/munin-html.log   _munin:_munin   644  7     250  *     Z
/var/www/logs/munin/munin-limits.log _munin:_munin   644  7     250  *     Z
/var/www/logs/munin/munin-update.log _munin:_munin   644  7     250  *     Z
# munin-node
/var/log/munin/munin-node.log   root:wheel      644  7     250  *     Z

Ce sont tous les journaux gérés et nécessaires à minima pour munin.

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/munin.conf"

Création du fichier de config du serveur pour nagios /etc/httpd.d/munin.conf :

Code : 

server "192.168.1.3" {

    listen on * port 80
    root "/htdocs/munin"

#    location "/cgi-bin/munin-cgi*" {
#        fastcgi socket "/run/slowcgi.sock"
#        root "/"
#    }

    location "/" {
        directory index index.html
    }

}

Les fichiers dans le répertoire web de munin doivent avoir les droits de l’utilisateur _munin et du groupe web www, par défaut.

Chroot web

Du fait du chroot web, il est nécessaire de faire les modifications systèmes suivantes :

Code : sh

# mkdir -p /var/www/{logs,var/run}/munin
# chown _munin: /var/www/{logs,var/run}/munin

mais en plus de modifier la configuration du fichier du serveur :

Code : 

htmldir /var/www/htdocs/munin
logdir /var/www/logs/munin
rundir  /var/www/var/run/munin

Packet-Filter

Concernant les règles pour PF , il faut ouvrir en entrée et sortie, vers et depuis les nœuds :

  • pour Munin lui-même : 4949/tcp
  • pour SNMP : 161, 162 en udp et tcp - cela dépend de votre configuration SNMP , bien sûr.

Démarrage des services

Pensez à activer et démarrer les services nécessaires, si ce n’est pas fait !

Code : sh

# rcctl enable munin_node munin_asyncd slowcgi httpd
# rcctl start munin_node munin_asyncd slowcgi
# httpd -n && rcctl start httpd

Dépannage

Erreur : Failed to create rundir (/var/run/munin): Permission denied

Citation :

Failed to create rundir (/var/run/munin): Permission denied at /usr/local/libexec/munin/munin-update line 39.
  • Avez-vous réellement fait lu le chapitre chroot ?

Erreur : [FATAL] There is nothing to do here, since there are no nodes with any plugins

Citation :

[FATAL] There is nothing to do here, since there are no nodes with any plugins. Please refer to http://munin-monitoring.org/wiki/FAQ_no_graphs at /usr/local/libexec/munin/munin-html line 40.
  • Avez-vous démarré vos services munin ?
  • Avez-vous activé/désactivé des plugins ? Si oui, avez vous redémarré le service munin-node ?

Remerciements

Une spéciale dédicace à Solene Rapenne qui fait partie de l'équipe d’OpenBSD, et qui m’a bien aider pour démarrer ce projet.