Le monitoring Ă l’ancienne
Edit 24 juillet 2019: Je ne conseille plus d’utiliser cet outil, systemd fait le job plus simplement.
Contexte
Pour ma domotique j’utilise la solution Jeedom. Cette derniĂšre avait tendance ces derniers temps Ă planter, ou plus exactement, la base mysql, avait tendance Ă crasher. TrĂšs fatigant. En effet, un service de domotique se doit d’ĂȘtre fiable - ou au minimum constant - pour ĂȘtre vivable. Pour me laisser le temps de creuser les raisons de ces plantages, tout en maintenant les services, je me suis mis en quĂȘte d’un outil de monitoring, et de relance de service, lisible et simple Ă mettre en oeuvre. En ce domaine les solutions ne manquent pas: j’ai testĂ© (rapidement) zabbix, nagios, centreon, mais en me faisant le constat que ces artilleries lĂ n’Ă©taient clairement pas dimensionnĂ© Ă mes besoins, qui sont trĂšs modestes.
En dĂ©couvrant le tout simple monit j’ai Ă©tĂ© conquis. Un apt, un fichier de conf, et un restart de service et roule ma poule… Voyons donc ça.
Installation de Monit
~$ apt install monit
~$ nano /etc/monit/monitrc
#Configuration de monit
set daemon 90
set alert courriel@toi.com
set httpd port 2812 # port du service
allow admin:monit # login et mdp
#Configuration de l'alerte
set mail-format {
from: monit@votre.machine
subject: $SERVICE $EVENT at $DATE
message: Monit $ACTION $SERVICE at $DATE on $HOST: $DESCRIPTION.
}
#Surveillance du service ssh
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 port 22822 protocol ssh then restart
if 5 restarts within 5 cycles then timeout
#De MySQL
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
if failed unixsocket /var/run/mysqld/mysqld.sock then alert
if failed unixsocket /var/run/mysqld/mysqld.sock then restart
if 3 restarts within 5 cycles then timeout
#De fail2ban
check process fail2ban with pidfile /var/run/fail2ban/fail2ban.pid
start program = "/etc/init.d/fail2ban start"
stop program = "/etc/init.d/fail2ban stop"
if failed unixsocket /var/run/fail2ban/fail2ban.sock then restart
if 5 restarts within 5 cycles then timeout
#De apache
check process apache2 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 for 2 cycles then restart
~$ systemctl restart monit.service
Bravo, c’est terminĂ©. Rendez vous Ă l’adresse ip-de-votre-machine:2812 pour vĂ©rifier que tout va bien.
Configurer le serveur courriel
Je ne reçois pas les courriels d’alerte?
Si vous ne les recevez pas, peut ĂȘtre n’avez vous pas ce qu’il faut d’installĂ© pour que votre machine y arrive. Voyons ça.
~$ apt install postfix
~$ nano /etc/aliases
root:courriel@toi.com #ajoutez une ligne Ă la fin du fichier
~$ nano /etc/hostname
jeedom.monadresse.com
~$ hostname jeedom.monadresse.com
~$ dpkg-reconfigure postfix
Puis sĂ©lectionnez envoie par site web, renseignez l’adresse de votre site, et laissez toutes les options comme configurĂ©es de base. C’est tout. Pour tester si vous recevez bien vos courriels.
~$ mail -s "Teste" courriel@toi.com < /dev/null