Monit est un programme de surveillance de serveur qui peut vérifier les processus en cours d'exécution sur votre système pour s'assurer qu'ils sont toujours en ligne et qu'ils s'exécutent dans des limites raisonnables de CPU et de mémoire.. Il est également livré avec une interface Web pour surveiller votre système.
Que fait Monit?
Simplement, Monit vérifiera une certaine procédure toutes les deux minutes (par défaut) pour voir comment cela fonctionne. Conserve un enregistrement de l’utilisation des ressources et peut prendre des mesures en cas d’erreur. cela inclut le redémarrage des processus bloqués et le redémarrage des processus qui utilisent trop de ressources.
Monit établit son comportement entièrement à travers des fichiers de configuration. Voici les paramètres par défaut pour MySQL à titre d’exemple:
check process mysql with pidfile /var/run/mysqld/mysqld.pid start program = "/usr/sbin/service mysql start" avec délai d’expiration 60 seconds stop program = "/usr/sbin/service mysql stop" avec délai d’expiration 60 seconds if totalmem > 400 Mo pour 5 cycles then alert if totalmem > 600 Mo pour 5 cycles then restart if cpu > 50% pour 5 cycles then alert if cpu > 90% pour 5 cycles then restart if 3 redémarre dans 5 cycles puis délai d’expiration
Monit est configuré pour surveiller la procédure MySQL en cours d’exécution. S’il tombe, vous pouvez le recommencer avec le start program =
config. Si MySQL commence à utiliser trop de ressources, peut être redémarré automatiquement, même si vous serez d’abord averti par e-mail.
Il peut également être configuré pour surveiller votre système dans son ensemble et peut vous alerter si votre serveur subit une charge inhabituelle..
check system wp01 if loadavg(5min) > 1 then alert if memory usage > 90% pour 5 cycles then alert if cpu usage (utilisateur) > 90% pour 5 cycles puis alerte
Tout ce que les moniteurs Monit peuvent être visualisés à partir de l’interface Web, en cours d’exécution sur le port 2812 par défaut.
En même temps, vous pouvez afficher les données de plusieurs hôtes en un seul endroit avec le Utilitaire M / Monit, qui a besoin d’une licence mais est libre d’essayer.
EN RELATION: Comment configurer les notifications Slack pour un espace disque faible sur votre serveur
Surveiller l'installation et la configuration
Installer Monit à partir de le gestionnaire de paquets de votre distribution; pour les systèmes basés sur Debian comme Ubuntu, cela serait:
sudo apt-get install monit
Monit devrait venir avec les paramètres par défaut, généralement situé dans ~/.monitrc
. Si vous ne l'avez pas fait (comme c'était le cas avec une installation macOS), vous pouvez trouver les fichiers de configuration par défaut ici.
L'interface Web de Monit est configurée pour s'exécuter sur le port 2812. C'est bien, mais il est entièrement ouvert par défaut avec un mot de passe par défaut. Nous voulons vous bloquer sur une adresse IP autorisée et
définir le port httpd 2812
allow your_ip
allow admin:mot de passe
Modifier ce mot de passe, de toute façon. Il y a une quelques options de configuration supplémentaires pour l’interface web, mais c’est bon pour l’instant.
Ensuite, Monit peut être configuré pour surveiller des processus individuels. En général, cela se fait avec le fichier pid du processus (que l’on trouve souvent dans /var/run/
) qui stocke le PID actuel de l’instance exécutant cette procédure, car le pid changera à chaque fois que la procédure est redémarrée.
check process nginx with pidfile /var/run/nginx.pid
start program = "/etc/init.d/nginx démarrer"
programme stop = "/etc/init.d/nginx stop"
vous devrez passer une commande à monit pour démarrer et arrêter votre procédure. Il devrait redémarrer automatiquement si la procédure échoue, pas de configuration supplémentaire, mais si vous souhaitez redémarrer en fonction de l’utilisation des ressources, vous devrez le préciser vous-même avec certains if
déclarations:
check process nginx with pidfile /var/run/nginx.pid start program = "/etc/init.d/nginx démarrer" programme stop = "/etc/init.d/nginx stop" si totalmem > 600 Mo pour 5 cycles then restart if cpu > 90% pour 5 cycles then restart if 3 redémarre dans 5 cycles puis délai d’expiration
Monit enverra des alertes chaque fois que quelque chose est redémarré, vous serez donc averti lorsque quelque chose ne va pas.
Une fois que vous avez terminé la configuration, recharger le démon monit avec:
monit recharger
Et commencez à surveiller avec:
monit démarrer tout
cela devrait également démarrer l’interface Web, que vous pouvez utiliser pour vérifier que Monit fonctionne correctement, s’exécutant généralement sur le port 2812.
Il s’agit de la configuration de base pour que Monit s’exécute hors de la boîte, mais Monit a beaucoup plus de syntaxe. Vous pouvez lire le manuel complet fondamentalement ce que Monit peut faire pour en savoir plus.
Configurer les alertes
Monit peut être configuré pour envoyer des alertes par e-mail chaque fois que des problèmes majeurs se produisent ou lorsque les processus redémarrent. Vous devrez ajouter les paramètres de votre serveur de messagerie:
set mailserver smtp.gmail.com port 587 Nom d'utilisateur "[email protected]" mot de passe "secret" avec délai d’expiration 60 seconds set eventqueue basedir /var/lib/monit/events slots 100
Le premier bloc établit le serveur de messagerie à utiliser. La méthode la plus simple serait d'utiliser smtp.gmail.com
avec un compte Gmail, même si vous pouvez installer Postfix sur votre serveur pour l'exécuter localement ou utiliser un service de messagerie d'entreprise.
La deuxième ligne indique à Monit de mettre les alertes en file d'attente, si le serveur de messagerie n'est pas accessible pour une raison quelconque.
Évidemment, vous devez également configurer l'adresse e-mail à laquelle vous envoyez:
définir l'alerte [email protected]
En même temps, puisque Monit a la capacité d'exécuter des scripts avec le exec
commander, vous pouvez définir des alertes personnalisées comme vous le souhaitez. Par exemple, vous pouvez configurer un script pour vous envoyer des notifications Slack, stockez-le comme /usr/local/bin/slack-webhook.sh
et exécutez-le chaque fois que nginx modifie le PID ou est redémarré par Monit:
check process nginx with pidfile /var/run/nginx.pid
start program = "/etc/init.d/nginx démarrer"
programme stop = "/etc/init.d/nginx stop"
si changé pid alors exec "/bin/bash -c 'PROCESS=Nginx /usr/local/bin/slack-webhook.sh'"
si 1 redémarrer dans 1 cycle puis exec "/bin/bash -c 'PROCESS=Nginx /usr/local/bin/slack-webhook.sh'"
Veuillez noter que tous les itinéraires doivent être entièrement évalués, inclus /bin/bash
et chemins vers les exécutables dans vos locaux bin
. Et une fois que vous avez terminé de modifier les fichiers de configuration, vous devrez recharger Monit.