Monitorer son serveur
Par Dju » 26 décembre 2009 (18:01) - Serveur
Hi
J'espère que vous avez passé un très bon noël, que vous bien mangé et bu plein de bon vin, et surtout que papa noël a satisfait vos attentes :D
En attendant la livraison du zotac (oui, c'est lonnng, mais il ne devrait plus tarder ), je vous propose ici de découvrir un soft de monitoring qui permet de surveiller tous les services de votre serveur, de les relancer quand ils s'arrêtent, et de vous avertir par email.
Il s'agit de Monit
il est facilement configurable et pas trop dur à comprendre, et surtout s'avère efficace et permet de voir facilement l'état du serveur car il dispose d'une petite interface web permettant de tout voir d'un coup d'oeil.
On commence donc par l'installer avec la commande traditionnelle
aptitude install monit
On va maintenant pouvoir commencer la configuration, en éditant le fichier /etc/monit/monitrc
Voici les lignes les plus importantes à dé commenter et éditer, selon vos besoins
à quelle fréquence (en secondes) doivent se faire les vérification
set daemon 300
fichier de log
set logfile /var/log/monit.log
pour les alarmes, quel serveur mail utilise t on
set mailserver localhost
quelle adresse d'expediteur pour envoyer un mail d'alerte
set mail-format { from: monitoring@mondomaine.com }
quelle adresse de destination
set alert alarms@mondomaine.com
on définit les autorisation pour l'accès à l'interface web
ici, est autorisé l'accès depuis localhost (donc en local, 127.0.0.) ainsi que depuis l'adresse 192.168.0.2
Et on définit un login admin et un mot de passe mot_de_passe
set httpd port 81 and
use address 192.168.0.1
allow localhost
allow 192.168.0.2
allow admin:mot_de_passe
Maintenant, on va définir les services à surveiller
apcupsd, pour gèrer mon onduleur
check process apcupsd with pidfile /var/run/apcupsd.pid
start program = "/etc/init.d/apcupsd start"
stop program = "/etc/init.d/apcupsd stop"
if failed host 192.168.0.1 port 3551 type TCP with timeout 5 seconds then restart
Bind, pour le DNS
check process Bind with pidfile /var/run/bind/run/named.pid
start program = "/etc/init.d/bind9 start"
stop program = "/etc/init.d/bind9 stop"
if failed host 127.0.0.1 port 53 type tcp protocol dns with timeout 5 seconds then restart
if failed host 127.0.0.1 port 53 type udp protocol dns with timeout 5 seconds then restart
Dhcp, pour l'attribution des adreses IP sur le réseau local
check process DHCP3-Server with pidfile /var/run/dhcp3-server/dhcpd.pid
start program = "/etc/init.d/dhcp3-server start"
stop program = "/etc/init.d/dhcp3-server stop"
if failed host 192.168.0.1 port 67 type udp with timeout 5 seconds then alert
Ntp, pour la synchronisation automatique de la date et heure
check process NTPD with pidfile /var/run/ntpd.pid
start program = "/etc/init.d/ntp start"
stop program = "/etc/init.d/ntp stop"
if failed port 123 type udp with timeout 8 seconds then restart
Ssh, pour l'administration à distance
check process SSHD with pidfile /var/run/sshd.pid
start program = "/etc/init.d/ssh start"
stop program = "/etc/init.d/ssh stop"
if failed host 192.168.0.254 port 222 protocol ssh with timeout 3 seconds then restart
Postfix, pour les emails
check process Postfix with pidfile /var/spool/postfix/pid/master.pid
start program = "/etc/init.d/postfix start"
stop program = "/etc/init.d/postfix stop"
if failed port 25 protocol smtp with timeout 10 seconds then restart
Et enfin apache, pour les pages web
check process Apache with pidfile /var/run/apache2/apache2.pid
start program = "/etc/init.d/apache2 start"
stop program = "/etc/init.d/apache2 stop"
if failed port 80 protocol http with timeout 10 seconds then restart
Voila, comme vous le constatez, ces règles sont écrites dans un anglais assez naturel et donc facilement compréhensible.
A chaque fois, on décrit le nom du process à surveiller, ainsi que le port, éventuellement un timeout, et enfin une action à effectuer.
Ainsi, si par exemple on fait une bourde et qu'on coupe le ssh, monit le relancera et vous enverra gentiment un email pour vous prévenir.
Cela dit, les exemples ci dessus sont issus de ma configuration, mais on peut monitorer pas mal d'autres choses avec monit, telles que l'espace disque, la ram utilisée, les permission ou la date d'un fichier/dossier...
Une fois configuré, on lance le service
service monit start
ou
/etc/init.d/monit stat
Voici à quoi ressemble l'interface web
Ca fait un bout de temps que je l'utilise et il a toujours bon fonctionné, et m'a tiré une ou deux fois d'une mauvaise situation...
Enfin, avec monit, associé à Munin (qui a pleins de plugins qu'on peut développer soi même, en perl, en script shell, en php... ) pour avoir des graphs, on a deja une bonne vue d'ensemble de notre machine.
Ceci sera l'objet d'un prochain article expliquant comment l'installer et le configurer
une tres belle facons de voir les choses oui meme si je suis ps convaincu que ca peut parcher
ouais, rien n'est parfait. le mieux est donc d'avoir plusieurs protections.
Néanmoins cela peut s'avêrer utiles dans certains cas
Fil des commentaires de ce billet
URL de rétrolien : https://blog.crifo.org/trackback/16