GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Monit (surveillance des processus et des services) sur Ubuntu / Debian

Monit - Surveillance des processus et des services pour Linux

Les services sur n'importe quel serveur doivent être opérationnels et faire ce qu'ils sont censés faire.

Une surveillance automatisée est nécessaire pour garantir et optimiser le temps de fonctionnement et la disponibilité des services système sur un serveur.

Il permet aux administrateurs système d'être avertis et de résoudre les problèmes dès que possible avec un minimum d'interruption ou de temps d'arrêt.

Dans cet article, nous allons jouer avec un outil appelé Monit qui peut surveiller les services et les processus sur un serveur et envoyer des e-mails d'alerte en cas d'échec.

L'outil lui-même est assez léger et permet aux utilisateurs d'écrire des "tests" en utilisant un langage de style script très simple.

Installer Monit

Sur les systèmes basés sur Debian et Ubuntu, Monit est disponible dans les référentiels par défaut. Installer en utilisant apt-get

$ sudo apt-get install monit

Après l'installation, monit démarrerait en tant que service d'arrière-plan et peut être vérifié avec la commande suivante

# service monit status
 * monit is running

Configurer la surveillance

La prochaine chose à faire est de configurer monit pour surveiller des choses spécifiques. Le fichier de configuration de Monit se trouve dans /etc/monit/monitrc sur les systèmes basés sur Ubuntu et Debian.

You can either add all configurations to this file - /etc/monit/monitrc, or create additional configuration files in the /etc/monit/conf.d/ directory and monit would automatically read and load all of them

Commencez à modifier le fichier de configuration pour ajouter les services que vous souhaitez surveiller.

Monit a également un fichier journal situé à /var/log/monit.log qui contiendrait des informations précieuses si vous avez besoin de réparer quelque chose

Après la configuration, testez la nouvelle configuration en exécutant la commande suivante

# sudo monit -t

Recharger la nouvelle configuration sans redémarrer tout monit

# sudo monit reload

Activer l'interface Web

L'interface Web vous permet de vérifier les rapports Monit à partir du navigateur. Ceci est utile lors de la configuration et du test de monit. Plus tard, il vaut mieux le désactiver pour garder les choses en sécurité.

Trouvez la ligne "set httpd" dans le fichier de configuration et décommentez-la. Si la ligne n'existe pas, créez-en une.

set httpd port 2812 and
#    use address localhost  # only accept connection from localhost
#    allow localhost        # allow localhost to connect to the server and
    allow admin:monit      # require user 'admin' with password 'monit'
#    allow @monit           # allow users of group 'monit' to connect (rw)
#    allow @users readonly  # allow users of group 'users' to connect readonly

Accédez maintenant à http://localhost:2812/ et l'interface Web de Monit devrait s'ouvrir.

Configurer les alertes par e-mail

L'idée derrière monit est d'être alerté chaque fois que quelque chose d'inattendu se produit. Monit peut envoyer automatiquement des e-mails. Trouvez la ligne "set alert" et spécifiez l'e-mail où vous souhaitez que les rapports soient livrés. Spécifiez également le serveur de messagerie à utiliser.

set alert [email protected]
set mailserver localhost

Assurez-vous qu'un serveur smtp (MTA) s'exécute sur localhost et qu'il est capable de livrer correctement les e-mails. Utilisez la commande mail pour vérifier que le système est correctement configuré pour envoyer des e-mails.

Évitez les e-mails sans alerte - Monit envoie par défaut des e-mails pour tout ce qu'il fait ou tout ce qui se passe. Par exemple, lorsque monit démarre. Cependant, nous ne voulons que les e-mails spécifiques à l'alerte. Modifiez la configuration comme suit

set alert [email protected] not on {instance}

La configuration ci-dessus n'envoie pas par e-mail les rapports d'instance qui sont générés au démarrage/à l'arrêt de la surveillance. Consultez la documentation de surveillance sur les filtres d'événements pour les alertes pour en savoir plus.

