[tuto] Monit, un outil simple de monitoring pour surveiller jeedom - Carmagnole

[tuto] Monit, un outil simple de monitoring pour surveiller jeedom

Rédigé par propositionjoe / 06 juin 2017 / 4 commentaires

 
 

Prérequis: Un poste avec debian d'installé
(ou toutes linux qui accepte monit, il faudra par contre adapter vous même les adresses des pid des services à surveiller dans ce cas)

 
 
 

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
set httpd port 2812 # port du service
allow admin:monit # login et mdp

#Configuration de l'alerte
set mail-format {
from:
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.

 

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: #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"  < /dev/null

 

 

4 commentaires

#1 mardi 06 juin 2017 @ 21:30 dohri a dit :

avec systemd on peut surveiller autrement que via le pid (qui n´est pas sûr a 100%) tout simplement avec "systemctl is-active docker"

également pratique pour surveiller simplement son FS avec
check device rootfs with path /
if SPACE usage > 85% then alert
if changed fsflags then alert
if inode usage > 85% then alert

par exemple ;)

#2 mardi 06 juin 2017 @ 21:42 propositionjoe a dit :

Salut. Je découvre l'outil, merci pour l'astuce. Je me demandais justement si systemd était intégrable... Tu m'ouvres de beau bidouillage!

#3 mercredi 07 juin 2017 @ 08:32 Nadley a dit :

Hello, pour compléter sur système on peut faire tout ce que tu fais avec monit. Ça évite l'ajout d'un brique supplémentaire voir là pour quelque trucs utiles http://blog.octo.com/5-services-que-systemd-ma-deja-rendu/

#4 mercredi 07 juin 2017 @ 17:23 propositionjoe a dit :

Franchement systemd est assez fou, j'ignorai tout ça. Merci les gars.

Écrire un commentaire

 Se rappeler de moi sur ce site

Capcha
Entrez le code de l'image :

Carmagnole

Soyez résolus de ne servir plus et vous voilà libres