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.
Dans ce petit guide, le collecteur sera Munin (en partie), et le concentrateur sera Nagios 3 (en partie). Je dis “en partie” parce que tout n’est pas aussi simple, et que Nagios et Munin vont assurer des rôles complémentaires étant chacun dans leur domaine à la fois “collecteur” et “concentrateur”.

Munin : le surveillant dans la cour

Munin est à la base un collecteur, c’est à dire qu’il va, au moyens de sondes déployées sur les postes à surveiller (“munin-node”), écrire des fichiers RRD. Ces fichiers pourront ensuite être exploités par un concentrateur (“munin” tout court) pour dessiner des graphes (“munin-graph”) et/ou envoyer des alertes à des systèmes externes.

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 que l’on suppose présentes sont :
  • 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.
Notez que le Puppet master, le master Munin, et Nagios peuvent être portés par la même machine (puppet master, master munin, nagios).

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.

.

.