Munin, le monitoring des dieux

Munin, le monitoring des dieux


Pour les amateurs de mythologie nordique, Munin et Hunin sont les deux corbeaux d’Odin. Ils surveillent les moindres recoins de Midgard et rapportent ensuite à leur maître. L’application qui nous intéresse aujourd’hui porte donc bien son nom car elle permet le monitoring et le reporting des constantes de vos différents serveurs, et est baptisée Munin. Après une rapide présentation, nous nous attarderons sur le processus d'installation de cette dernière et sur son utilisation.

1. Présentation

Munin est une application self-hosted open-source (code sur GitHub) créée en 2002 et encore activement maintenue à ce jour. Elle propose une foule de plugins permettant de monitorer de nombreux éléments vitaux des vos machines comme l’usage des CPU ou de la RAM, le load-average ou encore le taux d’utilisation des interfaces réseaux. Le tout est affiché via une interface web sobre et efficace.

Le soft sauvegarde ces informations sur la durée et permet une visualisation sur une longue période de l’évolution des différentes métriques.

Enfin, il a la particularité de gérer autant de machine que vous le souhaitez grâce à un système de Master/Nodes simples et faciles à configurer.

2. Pré-requis

  • Avoir un utilisateur sudo sur chaque machine que vous souhaitez configurer
  • Identifier la machine destinée à disposer du Master (en l'occurrence là où sera exposée l’interface web)

3. Installation et configuration du Master

Installation

Passons directement à l’installation de Munin sur le serveur Master à proprement parler :

sudo apt-get update
sudo apt-get install munin

Configuration

Une fois cette installation terminée, nous pouvons passer à la configuration. La configuration de Munin se trouve dans le fichier munin.conf localisé dans le dossier /etc/munin. Avec votre éditeur de texte préféré, ouvrez ce fichier de configuration pour pouvoir visualiser les premières options qui nous intéressent :

dbdir     /var/lib/munin
htmldir   /var/www/munin
logdir    /var/log/munin
rundir    /var/run/munin

La ligne qui nous intéresse ici est le htmldir. C’est dans ce dossier que seront stockées les pages et images statiques de l’interface web. N’hésitez pas à configurer ce chemin selon vos besoin, en fonction de l’installation de votre serveur web (Nginx, Apache, …) La seconde partie de la configuration qui nous intéresse se situe plus bas, dans ce même fichier :

[localhost.localdomain]
    address 127.0.0.1
    use_node_name yes

Il s’agit ici de l’endroit où nous allons référencer le master et les différents nodes afin de les monitorer. Par exemple, j’ai choisi de renommer mon master comme suit :

[ElevenMaster]
    address 127.0.0.1
    use_node_name yes

Le nom que j’ai choisi, ElevenMaster, sera donc affiché sur l’interface web pour décrire ma machine, en l'occurrence le Master de notre infrastructure Munin. Il ne reste plus qu'à sauvegarder et fermer le fichier de configuration puis relancer le service Munin pour prendre en compte ces nouvelles configurations :

sudo service munin-node restart

Les fichiers statiques de l’interface web devraient maintenant être disponibles dans le dossier indiqué précédemment dans la configuration (ligne htmldir) :

Le monitoring de votre machine “Master” est donc bien en place. Voyons maintenant la suite.

4. Installation et configuration d’un Node

Installation

Le monitoring de votre machine “Master” est donc maintenant en place. L'intérêt majeur de Munin réside dans sa capacité à gérer pour vous une multitude de machine sans effort. Sur une seconde machine, il suffit donc d’installer le package munin-node puis de procéder à deux petites configurations : l’une du côté du Node, l’autre du côté du Master.

L’installation du package tout d’abord :

sudo apt-get update
sudo apt-get install munin-node

Configuration

Il vous faut ensuite configurer le munin-node pour autoriser le Master à récupérer les données requises. Cela se passe dans le fichier de configuration /etc/munin/munin-node.conf, au niveau de la ligne autorisant le localhost :

allow ^127.0.0.1$

Il faut remplacer cette IP locale par l’ip publique du serveur Master, au format RegExp. Ce qui donnerait par exemple :

allow ^145\.78\.309\.444$

Relancez maintenant le service Munin-node pour prendre en compte cette configuration :

sudo service munin-node restart

De retour sur le Master pour la dernière étape, il nous faut ajouter le Node dans la liste des machine monitorée. Dans le fichier de configuration du Master (/etc/munin/munin.conf), ajoutez le Node à la suite de la déclaration du Master faite précédemment. Il vous faudra y indiquer un nom représentant le Node ainsi que l’adresse IP de ce dernier. En reprenant notre exemple de tout à l’heure :

[ElevenMaster]
    address 127.0.0.1
    use_node_name yes
[ElevenNode]
    address 267.117.81.341
    use_node_name yes

Sauvegardez, fermez le fichier de configuration et une fois de plus relancez le service Munin pour prendre en compte ce nouveau Node :

sudo service munin-node restart

Au bout de quelques minutes, le temps que Munin récupère les informations du Node fraîchement ajouté, vous devriez voir apparaître votre seconde machine dans l’interface web :

Votre instance de Munin est maintenant en place. Vous pouvez à tout moment configurer des outils de monitoring spécifiques (apache, mysql, nginx, etc) grace aux plugins issus de la communauté, il y a beaucoup de choses très utiles.

Auteur(s)

Jérémy Bernard

Jérémy Bernard

Mainly JavaScript and backend stuff.

Voir le profil

Vous souhaitez en savoir plus sur le sujet ?
Organisons un échange !

Notre équipe d'experts répond à toutes vos questions.

Nous contacter

Découvrez nos autres contenus dans le même thème

Baleine avec des conteneurs

Créer un environnement de revue avec Gitlab

Après avoir développé une nouvelle fonctionnalité pour votre application, le code est revue par l'équipe. Pour que le relecteur puisse mieux se rendre compte des changements, il est intéressant de mettre les changements à disposition dans un environnement de revue. Cet article va expliquer les étapes pour le faire avec Gitlab CI.

Comment tester son script Apache Spark avec Pytest ?

Tester son script Apache Spark avec pytest

Dans le domaine de la data, la qualité de la donnée est primordiale. Pour s'en assurer, plusieurs moyens existent, et nous allons nous attarder dans cet article sur l'un d'entre eux : tester unitairement avec Pytest.

Un long couloir fait à partir de données

Démarrer avec Apache Spark étape par étape

Le domaine de la data est présent dans le quotidien de chacun : la majorité de nos actions peut être traduite en données. Le volume croissant de ces données exploitables a un nom : "Big Data". Dans cet article, nous verrons comment exploiter ce "Big data" à l'aide du framework Apache Spark.