Surveiller l’état de votre serveur avec monit et webmin

monitoring serveur

Aujourd’hui nous allons voir comment surveiller l’état de son serveur dédié à l’aide d’outils de monitoring. Voici les 4 grands logiciels que nous allons installer et configurer :

  • Monit : permet de surveiller l’état des différents services comme Apache, le serveur FTP, DNS mais aussi l’état des disques dur. Ce logiciel présente l’avantage de faire des configurations très précises chaque service.
  • Webmin : c’est une interface d’administration en ligne. Ça vous permet de gérer votre serveur en vous connectant sur une page web sécurisé. Vous pouvez faire ce que vous voulez puisque vous avez même un accès à la ligne de commande.
  • Logwatch : ce logiciel vous envoie des emails avec un résumé des différents fichiers de logs comportant les actions « importantes » effectuées sur le serveur durant les dernières 24h. Ça permet de détecter assez rapidement les attaques ou les processus défaillants.
  • Munin : ce logiciel vous fournit des statistiques sous forme de graphique. Vous retrouvez la charge du CPU ainsi des statistiques liés aux différents services qui tournent sur votre serveur.

Voici le tutoriel vidéo sur le monitoring de son serveur :


(Vous pouvez télécharger la vidéo ou la regarder sur Dailymotion)

Configuration de Monit

Comme je l’ai expliqué en introduction, il faut configurer chaque service que l’on souhaite surveiller avec quelques lignes de codes. En réalité, ça ressemble assez à de la programmation classique, puisqu’on donne une série de test et les actions à faire en fonction des résultats. C’est d’ailleurs ce qui rend monit si puissant.

Vous devez commencer par activer Monit en éditant le fichier /etc/default/monit et en plaçant le paramètre startup à 1.

Ensuite, je vous propose de reprendre mon fichier de configuration et de l’adapter selon vos besoins.

Ce fichier est découpé en plusieurs blocks, chaque block permet de surveiller un service (sauf le premier qui précise la configuration de Monit). Pour surveiller un service, on doit préciser au moins 3 éléments :

  1. La commande pour démarrer le service
  2. La commande pour le stopper
  3. Le chemin du fichier qui contient le PID du processus (en cas de problème, ça vient généralement de ce chemin qui est invalide)

Ensuite on donne une série de test et les actions à effectuer si le test est positif. Une fois que l’on à compris le fonctionnement d’un block, c’est plus ou moins similaire pour les autres.

Pour plus d’explications, vous trouverez un mini-tutorial dans les commentaires du fichier /etc/monit/monitrc et dans la vidéo.

/etc/monit/conf.d/config

Installation de webmin

L’installation de webmin est plutôt simple, mais comme ce n’est pas une application « officiel », il faut ajouter un dépôt en éditant le fichier /etc/apt/sources.list et ajouter ces 2 lignes :

/etc/apt/sources.list

Ensuite enchaînez avec ces commandes pour authentifier le dépôt, mettre à jour la liste des paquets et installer webmin :

Mise à jour et installation de webmin

Ensuite, pour vous connecter sur Webmin, vous devez simplement taper l’adresse IP de votre serveur (ou son nom de domaine du genre ksXXXXXX.kimsufi.com) sur le port 10000 (il faut juste ajouter :10000 dans l’adresse). Si ça ne fonctionne pas, vérifiez bien votre Firewall pour débloquer ce port.

Installation de LogWatch

Ce logiciel est très pratique puisqu’il vous envoie un résumé des différents fichiers de log par email tous les jours. En un coup d’oeil on peut voir si le site subit des tentatives de piratage ou si un service bug.

Pour l’installer il suffit de faire un apt-get install logwatch et de préciser votre adresse email dans le fichier de configuration /usr/share/logwatch/default.conf/logwatch.conf sur la ligne « Mailto ».

Des statistiques avec Munin

Munin est un outil pratique que l’on retrouve sur certains hébergeurs pour voir l’état de son serveur ou du réseau. Ça permet d’avoir une représentation graphique de la charge du serveur, de l’état de certain services, etc…

Vous pouvez installer munin en tapant la commande apt-get install munin. Ensuite vous devez configurer munin pour avoir accès à l’interface web. Ouvrez le fichier /etc/munin/munin.conf  pour dé-commenter et modifier ces lignes :

