Monit ist ein Open-Source-Prozessüberwachungstool für das Linux-Betriebssystem, mit dem Sie den Systemprozess überwachen können. Immer wenn der Dienst/Prozess ausfällt, führt er automatisch die Wartung und Reparatur des jeweiligen Prozesses durch und stellt sicher, dass er wieder online gebracht wird.
Monit kann auch zur Verwaltung und Überwachung von Programmen, Dateien, Verzeichnissen, Dateisystemen, TCP/IP-Netzwerkprüfungen, Protokollprüfungen verwendet werden 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 Einrichtung von Monit unter CentOS 8 / RHEL 8.
Monit installieren
Installieren Sie die erforderlichen Build-Tools, da Monit noch als RPM für CentOS 8 / RHEL 8 gepackt werden muss.
dnf install -y git gcc glibc make glibc-devel Kernel-Header autoconf automake libtool bison flex libzip-devel pam-devel openssl openssl-devel
Klonen Sie den Monit-Quellcode zum Kompilieren.
git-Klon https://bitbucket.org/tildeslash/monit.git
Kompilieren Sie den Monit mit einer Reihe von folgenden Befehlen.
cd monit./bootstrap./configuremakemake install
Monit konfigurieren
Funktionalität
Kopieren Sie die Datei „monitrc“ aus der heruntergeladenen Quelle in das Verzeichnis „/etc“.
cp monitrc /etc/
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. Dieses Intervall kann geändert werden, indem Sie die folgende Zeile ändern.
Dämon 30 setzen
Sie können einen E-Mail-Server einrichten, um Benachrichtigungen in Ihrem Posteingang zu erhalten.
Mailserver mx.itzgeek.local Port 25 setzenE-Mail-Benachrichtigungen können mithilfe von integrierten Vorlagen angepasst werden, die sich in der Konfigurationsdatei selbst befinden. Weitere Informationen finden Sie unter E-Mail-Benachrichtigungen mit Monit am Ende dieses Artikels.
Die Protokolleinstellungen können mithilfe der folgenden Datei geändert werden.
set log /var/log/monit.log
Stellen Sie sicher, dass Sie die folgende Zeile auskommentieren. Wir werden hier Dienstüberwachungsdateien ablegen.
inklusive /etc/monit.d/*
Webinterface
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 Konfigurationsdatei von Monit /etc/monitrc.
vi /etc/monitrc
Suchen Sie nach httpd-Port 2812, ändern Sie die folgenden Einträge.
VON:
set httpd port 2812 and use address localhost # nur Verbindung von localhost akzeptieren localhost erlauben # localhost sich mit dem Server verbinden und erlauben admin:monit # erfordert Benutzer 'admin' mit Passwort 'monit' #with ssl { # SSL aktivieren /TLS und Pfad zum Serverzertifikat # pemfile festlegen:/etc/ssl/certs/monit.pem #}
AN:
stellen Sie den httpd-Port 2812 ein und verwenden Sie die Adresse 0.0.0.0 # nur Verbindung von localhost akzeptieren (löschen, wenn Sie M/Monit verwenden) 0.0.0.0/0 zulassen # Erlaube localhost sich mit dem Server zu verbinden und erlaube admin:monit # Benutzer 'admin' mit Passwort 'monit' #with ssl { # SSL/TLS aktivieren und Pfad zum Serverzertifikat festlegen # pemfile:/etc/ssl/certs/monit.pem #}
Ausgehend von den obigen Einstellungen lauscht Monit auf allen Schnittstellen auf Port 2812. Der Admin-Benutzer kann von jedem Netzwerk aus auf die Webschnittstelle zugreifen.
Systemd-Setup
Wir werden jetzt eine systemd-Datei erstellen, um Monit beim Systemstart automatisch zu starten.
vi /lib/systemd/system/monit.service
Verwenden Sie die folgenden Einstellungen.
# Diese Datei ist eine systemd-Vorlage für den Monit-Dienst. Um # monit bei systemd zu registrieren, platzieren Sie die Datei monit.service # im Verzeichnis /lib/systemd/system/ und starten Sie sie # dann mit systemctl (siehe unten). # # Monit zum Starten beim Booten aktivieren:# systemctl enable monit.service # # Monit sofort starten:# systemctl start monit.service # # Monit stoppen:# systemctl stop monit.service # # Status:# systemctl status monit.service [Unit ] Description=Proaktives Überwachungsdienstprogramm für Unix-Systeme After=network.target Documentation=man:monit(1) https://mmonit.com/wiki/Monit/HowTo [Service] Type=simple KillMode=process ExecStart=/usr /local/bin/monit -I ExecStop=/usr/local/bin/monit quit ExecReload=/usr/local/bin/monit reload Restart =on-abnormal StandardOutput=null [Installieren] WantedBy=multi-user.targetLaden Sie den systemd-Daemon neu.
systemctl daemon-reloadStarten Sie den Monit-Dienst.
systemctl start monitMonit beim Start automatisch starten.
systemctl enable monitFirewall
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/tcpfirewall-cmd --reloadGreifen 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 folgendermaßen aus:
Dienste für die Überwachung mit Monit konfigurieren
Sobald die Webschnittstelle eingerichtet ist, können wir damit beginnen, andere Dienste einzurichten, die Sie überwachen möchten.
mkdir /etc/monit.d/Sie können die Konfigurationsdateien im Verzeichnis /etc/monit.d/ ablegen.
Dienst für Syslog konfigurieren.
vi /etc/monit.d/syslogmonitorVerwenden Sie die folgenden Informationen.
prüfen Sie den Prozess SysLog mit pidfile /var/run/rsyslogd.pidstart program ="/usr/bin/systemctl start rsyslog.service"stop program ="/usr/bin/systemctl stop rsyslog.service"Konfigurationsdienst für HTTP.
vi /etc/monit.d/httpdmonitorVerwenden Sie die folgenden Informationen.
Prozess HTTPD mit PID-Datei prüfen /var/run/httpd/httpd.pidstart program "/usr/bin/systemctl start httpd.service"stop program "/usr/bin/systemctl stop httpd.service", wenn Port 80-Protokoll fehlgeschlagen ist http dann neu startenTesten Sie nach der Konfiguration die Monit-Syntax
monit -tAusgabe:
Steuerdateisyntax OKLaden Sie Monit neu, um die Änderungen zu übernehmen.
Systemctl-Überwachung neu ladenGreifen Sie auf die Weboberfläche zu. Sie sollten die neuen Dienste sehen, die wir gerade konfiguriert haben.
Wenn Sie auf einen Dienst klicken, erhalten Sie weitere Informationen zu dem jeweiligen Dienst. Hier können Sie Aktionen wie das Starten, Beenden und Neustarten des Dienstes ausführen und auch die Überwachung deaktivieren.
Testen Sie die Überwachung
Stoppen Sie jetzt den HTTP-Dienst für unsere Tests.
systemctl stoppt httpdWarten Sie 30 Sekunden, Monit startet das Syslog automatisch. Sie finden es im Monit-Log.
cat /var/log/monit.logAusgabe:
[EST 27. Jan 20:37:03] Fehler:„HTTPD“-Prozess läuft nicht[EST 27. Jan 20:37:03] info:„HTTPD“ versucht neu zu starten[EST 27. Jan 20:37:03] info :'HTTPD' start:'/usr/bin/systemctl start httpd.service' [EST 27. Januar 20:37:38] info :'HTTPD'-Prozess läuft mit PID 25270E-Mail-Benachrichtigung mit Monit
In Monit sind vordefinierte Warnvorlagen verfügbar, um Systemadministratoren zu warnen, wenn der bestimmte Dienst ausfällt. Für diese Demo verwenden wir das lokale Relay (E-Mail-Server), um den Root-Benutzer zu benachrichtigen.
Bearbeiten Sie die Konfigurationsdatei.
vi /etc/monitrcSie können die unten stehende Benachrichtigungsvorlage gemäß Ihren Anforderungen aktualisieren.
set Mail-Format { von:MonitBetreff:Monit Alarm -- $EVENT $SERVICE Nachricht:$EVENT Service $SERVICE Datum:$DATE Aktion:$ACTION Host:$HOST Beschreibung:$DESCRIPTION Ihr treuer Mitarbeiter, Monit} Legen Sie hier die Empfängeradresse fest, um Benachrichtigungen zu allen Arten von Aktionen zu erhalten
Alarm root@localhost setzenStellen Sie die Empfängeradresse hier so ein, dass sie bei vom Benutzer initiierten Dienstneustarts nicht benachrichtigt wird.
set alert root@localhost not on { instance, action }Stellen Sie abschließend die Mailserver-Konfiguration so ein, dass Sie E-Mails empfangen können.
mailserver localhost setzenHier verwende ich das lokale Relay dnf install -y sendmail &&systemctl start sendmail, damit wir E-Mail-Warnungen über das Terminal lesen können, um den Warnmechanismus zu bestätigen.
Laden Sie den Dienst neu.
Systemctl-Überwachung neu ladenBenachrichtigung anzeigen
Der Monit hat E-Mails über den HTTP-Prozess an den Root-Benutzer gesendet.
cat /var/spool/mail/rootAusgabe:
An:[email protected]:monit alert -- Existiert nicht HTTPDDate:Di, 28 Jan 2020 01:44:05 GMTX-Mailer:Monit 5.27.0MIME-Version:1.0Content-Type:text/ schmucklos; charset=utf-8Content-Transfer-Encoding:8bitMessage-Id:<[email protected]>Does not exist Service HTTPD Date:Mo, 27 Jan 2020 20:44:05 Aktion:Neustart Host:centos8.itzgeek .local Beschreibung:Prozess läuft nicht Ihr treuer Mitarbeiter, Monit @ ITzGeekFrom [email protected] Mo Jan 27 20:44:47 2020Return-Path:Received:from centos8.itzgeek.local (localhost [127.0.0.1] ) von centos8.itzgeek.local (8.15.2/8.15.2) mit ESMTP-ID 00S1ilKL026285 für ; Mo, 27. Januar 2020 20:44:47 -0500Von:"Monit" An:[email protected]:monit alert -- Exists HTTPDDate:Di, 28. Jan 2020 01:44 :47 GMTX-Mailer:Monit 5.27.0MIME-Version:1.0Content-Type:text/plain; charset=utf-8Content-Transfer-Encoding:8bitMessage-Id:<[email protected]>Exists Service HTTPD Date:Mo, 27 Jan 2020 20:44:47 Action:alert Host:centos8.itzgeek.local Description :Prozess läuft mit PID 26069 Ihr treuer Mitarbeiter, Monit @ ITzGeek ODER
Verwenden Sie mutt dnf install -y mutt, einen E-Mail-Client, um Benachrichtigungen anzuzeigen.
Schlussfolgerung
Das ist alles. Wir haben Monit erfolgreich auf CentOS 8 / RHEL 8 konfiguriert.