Voici à quoi ressemble un e-mail d'alerte Monit. Il est déclenché lorsqu'un test d'espace disque s'exécute et échoue sur le serveur.

Resource limit matched Service server_disk 

	Date:        Thu, 11 Jun 2015 15:41:43
	Action:      alert
	Host:        localhost
	Description: space usage 61.4% matches resource limit [space usage>50.0%]

Your faithful employee,
Monit

Surveiller les services comme Apache, Mysql, Postfix

Vous souhaitez maintenant surveiller votre serveur Web, votre serveur de base de données, votre serveur de messagerie et d'autres démons pour vous assurer que les services fonctionnent parfaitement et en permanence. C'est facile.

Continuez simplement à ajouter des instructions dans le fichier de configuration de monit pour spécifier chaque service que vous souhaitez surveiller et Monit commencera à le faire instantanément.

After changing configurations, make sure to run 'sudo monit reload' to bring them in effect.
While testing you can manually turn services on/off and check the monit report from the web interface.

Voici quelques exemples -

1. Service HTTP - port 80

L'exemple suivant indiquera à Monit de vérifier si le serveur http sert sur le port 80 ou non. Sinon, cela générerait une alerte

check host http_server with address localhost
    if failed port 80 protocol http then alert

Donc, s'il y a un problème avec le serveur http (apache ou nginx), une alerte sera générée
De même, vous pouvez définir des moniteurs pour d'autres ports comme ftp, smtp, imap etc.

2. Surveiller l'état du site Web

La simple surveillance du port 80 n'est pas suffisante pour s'assurer que le site Web est opérationnel. Nous devons nous assurer que la récupération d'une page donne un code de réponse http de 200. Voici la configuration requise

# check that website is working proper
check host binarytides with address www.binarytides.com
    if failed
        port 80
        protocol http
        request "/"
        status = 200
    then alert

Si l'un des "port 80" ou "serveur http" ou "état 200 pour / url" échoue, une alerte sera générée. C'est un moyen efficace de vérifier que votre site est opérationnel et disponible pour les utilisateurs.

3. Serveur Web Apache - Surveillance des processus

Les processus sont surveillés à l'aide de fichiers pid spécifiques. Par exemple, sur Debian, le serveur Web Apache a un pid situé dans /var/run/apache2/apache2.pid qui peut être vérifié pour s'assurer qu'apache est en cours d'exécution ou non.

# Monitor Apache and restart if not running, also alert
check process apache with pidfile /var/run/apache2/apache2.pid
    start program = "/etc/init.d/apache2 start"
    stop program  = "/etc/init.d/apache2 stop"

Ce qui précède indique à monit de surveiller le processus à partir du fichier pid spécifié. Ici, si monit ne trouve pas le processus en cours d'exécution, il tentera de le démarrer en utilisant la commande spécifiée dans le paramètre "start program". Par défaut, monit générera également une alerte (e-mail) au redémarrage.

Moniteur uniquement

Si vous ne voulez pas que monit redémarre apache et se contente d'informer de l'événement, utilisez un autre type de configuration

# Alert if apache not running
check process apache with pidfile /run/apache2/apache2.pid
    if does not exist then alert

4. Vérifier Mysql sur le port 3306 - Surveillance des ports

Dans cet exemple, nous surveillons la base de données mysql non pas en utilisant le pid mais directement en nous connectant au port de service qui est 3306.

Pour vérifier uniquement le numéro de port avec le protocole, utilisez la configuration suivante -

# check just port 3306
check host localmysql with address localhost
    if failed port 3306 protocol mysql then alert

La configuration suivante doit vérifier le processus mysql et redémarrer s'il n'est pas en cours d'exécution. Il vérifierait également le service du port 3306.

check process mysql_server with pidfile /var/run/mysqld/mysqld.pid
   start program = "/etc/init.d/mysql start"
   stop program = "/etc/init.d/mysql stop"
   if failed host 127.0.0.1 port 3306 protocol mysql then alert

5. Surveiller le serveur de messagerie et les ports de Postfix

