Monit est un outil de surveillance de processus open source pour le système d'exploitation Linux qui vous aide à surveiller le processus système à l'aide du navigateur Web et également, chaque fois que cela est nécessaire, à effectuer automatiquement la maintenance ou la réparation du processus particulier de manière à ce qu'il puisse être remis en ligne. /P>
Monit peut également être utilisé pour gérer et surveiller les programmes, fichiers, répertoires et périphériques pour les changements d'horodatage, les changements de somme de contrôle ou les changements de taille ; ne se limite pas à effectuer diverses vérifications du réseau TCP/IP, des vérifications de protocole et peut utiliser SSL pour ces vérifications.
Il se connecte à son fichier journal et avertit l'utilisateur via des messages personnalisables.
Ce guide vous aidera à installer Monit sur CentOS 7 / RHEL 7.
Installer Monit
Activez le référentiel EPEL pour télécharger la dernière version de Monit.
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Installez Monit à l'aide de la commande YUM.
yum -y install monit
Démarrez monit en utilisant la commande suivante.
monit
Sortie :
Starting Monit 5.25.1 daemon with http interface at [localhost]:2812
Vérifiez l'état de la surveillance.
monit status
Sortie :
Monit 5.25.1 uptime: 0m System 'server.itzgeek.local' status OK monitoring status Monitored monitoring mode active on reboot start load average [0.01] [0.05] [0.04] cpu 0.0%us 0.0%sy 0.0%wa memory usage 170.2 MB [29.0%] swap usage 0 B [0.0%] uptime 4m boot time Sun, 09 Feb 2020 04:55:42 data collected Sun, 09 Feb 2020 05:00:00
Configurer la surveillance
Le fichier de configuration principal de Monit est /etc/monitrc. Nous apporterons quelques modifications au fichier de configuration de Monit pour nos besoins.
vi /etc/monitrc
Par défaut, monit est configuré pour vérifier les services à un intervalle de 30 secondes. Ce paramètre peut être modifié en modifiant la ligne ci-dessous.
set daemon 30
Les alertes peuvent être configurées par.
set mailserver mx.itzgeek.local port 25
Les modèles d'alerte peuvent être trouvés dans le fichier de configuration lui-même. Voir les extras au bas de cet article.
Le paramètre des journaux peut être modifié à l'aide du fichier suivant.
set log /var/log/monit
Activer l'interface Web Monit
Monit fournit également une interface Web pour surveiller et gérer les services configurés. Par défaut, monit écoute sur le port 2812, mais il doit être configuré.
Modifiez le fichier de configuration de moniteur.
vi /etc/monitrc
Recherchez le port httpd 2812, modifiez les entrées suivantes.
DE :
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' #with ssl { # enable SSL/TLS and set path to server certificate # pemfile: /etc/ssl/certs/monit.pem #}
À :
set httpd port 2812 and use address 0.0.0.0 # only accept connection from localhost allow 0.0.0.0/0 # allow localhost to connect to the server and allow admin:monit # require user 'admin' with password 'monit' #with ssl { # enable SSL/TLS and set path to server certificate # pemfile: /etc/ssl/certs/monit.pem #}
À partir des paramètres ci-dessus, monit écoutera sur 2812 et l'utilisateur administrateur pourra accéder à l'interface Web à partir de n'importe quel réseau.
Recharger le moniteur.
systemctl restart monit
Démarrage automatique de Monit au démarrage.
systemctl enable monit
Configurez le pare-feu pour autoriser l'accès à l'interface Web de Monit, s'exécutant sur le port 2812.
firewall-cmd --permanent --add-port=2812/tcp firewall-cmd --reload
Accéder à l'interface Web de Monit
Ouvrez votre navigateur Web et accédez à l'URL ci-dessous.
http://votre.adresse.ip.ess:2812OU
http://votre.fq.dn:2812Utilisez le nom d'utilisateur et le mot de passe mentionnés à l'étape précédente.
La page d'accueil de Monit ressemblera à celle ci-dessous.
Configurer les services pour la surveillance avec Monit
Une fois l'interface Web en place, nous pouvons commencer à configurer les services que nous voulons surveiller.
Vous pouvez placer les fichiers de configuration de surveillance de service sous le répertoire /etc/monit.d/.
Configurer pour le service SSH.
vi /etc/monit.d/sshdmonitor
Utilisez les informations ci-dessous.
check process sshd with pidfile /var/run/sshd.pid start program "/usr/bin/systemctl start sshd.service" stop program "/usr/bin/systemctl stop sshd.service" if failed port 22 protocol ssh then restart
Configurer le service pour syslog.
vi /etc/monit.d/syslogmonitor
Utilisez les informations ci-dessous.
check process syslogd with pidfile /var/run/syslogd.pid start program = "/usr/bin/systemctl start rsyslog.service" stop program = "/usr/bin/systemctl stop rsyslog.service"
Service de configuration pour HTTP.
vi /etc/monit.d/httpdmonitor
Utilisez les informations ci-dessous.
check process httpd with pidfile /var/run/httpd/httpd.pid start program "/usr/bin/systemctl start httpd.service" stop program "/usr/bin/systemctl stop httpd.service" if failed port 80 protocol http then restart
Une fois configuré, testez la syntaxe monit
monit -t
Sortie :
Control file syntax OK
Rechargez-le pour prendre effet des modifications.
monit reload
Accédez à l'interface Web. Vous devriez voir les nouveaux services que nous venons de configurer.
En cliquant sur les services, vous obtiendrez plus d'informations sur le service en question. Ici, vous pouvez effectuer des actions telles que démarrer, arrêter et redémarrer le service, et également désactiver la surveillance.
Surveillance des tests
Arrêtez maintenant le service HTTP pour nos tests.
systemctl stop httpd
Attendez 30 secondes, monit démarrera automatiquement le syslog. Vous pouvez le trouver dans le journal de surveillance.
cat /var/log/monit.log
Sortie :
[UTC Feb 9 05:18:00] error : 'httpd' process is not running [UTC Feb 9 05:18:00] info : 'httpd' trying to restart [UTC Feb 9 05:18:00] info : 'httpd' start: '/usr/bin/systemctl start httpd.service' [UTC Feb 9 05:18:31] info : 'httpd' process is running with pid 1959
Alerte par e-mail avec Monit
Des modèles d'alerte prédéfinis sont disponibles dans Monit pour alerter les administrateurs système en cas d'échec d'un service particulier.
Modifiez le fichier de configuration.
vi /etc/monitrc
Vous pouvez mettre à jour le modèle d'alerte ci-dessous selon vos besoins.
set mail-format { from: Monit <monit@$HOST> subject: monit alert -- $EVENT $SERVICE message: $EVENT Service $SERVICE Date: $DATE Action: $ACTION Host: $HOST Description: $DESCRIPTION Your faithful employee, Monit @ ITzGeek }
Définissez ici l'adresse du destinataire. Remarque :Vous recevrez des alertes sur tous les types d'actions
set alert root@localhost
Si vous souhaitez ne pas vous alerter lors du redémarrage du service initié par l'utilisateur, ajoutez la configuration ci-dessous.
set alert root@localhost not on { instance, action }
Enfin, définissez la configuration du serveur de messagerie afin que vous puissiez recevoir des e-mails. Ici, j'utilise le relais local afin que nous puissions lire l'alerte mail sur le terminal pour vérifier les tests.
set mailserver localhost
Rechargez le service.
monit reload
Exemple d'alerte
Le Monit a envoyé des e-mails à l'utilisateur root concernant le processus HTTP.
cat /var/spool/mail/root
E-mail :
From [email protected] Sun Feb 9 05:22:48 2020 Return-Path: <[email protected]> X-Original-To: root@localhost Delivered-To: [email protected] Received: from server.itzgeek.local (localhost [IPv6:::1]) by server.itzgeek.local (Postfix) with ESMTP id 670E21082B34 for <root@localhost>; Sun, 9 Feb 2020 05:22:48 +0000 (UTC) From: "Monit" <[email protected]> To: [email protected] Subject: monit alert -- Does not exist httpd Date: Sun, 09 Feb 2020 05:22:48 GMT X-Mailer: Monit 5.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-Id: <[email protected]> Does not exist Service httpd Date: Sun, 09 Feb 2020 05:22:48 Action: restart Host: server.itzgeek.local Description: process is not running Your faithful employee, Monit @ ITzGeek From [email protected] Sun Feb 9 05:23:18 2020 Return-Path: <[email protected]> X-Original-To: root@localhost Delivered-To: [email protected] Received: from server.itzgeek.local (localhost [IPv6:::1]) by server.itzgeek.local (Postfix) with ESMTP id B22AF1082B37 for <root@localhost>; Sun, 9 Feb 2020 05:23:18 +0000 (UTC) From: "Monit" <[email protected]> To: [email protected] Subject: monit alert -- Exists httpd Date: Sun, 09 Feb 2020 05:23:18 GMT X-Mailer: Monit 5.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-Id: <[email protected]> Exists Service httpd Date: Sun, 09 Feb 2020 05:23:18 Action: alert Host: server.itzgeek.local Description: process is running with pid 2139 Your faithful employee, Monit @ ITzGeek
OU
Utilisez le client de messagerie Mutt (yum install -y mutt).
Conclusion
C'est tout. Nous avons configuré avec succès Monit sur CentOS 7 / RHEL 7.