Le monitoring sous Debian avec Nagios et Munin (Puppet en guest star) : de A à Z - Partie 1 : introduction
Par Mathieu le jeudi 4 juillet 2013, 19:33 - Informatique - Lien permanent
Voir l’ensemble des articles de la série.
Le monitoring. Graal des administrateurs système dès qu’un parc de machines commence à se constituer. Avec ce petit guide, vous allez découvrir que même avec seulement trois machines, on peut faire du monitoring. Même avec des machines mobiles ou pas toujours allumées, on peut faire du monitoring. Même avec les machines des clients, on peut faire du monitoring.
Pour pouvoir intervenir en cas de problème, il faut déjà savoir qu’il y a un problème, c’est le but du monitoring.
Cas d’étude
Vous gérez un parc. Ça peut être vos propres machines, ou les machines de vos clients. Vous pouvez avoir des serveurs ou des postes de travail, ces machines ne sont pas forcément toujours allumées, mais quand elles fonctionnent il faut avoir un retour sur leur état de santé. Vous aimeriez bien centraliser tout ça, mais vous ne savez pas comment faire. Voici comment.
Définitions / Présentations
Lorsqu’on parle de monitoring, on parle bien entendu de surveillance du système. Mais pour s’assurer de l’état du système, il faut deux choses :
- Un collecteur (“node”), qui va au moyens de différentes sondes remonter les informations brutes sur les composants du système à surveiller. Ça peut être très bas niveau la température du CPU, ou une sonde élaborée comme le temps de réponse à un ping. Dans tous les cas, le collecteur seul ne suffit pas à dire “je fais du monitoring”.
- Le concentrateur (“master”), qui va récupérer les informations du collecteur, et générer les alertes, le concentrateur va pouvoir vous afficher une vue synthétique de l’ensemble des machines que vous surveillez.
Munin : le surveillant dans la cour
Nagios : le mirador
Même si on peut installer un client Nagios servant de collecteur sur les postes à surveiller, Nagios n’a pas pour vocation d’observer directement les systèmes. Il est prévu pour effectuer des sondages “externes” des systèmes (tel port est-il ouvert, tel service répond-il correctement…).
De ce fait, Nagios va être limité dans les accès au système (comment remonter des alertes sur la température du disque, en conservant un point de vue externe ?) et va donc dépendre des sondes locales, comme celles fournies par Munin.
Puppet : le directeur de l’établissement
On ne l’a pas encore présenté. Puppet est un logiciel permettant de répliquer de la configuration sur un ensemble de postes. Puppet permet de définir une certaine granularité dans la configuration : il est possible de créer des “groupes” de configuration, pour donner aux postes gérés la configuration qu’il leur faut, potentiellement différente d’une machine à l’autre (un serveur web et un serveur mail n’ont pas les mêmes besoins).
Le fonctionnement
En résumé
- Nagios va collecter des informations externes sur le système et recevoir des alertes de Munin.
- Munin (“munin-node”) va collecter des informations plus précises sur le fonctionnement de la machine “à chaud”.
- Un “master” Munin va centraliser toutes les informations récoltées par les sondes “munin-nodes” et envoyer les alertes à Nagios.
- Puppet va se charger d’uniformiser la configuration sur l’ensemble des machines sur lesquelles Munin (munin-node) est installé (mieux que le copier/coller : on change une fois et c’est toutes les machines qui changent).
Les machines
- Les machines à administrer (“nodes”) sur lesquelles on mettra les “munin-nodes” et les “puppet-nodes”.
- Le “puppet-master” qui va envoyer aux “nodes” la configuration à appliquer
- Le “master” Munin qui va centraliser les informations des sondes, et éventuellement faire des graphes.
- Le concentrateur nagios, qui va également effectuer les tests externes sur les machines.
Dans la partie suivante
Dans la prochaine partie, nous verront comment installer et configurer Nagios et ses sondes. Nous verront ensuite dans les parties suivantes le détail de la configuration de Munin, sa communication avec Nagios, et la réplication de sa configuration avec Puppet.