Permet maintenant de configurer une configuration pour surveiller le serveur de messagerie postfix. La configuration est identique aux précédentes, juste avec un fichier pid et un numéro de port différents

check host localpostfix with address localhost
    if failed port 25 protocol smtp then alert

Pour surveiller le processus et redémarrer en cas d'échec, utilisez ceci -

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 then restart
And do not forget that while postfix is down, monit might not be able to send any emails (unless there are other mail servers specified). But monit would send them once the mail server is up again.

6. Alerter à plusieurs reprises

Par défaut, Monit ne génère une alerte que deux fois. Une fois lorsqu'un test échoue et une autre lorsqu'il réussit.

Si vous souhaitez recevoir des alertes répétées pour le même test défaillant (s'il est trop important par exemple), utilisez la configuration suivante.

set alert [email protected] with reminder on 15 cycles

La configuration ci-dessus est un paramètre global, qui envoie toutes les alertes tous les 15 vérifications/cycles.

Pour répéter les alertes uniquement pour des tests spécifiques, spécifiez la directive d'alerte dans les critères de test particuliers comme ceci

check filesystem datafs with path /dev/sda1
  alert [email protected] with reminder on 1 cycles
  if space usage > 80% for 5 times within 5 cycles then alert

Si vous souhaitez recevoir des rappels moins de fois mais à plusieurs reprises, utilisez quelque chose comme "rappel sur 10 cycles".

Vérifier l'état de la surveillance

Cela nécessite que le démon http monit soit en cours d'exécution.

$ sudo monit status
The Monit daemon 5.8.1 uptime: 0m
Process 'apache'
  status                            Running
  monitoring status                 Monitored
  pid                               1335
  parent pid                        1
  uid                               0
  effective uid                     0
  gid                               0
  uptime                            1h 52m
  children                          7
  memory kilobytes                  29556
  memory kilobytes total            241604
  memory percent                    0.3%
  memory percent total              2.9%
  cpu percent                       0.0%
  cpu percent total                 0.0%
  data collected                    Fri, 05 Dec 2014 11:11:18
System 'enlightened'
  status                            Running
  monitoring status                 Monitored
  load average                      [0.05] [0.26] [0.35]
  cpu                               3.7%us 0.8%sy 0.0%wa
  memory usage                      3613152 kB [44.2%]
  swap usage                        0 kB [0.0%]
  data collected                    Fri, 05 Dec 2014 11:11:18

Ou consultez l'interface Web à l'adresse http://localhost:2812/ pour vérifier l'état de tout

Conclusion

Les exemples ci-dessus ne montrent que des exemples très simples de configuration de tâches de surveillance avec Monit.

Monit est capable de faire des choses beaucoup plus complexes comme envoyer un ping aux hôtes du réseau, exécuter des scripts externes et tester la sortie pour une certaine valeur.

Consultez la documentation complète sur -
https://mmonit.com/monit/documentation/monit.html

Les exemples de configuration de la page wiki Monit contiennent de nombreux exemples sur la façon de configurer des moniteurs pour divers services -

http://mmonit.com/wiki/Monit/ConfigurationExamples

Si vous avez des commentaires ou des questions, faites-le nous savoir dans les commentaires ci-dessous.


Debian
  1. Comment installer Netflix dans Kodi sur Ubuntu et Debian

  2. Comment installer et configurer Webmin sur Debian / Ubuntu

  3. Comment installer Python 3.7 sur Ubuntu, Debian et LinuxMint

  4. Comment installer Suricata sur Debian 11

  5. Comment installer et configurer Monit sur Linux pour la surveillance des processus

Comment installer Cacti Monitoring sur Debian 9

Comment installer Cacti Monitoring sur Debian 10

Comment installer Mongoku sur Ubuntu 20.04 / Debian 11

Comment installer ODBC sur Ubuntu 20.04 / Debian 11 ?

Comment installer Jitsi Meet sur Debian et Ubuntu

Comment installer Grafana sur Ubuntu 18.04 et Debian 8