Dans cet article, je vais décrire comment vous pouvez surveiller plusieurs systèmes avec munin. munin produit de petits graphiques astucieux sur presque tous les aspects de votre serveur (moyenne de charge, utilisation de la mémoire, utilisation du processeur, débit MySQL, trafic eth0, etc.) sans trop de configuration. J'installerai le client munin sur tous les systèmes à surveiller (y compris le serveur munin lui-même) ; les clients munin rapporteront alors au serveur munin.
Ce tutoriel a été écrit pour Debian Etch, mais la configuration devrait également s'appliquer à d'autres distributions avec peu de changements.
Je veux d'abord dire que ce n'est pas la seule façon de mettre en place un tel système. Il existe de nombreuses façons d'atteindre cet objectif, mais c'est la voie que je prends. Je n'émets aucune garantie que cela fonctionnera pour vous !
1 Remarque préliminaire
Le nom d'hôte de notre serveur munin est server1.example.com (adresse IP :192.168.0.100), et nous avons un site Web www.example.com dessus avec la racine du document /var/www/www.example.com/web dessus .
J'utilise ici un client munin, server2.example.com (adresse IP :192.168.0.101). Bien sûr, vous pouvez ajouter autant de systèmes clients que vous le souhaitez.
2 Installer et configurer munin sur le serveur
serveur munin (serveur1.exemple.com):
Pour installer le client et le serveur munin sur Debian Etch, nous procédons comme suit :
apt-get install munin munin-node
Ensuite, nous devons éditer le fichier de configuration munin /etc/munin/munin.conf. Nous voulons que munin place sa sortie dans le répertoire /var/www/www.example.com/web/monitoring, donc nous changeons la valeur de htmldir, et nous voulons qu'il utilise le nom server1.example.com au lieu de localhost. localdomain dans la sortie HTML, nous remplaçons donc localhost.localdomain par server1.example.com. Avec cette configuration, le serveur munin est capable de se surveiller. Sans les commentaires, le fichier modifié ressemble à ceci :
vi /etc/munin/munin.conf
dbdir /var/lib/munin htmldir /var/www/www.example.com/web/monitoring logdir /var/log/munin rundir /var/run/munin tmpldir /etc/munin/templates [server1.example.com] address 127.0.0.1 use_node_name yes |
Ensuite, nous créons le répertoire /var/www/www.example.com/web/monitoring et changeons sa propriété en utilisateur et groupe munin, sinon munin ne peut pas placer sa sortie dans ce répertoire. Ensuite, nous redémarrons munin :
mkdir -p /var/www/www.example.com/web/monitoring
chown munin:munin /var/www/www.example.com/web/monitoring
/etc/init.d/munin-node restart
Attendez maintenant quelques minutes pour que munin puisse produire sa première sortie, puis allez sur http://www.example.com/monitoring/ dans votre navigateur, et vous verrez les premières statistiques. Après quelques jours, cela pourrait ressembler à ceci :
(Ceci n'est qu'un petit extrait des nombreux graphiques que munin produit...)
3 Protéger par mot de passe le répertoire de sortie munin sur le serveur munin (facultatif)
serveur munin (serveur1.exemple.com) :
Maintenant, c'est une bonne idée de protéger par mot de passe le répertoire /var/www/www.example.com/web/monitoring à moins que vous ne vouliez que tout le monde puisse voir toutes les petites statistiques sur votre serveur.
Pour cela, nous créons un fichier .htaccess dans /var/www/www.example.com/web/monitoring :
vi /var/www/www.example.com/web/monitoring/.htaccess
AuthType Basic AuthName "Members Only" AuthUserFile /var/www/www.example.com/.htpasswd <limit GET PUT POST> require valid-user </limit> |
Ensuite, nous devons créer le fichier de mots de passe /var/www/www.example.com/.htpasswd. Nous voulons nous connecter avec le nom d'utilisateur admin, nous faisons donc ceci :
htpasswd -c /var/www/www.example.com/.htpasswd admin
Entrez un mot de passe pour l'administrateur, et vous avez terminé !
4 Installer et configurer munin sur le client
client munin (serveur2.exemple.com) :
Sur le système client, nous n'avons qu'à installer le package client munin qui s'appelle munin-node :
apt-get install munin-node
Ensuite, nous devons dire au client munin que notre serveur munin server1.example.com avec l'adresse IP 192.168.0.100 est autorisé à se connecter pour récupérer les détails du client. Pour ce faire, nous ouvrons /etc/munin/munin-node.conf et ajoutons la ligne allow ^192\.168\.0\.100$ en bas. Ensuite, le fichier devrait ressembler à ceci :
vi /etc/munin/munin-node.conf
# # Example config-file for munin-node # log_level 4 log_file /var/log/munin/munin-node.log port 4949 pid_file /var/run/munin/munin-node.pid background 1 setseid 1 # Which port to bind to; host * user root group root setsid yes # Regexps for files to ignore ignore_file ~$ ignore_file \.bak$ ignore_file %$ ignore_file \.dpkg-(tmp|new|old|dist)$ ignore_file \.rpm(save|new)$ # Set this if the client doesn't report the correct hostname when # telnetting to localhost, port 4949 # #host_name localhost.localdomain # A list of addresses that are allowed to connect. This must be a # regular expression, due to brain damage in Net::Server, which # doesn't understand CIDR-style network notation. You may repeat # the allow line as many times as you'd like allow ^127\.0\.0\.1$ allow ^192\.168\.0\.100$ |
Enfin, nous redémarrons le client munin :
/etc/init.d/munin-node restart
5 Mettre à jour la configuration du serveur munin
serveur munin (serveur1.exemple.com) :
Maintenant, nous devons dire au serveur munin qu'il y a un autre système à surveiller (server2.example.com avec l'adresse IP 192.168.0.101). Pour ce faire, nous ouvrons /etc/munin/munin.conf et ajoutons une strophe pour server2.example.com afin que le fichier ressemble à ceci :
vi /etc/munin/munin.conf
dbdir /var/lib/munin htmldir /var/www/www.example.com/web/monitoring logdir /var/log/munin rundir /var/run/munin tmpldir /etc/munin/templates [server1.example.com] address 127.0.0.1 use_node_name yes [server2.example.com] address 192.168.0.101 use_node_name yes |
Ensuite, nous redémarrons munin :
/etc/init.d/munin-node restart
Après quelques minutes, vous devriez trouver un lien pour server2.example.com sur la page munin (http://www.example.com/monitoring/) :
Lorsque vous cliquez sur ce lien, vous verrez les graphiques pour server2.example.com.
6 liens
- munin : http://munin-monitoring.org/