Configuration de munin

N’oubliez pas de créer le dossier monitoring et de donner les droits à munin.

Configuration de munin - Lancement

Patientez entre 5 et 10 minutes pour voir apparaître les premières statistiques sur la page ksXXXXX.kimsufi.com/monitoring. Jusque la ça fonctionne mais c’est une bonne idée de mettre un htaccess avec un mot de passe dans le dossier monitoring pour bloquer l’accès. Pour ce faire, commencer par vérifier dans la configuration d’apache (/etc/apache2/sites-available/default) que vous avez la directive « AllowOverride » sur All pour autoriser les htaccess. Puis vous pouvez placer un fichier htaccess de ce genre dans le dossier monitoring :

Protection par mot de passe

Et n’oubliez pas de générer le fichier htpasswd qui contient les utilisateurs/mot de passe avec la commande : htpasswd -c .htpasswd admin (puis ajoutez votre mot de passe pour admin, le -c sert à créer le fichier htpasswd la preière fois).

Le tutoriel est terminé, j’espère que vous avez réussi à installer cette série de logiciel pour surveiller votre serveur dédié, dans le cas contraire vous pouvez poser vos questions via les commentaires. De même si vous connaissez d’autres outils du genre, faites le savoir via les commentaires.

Si vous avez apprécié le tutoriel, partager le sur Facebook ou Twitter et n’oubliez pas de rejoindre la page facebook du blog :).

(Image à la une : ekg)

26 commentaires ont été ajoutés, ajoutez le vôtre.

Vous pouvez laisser un commentaire, cependant je ne peux pas vous garantir qu'il sera modéré rapidement ou qu'il aura une réponse, faute de temps pour m'occuper du site.

  1. Djid

    Salut ! merci pour ce beau tuto. Est ce que je peux voir script aussi « /root/script/cleanup.sh »

  2. Jerome

    Bonjour,

    J’ai un souci au niveau de monit et munin.
    Apres avoir relancé un service (proftpd).Normalement Monit m’envoie un email que ce service a redemarré,je ne l’ai pas recu.J’ai verifié si j’ai entré ma bonne adresse jusque là pas d’erreur.Peut-etre y a t-il une autre option ?
    L’autre souci c’est que Munin ne m’affiche pas les graphiques sur le site.

    Merci d’avance

  3. Minit

    Bonjour, bravo à vous pour vos tutos très bien expliqué, mais je me retrouve avec l’incapacité de me connecté à mon espace web webmin, mon mot de passe ne passe pas. Avez vous une idée ? Merci 🙂

    • Madrzejewski Alexis

      Bonjour Minit,

      Vous pouvez vous connecter en SSH sur votre serveur pour changer le mot de passe ou trafiquer les fichiers de configurations. J’avoue ne pas avoir de réponse immédiate à ce problème. (sinon, il y a peut être moyen de faire un dpkg-reconfigure de webmin).

  4. olivier82

    Bonsoir,
    petit problème avec Monit : Apache not monitored pourtant tout à l’air ok je ne comprend pas si quelqu’un peut m’aider je l’en remercie.
    Un grand merci à Alexis pour toutes tes vidéo et à tous ceux qui laisse des commentaires ils sont toujours très enrichissants.

  5. oilivier82

    Bonjour, je suis les vidéos depuis le début mais la j’ai un problème avec monit. Il ne détecte pas apache j’ai essayé de changer le user du fichier /var/index.php comme le précisé Bastien mais rien n’y fais que dois-je mettre comme user je ne comprend pas trop? en sachant que j’ai installé suphp si quelqu’un peut m’aider Merci.

  6. hallowman

    super pour ce tuto très bien expliquer.
    j’ai un petit problème lors du monitoring avec monit dans filesystemp sda1 et sda2 j’ai data access error qui s’affiche en rouge.

    que dois je faire ?

    • hallowman

      je n’arrive pas à enlever mes précédant message mais je tenais à rajouter une infos
      comme je suis en raid sur mon kimsufi j’ai pensez que mon problème venait du chemin sda1 et sda2.
      J’ai donc changer dans la config de monit et mis md1 et md2
      du coup j’ai plus les erreurs et tout est en vert maintenant 🙂

      jespere que j’ai pas fais de bêtises …