Monit ist ein Open-Source-Prozessüberwachungstool für das Linux-Betriebssystem, das Ihnen hilft, den Systemprozess über den Webbrowser zu überwachen und bei Bedarf automatisch die Wartung oder Reparatur des jeweiligen Prozesses durchzuführen, sodass er wieder online gebracht werden kann.
Monit kann auch zur Verwaltung und Überwachung von Programmen, Dateien, Verzeichnissen und Geräten für Zeitstempeländerungen, Prüfsummenänderungen oder Größenänderungen verwendet werden; nicht darauf beschränkt, verschiedene TCP/IP-Netzwerkprüfungen und Protokollprüfungen durchzuführen, und kann SSL für solche Prüfungen verwenden.
Es protokolliert seine Protokolldatei und benachrichtigt den Benutzer über anpassbare Nachrichten.
Diese Anleitung hilft Ihnen bei der Installation von Monit auf CentOS 7 / RHEL 7.
Monit installieren
Aktivieren Sie das EPEL-Repository, um die neueste Version von Monit herunterzuladen.
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Installieren Sie Monit mit dem YUM-Befehl.
yum -y install monit
Starten Sie Monit mit dem folgenden Befehl.
monit
Ausgabe:
Starting Monit 5.25.1 daemon with http interface at [localhost]:2812
Überprüfen Sie den Überwachungsstatus.
monit status
Ausgabe:
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
Monit konfigurieren
Die Hauptkonfigurationsdatei von Monit ist /etc/monitrc. Wir werden ein paar Änderungen an der Monit-Konfigurationsdatei für unsere Anforderungen vornehmen.
vi /etc/monitrc
Standardmäßig ist monit so eingestellt, dass es die Dienste in einem Intervall von 30 Sekunden überprüft. Diese Einstellung kann geändert werden, indem Sie die folgende Zeile ändern.
set daemon 30
Benachrichtigungen können konfiguriert werden durch.
set mailserver mx.itzgeek.local port 25
Alert-Vorlagen finden Sie in der Konfigurationsdatei selbst. Siehe Extras am Ende dieses Artikels.
Die Protokolleinstellungen können mithilfe der folgenden Datei geändert werden.
set log /var/log/monit
Monit-Weboberfläche aktivieren
Monit bietet auch eine Webschnittstelle zum Überwachen und Verwalten der konfigurierten Dienste. Standardmäßig lauscht monit auf Port 2812, aber es muss eingerichtet werden.
Bearbeiten Sie die Monit-Konfigurationsdatei.
vi /etc/monitrc
Suchen Sie nach httpd-Port 2812, ändern Sie die folgenden Einträge.
VON:
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 #}
AN:
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 #}
Von den obigen Einstellungen aus wird monit auf 2812 lauschen und der Admin-Benutzer kann von jedem Netzwerk aus auf die Webschnittstelle zugreifen.
Monitor neu laden.
systemctl restart monit
Monit beim Start automatisch starten.
systemctl enable monit
Konfigurieren Sie die Firewall, um den Zugriff auf die Monit-Weboberfläche zuzulassen, die auf Port 2812 ausgeführt wird.
firewall-cmd --permanent --add-port=2812/tcp firewall-cmd --reload
Greifen Sie auf die Monit-Weboberfläche zu
Öffnen Sie Ihren Webbrowser und rufen Sie die folgende URL auf.
http://Ihre.IP.Adresse.ess:2812ODER
http://ihr.fq.dn:2812Verwenden Sie den im vorherigen Schritt genannten Benutzernamen und das Passwort.

Die Monit-Startseite sieht wie folgt aus.

Dienste für die Überwachung mit Monit konfigurieren
Sobald die Webschnittstelle eingerichtet ist, können wir damit beginnen, die Dienste einzurichten, die wir überwachen möchten.
Sie können die Konfigurationsdateien für die Dienstüberwachung im Verzeichnis /etc/monit.d/ ablegen.
Für SSH-Dienst konfigurieren.
vi /etc/monit.d/sshdmonitor
Verwenden Sie die folgenden Informationen.
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
Dienst für Syslog konfigurieren.
vi /etc/monit.d/syslogmonitor
Verwenden Sie die folgenden Informationen.
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"
Konfigurationsdienst für HTTP.
vi /etc/monit.d/httpdmonitor
Verwenden Sie die folgenden Informationen.
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
Testen Sie nach der Konfiguration die Monit-Syntax
monit -t
Ausgabe:
Control file syntax OK
Laden Sie es neu, um die Änderungen zu übernehmen.
monit reload
Greifen Sie auf die Weboberfläche zu. Sie sollten die neuen Dienste sehen, die wir gerade konfiguriert haben.

Wenn Sie auf die Dienste klicken, erhalten Sie weitere Informationen zu den jeweiligen Diensten. Hier können Sie Aktionen wie das Starten, Beenden und Neustarten des Dienstes ausführen und auch die Überwachung deaktivieren.

Testüberwachung
Stoppen Sie jetzt den HTTP-Dienst für unsere Tests.
systemctl stop httpd
Warten Sie 30 Sekunden, Monit startet das Syslog automatisch. Sie finden es im Monit-Log.
cat /var/log/monit.log
Ausgabe:
[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
E-Mail-Benachrichtigung mit Monit
In Monit sind vordefinierte Benachrichtigungsvorlagen verfügbar, um Systemadministratoren zu benachrichtigen, wenn ein bestimmter Dienst ausfällt.
Bearbeiten Sie die Konfigurationsdatei.
vi /etc/monitrc
Sie können die unten stehende Benachrichtigungsvorlage gemäß Ihren Anforderungen aktualisieren.
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 }
Stellen Sie hier die Empfängeradresse ein. Hinweis:Sie erhalten Benachrichtigungen zu allen Arten von Aktionen
set alert root@localhost
Wenn Sie nicht bei einem vom Benutzer initiierten Dienstneustart benachrichtigt werden möchten, fügen Sie die folgende Konfiguration hinzu.
set alert root@localhost not on { instance, action }
Stellen Sie abschließend die Mailserver-Konfiguration so ein, dass Sie Mails empfangen können. Hier verwende ich das lokale Relay, damit wir Mail-Alerts über das Terminal lesen können, um die Tests zu überprüfen.
set mailserver localhost
Laden Sie den Dienst neu.
monit reload
Beispielwarnung
Der Monit hat E-Mails über den HTTP-Prozess an den Root-Benutzer gesendet.
cat /var/spool/mail/root
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
ODER
Verwenden Sie den E-Mail-Client Mutt (yum install -y mutt).


Schlussfolgerung
Das ist alles. Wir haben Monit erfolgreich auf CentOS 7 / RHEL 7 konfiguriert.