Monit: Unterschied zwischen den Versionen
K Textersetzung - „==== Einzelnachweise ====↵<references />↵“ durch „“ |
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“ |
||
(32 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
''' | '''Monit''' - Kurzbeschreibung | ||
== Beschreibung == | == Beschreibung == | ||
'''Monit''' ist ein freies, [[Open-Source-Software|Open-Source]] [[Prozessüberwachung]]swerkzeug für [[Unix]] und [[Linux]]. Mit Monit kann der Systemstatus direkt über die [[Unix-Shell|Befehlszeile]] oder über den nativen HTTP(S)-[[Webserver]] eingesehen werden. Monit ist in der Lage, automatische Wartungs- und Reparaturarbeiten durchzuführen und in Fehlersituationen sinnvolle kausale Aktionen auszuführen. Monit wurde mit [[Ruby on Rails]] und dem [[Mongrel (Webserver)|Mongrel-Webserver]] populär, da ein Tool benötigt wurde, das die vielen identischen Mongrel-Prozesse verwalten konnte, die zur Unterstützung einer skalierbaren Ruby on Rails-Site ausgeführt werden mussten, und Monit war ziemlich einzigartig für die Bedürfnisse der Ruby on Rails-Community geeignet. Viele beliebte Rails-Websites haben Monit verwendet, darunter [[Twitter]]. | |||
Monit kann einen Prozess automatisch neu starten, wenn er abstirbt, oder Prozesseigenschaften wie Speicher oder CPU-Zyklen überwachen und per E-Mail alarmieren. Zusätzlich kann M/Monit verteilte Computersysteme überwachen und verwalten. M/Monit verwendet Monit als Agent und kann diese verwalten und überwachen. M/Monit ist eine lizenzierte Software. | |||
[https://mmonit.com/monit/ Monit] {en} ist ein rasch eingerichtetes, einfach zu bedienendes aber effektives Programm zur Überwachung von [:Serverdienste:Serverdiensten]. Es kann auch wichtige Basisdaten wie CPU-Nutzung, Festplattenbelegung und mehr einbeziehen. Falls ein Serverdienst ausfällt, kann er automatisch neu gestartet werden. Bei Problemen werden ein oder mehrere Empfänger per E-Mail informiert. Zusätzlich gibt es eine übersichtliche Status-Webseite. | [https://mmonit.com/monit/ Monit] {en} ist ein rasch eingerichtetes, einfach zu bedienendes aber effektives Programm zur Überwachung von [:Serverdienste:Serverdiensten]. Es kann auch wichtige Basisdaten wie CPU-Nutzung, Festplattenbelegung und mehr einbeziehen. Falls ein Serverdienst ausfällt, kann er automatisch neu gestartet werden. Bei Problemen werden ein oder mehrere Empfänger per E-Mail informiert. Zusätzlich gibt es eine übersichtliche Status-Webseite. | ||
Ursprünglich für einen einzelnen Server gedacht, gibt es mit [https://mmonit.com/ M/Monit] {en} auch eine kommerzielle Variante, die mehrere Server gleichzeitig (unter einer Oberfläche) überwachen kann. | Ursprünglich für einen einzelnen Server gedacht, gibt es mit [https://mmonit.com/ M/Monit] {en} auch eine kommerzielle Variante, die mehrere Server gleichzeitig (unter einer Oberfläche) überwachen kann. | ||
Werkzeug zum Anzeigen und Verwalten von Daemons oder ähnlichen Programmen | |||
monit ist ein Werkzeug, das Daemons oder andere Programme, die auf einem | |||
UNIX-System laufen, überwacht und verwaltet. Es startet spezifizierte | |||
Programme oder startet Sie erneut, wenn sie inaktiv sind. | |||
; monit unterstützt | |||
monit, | * Daemon-Modus - fragt Programme in festgelegten Intervallen ab | ||
* Anzeigemodi - aktiv, passiv oder manuell | |||
* Starten, Stoppen und Neustarten von Programmen | |||
* Gruppieren und Verwalten von Programmgruppen | |||
* Festlegung von Prozessabhängigkeiten | |||
* Protokollieren nach syslog oder in eine eigene Protokolldatei | |||
* Konfiguration - umfassende Steuerdatei | |||
* Laufzeit- und TCP/IP-Port-Überprüfung (tcp und udp) | |||
* SSL-Unterstützung zur Port-Überprüfung | |||
* Überprüfung von UNIX Domain Sockets | |||
* Prozessstatus und Prozess-Timeout | |||
* CPU-Nutzung je Prozess | |||
* Speichernutzung je Prozess | |||
* Prüfung auf Zombie-Status | |||
* Überprüfung der durchschnittlichen Systemlast | |||
* Überprüfung der Zeitmarke einer Datei oder eines Verzeichnisses | |||
* Benachrichtigen, Stoppen oder Neustarten eines Prozesses abhängig von seinen Eigenschaften | |||
* MD5-Prüfsummen für Programme, die von monit gestartet oder gestoppt werden | |||
* Benachrichtigung für Programm-Timeout, -Neustart, -Prüfsumme, -Stopp, -Ressourcen- und -Zeitmarkenfehler | |||
* Flexible und einstellbare E-Mail-Benachrichtigungen | |||
* Protokollüberprüfung. HTTP, FTP, SMTP, POP, IMAP, NNTP, SSH, DWP, LDAPv2 und LDAPv3 | |||
* Eine HTTP-Schnittstelle, mit optionaler SSL-Unterstützung, um mittels eines Webbrowsers auf monit zuzugreifen. | |||
== | == Installation == | ||
== Anwendungen == | |||
=== E-Mail Benachrichtigungen === | |||
=== | |||
Bild(Wiki/Icons/email.png, 48, align=right)]] | |||
Mit folgender Grundeinstellung wird die E-Mail-Benachrichtigung aktiviert: | Mit folgender Grundeinstellung wird die E-Mail-Benachrichtigung aktiviert: | ||
{{{ | {{{ | ||
set alert EMPFÄNGER-E-MAIL@ADRESSE | set alert EMPFÄNGER-E-MAIL@ADRESSE | ||
}}} | }}} | ||
=== Externen SMTP-Dienst nutzen === | ==== Externen SMTP-Dienst nutzen ==== | ||
Es ist nicht notwendig, dass ein [:Mailserver-Einführung:Mailserver] auf dem System, auf dem Monit läuft, eingerichtet ist. Dies würde womöglich ohnehin problematisch sein, da fast alle E-Mail-Provider die Annahme von Nachrichten nicht vertrauenswürdiger Absender blockieren um Spam-Mails abzuwehren. | Es ist nicht notwendig, dass ein [:Mailserver-Einführung:Mailserver] auf dem System, auf dem Monit läuft, eingerichtet ist. Dies würde womöglich ohnehin problematisch sein, da fast alle E-Mail-Provider die Annahme von Nachrichten nicht vertrauenswürdiger Absender blockieren um Spam-Mails abzuwehren. | ||
Zeile 158: | Zeile 62: | ||
set alert EMPFÄNGER-MAIL@ADRESSE | set alert EMPFÄNGER-MAIL@ADRESSE | ||
set mailserver | set mailserver | ||
HOSTNAME | |||
port PORTANGABE | |||
username E-MAIL-KONTO-BENUTZERNAME | |||
password "E-MAIL-PASSWORT" | |||
using SSL | |||
}}} | }}} | ||
Es ist jetzt noch notwendig, die Absender-E-Mail-Adresse zu spezifizieren. Diese sollte exakt der E-Mail-Adresse des SMTP-Dienstes entsprechen, denn ansonsten wird der SMTP-Dienst den Versand höchstwahrscheinlich verweigern. | Es ist jetzt noch notwendig, die Absender-E-Mail-Adresse zu spezifizieren. Diese sollte exakt der E-Mail-Adresse des SMTP-Dienstes entsprechen, denn ansonsten wird der SMTP-Dienst den Versand höchstwahrscheinlich verweigern. | ||
Zeile 170: | Zeile 73: | ||
Dazu diesen Eintrag vornehmen: | Dazu diesen Eintrag vornehmen: | ||
{{{ | {{{ | ||
set mail-format { | set mail-format { from: ABSENDER-MAIL@ADRESSE} | ||
}}} | }}} | ||
Zeile 180: | Zeile 83: | ||
set alert EMPFÄNGER-MAIL@ADRESSE | set alert EMPFÄNGER-MAIL@ADRESSE | ||
set mailserver | set mailserver | ||
smtp.web.de | |||
port 587 | |||
username MEINE-ABSENDER-MAILADRESSE@web.de | |||
password "MEIN-E-MAIL-PASSWORT" | |||
using SSL | |||
set mail-format { | set mail-format { from: MEINE-ABSENDER-MAILADRESSE@web.de} | ||
}}} | }}} | ||
Damit Monit die E-Mail-Benachrichtigung auch umsetzt, Monit [#Pruefen-und-laden neu laden]. | Damit Monit die E-Mail-Benachrichtigung auch umsetzt, Monit [#Pruefen-und-laden neu laden]. | ||
=== E-Mail-Benachrichtigungen testen === | ==== E-Mail-Benachrichtigungen testen ==== | ||
Durch das [#Pruefen-und-laden Neuladen] von Monit selbst kann man den E-Mail-Versand - ohne andere wichtige Dienste wie Apache testweise neu starten zu müssen - überprüfen. Kurz nach dem Neustart sollten mehrere E-Mails eingehen. Falls nicht, gibt das [#Debugging-Informationen-erlangen Logfile] womöglich Informationen über [#E-Mail-Versand-funktioniert-nicht Fehler]. | Durch das [#Pruefen-und-laden Neuladen] von Monit selbst kann man den E-Mail-Versand - ohne andere wichtige Dienste wie Apache testweise neu starten zu müssen - überprüfen. Kurz nach dem Neustart sollten mehrere E-Mails eingehen. Falls nicht, gibt das [#Debugging-Informationen-erlangen Logfile] womöglich Informationen über [#E-Mail-Versand-funktioniert-nicht Fehler]. | ||
== Status-Webseite == | === Status-Webseite === | ||
Bild(Wiki/Icons/network_local.png , 48, align=right)]] | |||
Besonders praktisch ist neben der Benachrichtigung per E-Mail, die Möglichkeit, eine HTML-Status-Webseite über einen integrierten Webserver in einem beliebigen Internetbrowser abzurufen. Dieser ist standardmäßig nicht aktiviert. Hierzu im Verzeichnis '''/etc/monit/conf.d/''' wieder eine Datei anlegen, zum Beispiel namens '''httpd''': | Besonders praktisch ist neben der Benachrichtigung per E-Mail, die Möglichkeit, eine HTML-Status-Webseite über einen integrierten Webserver in einem beliebigen Internetbrowser abzurufen. Dieser ist standardmäßig nicht aktiviert. Hierzu im Verzeichnis '''/etc/monit/conf.d/''' wieder eine Datei anlegen, zum Beispiel namens '''httpd''': | ||
Zeile 208: | Zeile 111: | ||
set httpd | set httpd | ||
port 2812 | |||
use address localhost #Den Zugriff nur für localhost erlauben | |||
allow BENUTZERNANE:SICHERES_PASSWORT #Erlaubt den Zugriff nur mit dieser Authentifizierung | |||
}}} | }}} | ||
Bild(./Monit-Screenshot-Server.png, 300, align=right)]] | |||
Mit dieser Einstellung ist nun - sofern Monit zuvor [#Pruefen-und-laden neu geladen] wurde - die Statusseite über `http://localhost:2812` erreichbar, wenn diese Adresse mit dem selben Rechner aufgerufen wird, auf dem Monit läuft. | Mit dieser Einstellung ist nun - sofern Monit zuvor [#Pruefen-und-laden neu geladen] wurde - die Statusseite über `http://localhost:2812` erreichbar, wenn diese Adresse mit dem selben Rechner aufgerufen wird, auf dem Monit läuft. | ||
{{{#!vorlage Warnung | {{{#!vorlage Warnung | ||
Das Entfernen der Einstellung `use address localhost`, ohne dass der Zugriff auf andere Weise eingeschränkt wird, stellt ein erhebliches Sicherheitsrisiko dar, da Monit und folglich auch das gesamte System sowie das lokale Netzwerk über den Port `2812` möglicherweise für Angreifer aus dem Internet zugänglich sind! | Das Entfernen der Einstellung `use address localhost`, ohne dass der Zugriff auf andere Weise eingeschränkt wird, stellt ein erhebliches Sicherheitsrisiko dar, da Monit und folglich auch das gesamte System sowie das lokale Netzwerk über den Port `2812` möglicherweise für Angreifer aus dem Internet zugänglich sind! | ||
}}} | }}} | ||
Man kann den Zugang für andere Rechner außer localhost freigeben, aber gleichzeitig strikt auf bestimmte IP-Adressen beschränken. Dazu den Eintrag `use address localhost` in der Datei '''/etc/monit/conf.d/httpd''' entfernen __und__ eine [wikipedia:Weiße Liste:Whitelist] mit den zulässigen IP-Adressen anlegen. Ein Beispielkonfiguration sähe dann wie folgt aus: | Man kann den Zugang für andere Rechner außer localhost freigeben, aber gleichzeitig strikt auf bestimmte IP-Adressen beschränken. Dazu den Eintrag `use address localhost` in der Datei '''/etc/monit/conf.d/httpd''' entfernen __und__ eine [wikipedia:Weiße Liste:Whitelist] mit den zulässigen IP-Adressen anlegen. Ein Beispielkonfiguration sähe dann wie folgt aus: | ||
Zeile 224: | Zeile 126: | ||
set httpd | set httpd | ||
port 2812 | |||
allow localhost | |||
allow 192.168.178.53 #Mehrere IP sind möglich: | |||
allow 192.168.178.54 | |||
allow BENUTZERNAME:SICHERES_PASSWORT #Mehrere Benutzer sind möglich: | |||
allow BENUTZERNAME_1:SICHERES_PASSWORT_1 | |||
}}} | }}} | ||
Zeile 239: | Zeile 141: | ||
+++ | +++ | ||
`with SSL { KONFIGURATION}` | `with SSL { KONFIGURATION}` | ||
Zugang per [:TLS-Zertifikate:TLS] verschlüsseln. Unerlässlich, wenn | Zugang per [:TLS-Zertifikate:TLS] verschlüsseln. Unerlässlich, wenn das Interface über das Internet erreichbar sein soll. [https://mmonit.com/wiki/Monit/EnableSSLInMonit Anleitung] {en} | ||
+++ | +++ | ||
`signature disable` | `signature disable` | ||
Zeile 251: | Zeile 153: | ||
}}} | }}} | ||
=== Problembehebung === | |||
Bild(Wiki/Icons/hint.png , 48, align=right)]] | |||
==== Debugging Informationen erlangen ==== | |||
= | |||
=== Debugging Informationen erlangen === | |||
Gibt es Probleme mit Monit, so gibt die Monit-[:Logdateien:Logdatei] womöglich Aufschluss über die Ursachen. Dazu die Datei '''/var/log/monit.log''', zum Beispiel mit dem Konsolen-Tool [:lnav:], öffnen. | Gibt es Probleme mit Monit, so gibt die Monit-[:Logdateien:Logdatei] womöglich Aufschluss über die Ursachen. Dazu die Datei '''/var/log/monit.log''', zum Beispiel mit dem Konsolen-Tool [:lnav:], öffnen. | ||
=== E-Mail Versand funktioniert nicht=== | ==== E-Mail Versand funktioniert nicht==== | ||
Ein Logeintrag, der in etwa so aussieht: | Ein Logeintrag, der in etwa so aussieht: | ||
{{{ | {{{ | ||
Zeile 266: | Zeile 166: | ||
muss nicht zwingend tatsächlich ein TLS-Fehler sein. Meist liegt hier nur ein Tippfehler im Eintrag `username` oder `password` bei den [#Externen-SMTP-Dienst-nutzen SMTP-Einstellungen] vor. | muss nicht zwingend tatsächlich ein TLS-Fehler sein. Meist liegt hier nur ein Tippfehler im Eintrag `username` oder `password` bei den [#Externen-SMTP-Dienst-nutzen SMTP-Einstellungen] vor. | ||
== | == Aufruf == | ||
=== | === Optionen === | ||
=== Parameter === | |||
=== Umgebung === | |||
=== Rückgabewert === | |||
Bild(Wiki/Icons/advancedsettings.png, 48, align=right) | |||
Das Programm wird mittels der Datei '''/etc/monit/monitrc''' konfiguriert. Dort gibt es zahlreiche teils auskommentierte Beispieleinstellungen, die selbsterklärend sind oder deren Kommentare Hilfetexte enthalten. Es wird empfohlen, eigene Einstellungen nicht direkt in dieser Datei vorzunehmen. Besser ist es, im Verzeichnis '''/etc/monit/conf.d/''' eine oder mehrere Dateien mit den Wunscheinstellungen zu erstellen. | |||
=== Prüfen und laden === | |||
Mit folgendem Befehl [3] werden die Konfigurationsdateien auf Fehler überprüft: | |||
# monit -t | |||
Sind keine Fehler enthalten, erhält man folgende Rückmeldung: | |||
{{{Control file syntax OK}}} | |||
Damit die neuen Einstellungen greifen, muss Monit diese neu laden, was wie folgt ausgelöst werden kann: | |||
# monit reload | |||
Möglich ist dies natürlich auch mittels [:Dienste/#Starten-und-Beenden-von-Diensten:systemctl]: | |||
service monit reload | |||
=== Zu überwachende Dienste einrichten === | |||
Im Verzeichnis '''/etc/monit/conf-available/''' gibt es mehrere vorgefertigte Dateien für verschiedene, gebräuchliche Serverdienste, deren Voreinstellungen in der Regel so übernommen werden können. Damit Monit die Einstellungen für einen gewünschten Dienst übernimmt, muss im Verzeichnis '''/etc/monit/conf-enabled/''' ein [:ln/#Symbolische-Verknuepfungen:Softlink] zur zu aktivierenden Dienste-Datei erstellt werden, im Terminal [3] wie folgt: | |||
{{{#!vorlage Befehl | |||
sudo ln -s /etc/monit/conf-available/GEWÜNSCHTE-DATEI /etc/monit/conf-enabled/ | |||
}}} | |||
Zum Beispiel für [:Apache/]: | |||
{{{#!vorlage Befehl | |||
sudo ln -s /etc/monit/conf-available/apache2 /etc/monit/conf-enabled/ | |||
}}} | |||
Damit die Änderungen greifen, muss der Monit-Dämon [#Pruefen-und-laden neu geladen] werden. | |||
=== Bei Systemstart automatisch starten === | |||
Bei einer Standardinstallation wird Monit so eingerichtet, dass der Monit-Dämon automatisch bei jedem Systemstart gestartet wird. | |||
Sollte Monit beim Systemstart wider Erwarten nicht gestartet worden sein, so muss in der Datei '''/etc/default/monit''' der Eintrag | |||
{{{START=yes}}} | |||
vorgenommen werden. [2] | |||
Ob Monit gerade läuft, lässt sich so überprüfen: | |||
{{{#!vorlage Befehl | |||
sudo service monit status | |||
}}} | |||
Monit selbst wird wie jeder andere [:Dienste:Dienst] verwaltet. | |||
== Konfiguration == | |||
=== Dateien === | |||
== Sicherheit == | |||
<noinclude> | |||
== Anhang == | |||
=== Siehe auch === | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}}} | |||
---- | |||
* [:Netzwerk-Monitoring:] {Übersicht} Programmübersicht | * [:Netzwerk-Monitoring:] {Übersicht} Programmübersicht | ||
* [:Munin:] - ähnliche Funktionen, etwas komplizierter und mit aufwendigerer grafischen Web-Oberfläche, aber ohne integrierten Webserver | * [:Munin:] - ähnliche Funktionen, etwas komplizierter und mit aufwendigerer grafischen Web-Oberfläche, aber ohne integrierten Webserver | ||
=== | ==== Dokumentation ==== | ||
===== Man-Page ===== | |||
===== Info-Pages ===== | |||
==== Links ==== | |||
===== Projekt ===== | |||
# [https://mmonit.com/monit/ Projektseite] | # [https://mmonit.com/monit/ Projektseite] | ||
# [https://mmonit.com/monit/documentation/monit.html Dokumentation] | # [https://mmonit.com/monit/documentation/monit.html Dokumentation] | ||
# [https://mmonit.com/wiki/ Wiki] - FAQ, How-Tos und Konfigurationsbeispiele für verschiedene Dienste | # [https://mmonit.com/wiki/ Wiki] - FAQ, How-Tos und Konfigurationsbeispiele für verschiedene Dienste | ||
# [https://mmonit.com/documentation/http-api/ API Dokumentation für die HHTP-Dienste] | # [https://mmonit.com/documentation/http-api/ API Dokumentation für die HHTP-Dienste] | ||
===== Weblinks ===== | |||
# https://en.wikipedia.org/wiki/Monit | |||
# [https://bitbucket.org/tildeslash/monit Monit project page] at [[Bitbucket]] | |||
# [https://wiki.gentoo.org/wiki/Monit Gentoo wiki: Monit] | |||
# https://wiki.ubuntuusers.de/Monit/ | |||
# [https://www.slac.stanford.edu/xorg/nmtf/nmtf-tools.html Network Monitoring Tools] | # [https://www.slac.stanford.edu/xorg/nmtf/nmtf-tools.html Network Monitoring Tools] | ||
[[Kategorie:Linux/Monitoring]] | |||
</noinclude> |
Aktuelle Version vom 12. November 2024, 18:40 Uhr
Monit - Kurzbeschreibung
Beschreibung
Monit ist ein freies, Open-Source Prozessüberwachungswerkzeug für Unix und Linux. Mit Monit kann der Systemstatus direkt über die Befehlszeile oder über den nativen HTTP(S)-Webserver eingesehen werden. Monit ist in der Lage, automatische Wartungs- und Reparaturarbeiten durchzuführen und in Fehlersituationen sinnvolle kausale Aktionen auszuführen. Monit wurde mit Ruby on Rails und dem Mongrel-Webserver populär, da ein Tool benötigt wurde, das die vielen identischen Mongrel-Prozesse verwalten konnte, die zur Unterstützung einer skalierbaren Ruby on Rails-Site ausgeführt werden mussten, und Monit war ziemlich einzigartig für die Bedürfnisse der Ruby on Rails-Community geeignet. Viele beliebte Rails-Websites haben Monit verwendet, darunter Twitter.
Monit kann einen Prozess automatisch neu starten, wenn er abstirbt, oder Prozesseigenschaften wie Speicher oder CPU-Zyklen überwachen und per E-Mail alarmieren. Zusätzlich kann M/Monit verteilte Computersysteme überwachen und verwalten. M/Monit verwendet Monit als Agent und kann diese verwalten und überwachen. M/Monit ist eine lizenzierte Software.
Monit {en} ist ein rasch eingerichtetes, einfach zu bedienendes aber effektives Programm zur Überwachung von [:Serverdienste:Serverdiensten]. Es kann auch wichtige Basisdaten wie CPU-Nutzung, Festplattenbelegung und mehr einbeziehen. Falls ein Serverdienst ausfällt, kann er automatisch neu gestartet werden. Bei Problemen werden ein oder mehrere Empfänger per E-Mail informiert. Zusätzlich gibt es eine übersichtliche Status-Webseite.
Ursprünglich für einen einzelnen Server gedacht, gibt es mit M/Monit {en} auch eine kommerzielle Variante, die mehrere Server gleichzeitig (unter einer Oberfläche) überwachen kann.
Werkzeug zum Anzeigen und Verwalten von Daemons oder ähnlichen Programmen
monit ist ein Werkzeug, das Daemons oder andere Programme, die auf einem
UNIX-System laufen, überwacht und verwaltet. Es startet spezifizierte
Programme oder startet Sie erneut, wenn sie inaktiv sind.
- monit unterstützt
- Daemon-Modus - fragt Programme in festgelegten Intervallen ab
- Anzeigemodi - aktiv, passiv oder manuell
- Starten, Stoppen und Neustarten von Programmen
- Gruppieren und Verwalten von Programmgruppen
- Festlegung von Prozessabhängigkeiten
- Protokollieren nach syslog oder in eine eigene Protokolldatei
- Konfiguration - umfassende Steuerdatei
- Laufzeit- und TCP/IP-Port-Überprüfung (tcp und udp)
- SSL-Unterstützung zur Port-Überprüfung
- Überprüfung von UNIX Domain Sockets
- Prozessstatus und Prozess-Timeout
- CPU-Nutzung je Prozess
- Speichernutzung je Prozess
- Prüfung auf Zombie-Status
- Überprüfung der durchschnittlichen Systemlast
- Überprüfung der Zeitmarke einer Datei oder eines Verzeichnisses
- Benachrichtigen, Stoppen oder Neustarten eines Prozesses abhängig von seinen Eigenschaften
- MD5-Prüfsummen für Programme, die von monit gestartet oder gestoppt werden
- Benachrichtigung für Programm-Timeout, -Neustart, -Prüfsumme, -Stopp, -Ressourcen- und -Zeitmarkenfehler
- Flexible und einstellbare E-Mail-Benachrichtigungen
- Protokollüberprüfung. HTTP, FTP, SMTP, POP, IMAP, NNTP, SSH, DWP, LDAPv2 und LDAPv3
- Eine HTTP-Schnittstelle, mit optionaler SSL-Unterstützung, um mittels eines Webbrowsers auf monit zuzugreifen.
Installation
Anwendungen
E-Mail Benachrichtigungen
Bild(Wiki/Icons/email.png, 48, align=right)]]
Mit folgender Grundeinstellung wird die E-Mail-Benachrichtigung aktiviert: {{{ set alert EMPFÄNGER-E-MAIL@ADRESSE }}}
Externen SMTP-Dienst nutzen
Es ist nicht notwendig, dass ein [:Mailserver-Einführung:Mailserver] auf dem System, auf dem Monit läuft, eingerichtet ist. Dies würde womöglich ohnehin problematisch sein, da fast alle E-Mail-Provider die Annahme von Nachrichten nicht vertrauenswürdiger Absender blockieren um Spam-Mails abzuwehren.
Der Versand durch eine beliebiges E-Mail-Konto, das [wikipedia:SMTP:] unterstützt, ist denkbar einfach. Zunächst eine neue Konfigurationsdatei im Verzeichnis /etc/monit/conf.d/ anlegen, zum Beispiel alert: {{{#!vorlage Befehl sudo touch /etc/monit/conf.d/alert }}} In dieser Datei mit einem beliebigen Editor [2] folgende Einträge vornehmen: {{{
- Mail Benachrichtigungen
set alert EMPFÄNGER-MAIL@ADRESSE set mailserver
HOSTNAME port PORTANGABE username E-MAIL-KONTO-BENUTZERNAME password "E-MAIL-PASSWORT" using SSL
}}}
Es ist jetzt noch notwendig, die Absender-E-Mail-Adresse zu spezifizieren. Diese sollte exakt der E-Mail-Adresse des SMTP-Dienstes entsprechen, denn ansonsten wird der SMTP-Dienst den Versand höchstwahrscheinlich verweigern.
Dazu diesen Eintrag vornehmen: {{{ set mail-format { from: ABSENDER-MAIL@ADRESSE} }}}
Als Beispiel könnte die Konfiguration für eine E-Mail-Konto bei web.de folgendermaßen aussehen:
{{{
- Mail Benachrichtigungen
set alert EMPFÄNGER-MAIL@ADRESSE set mailserver
smtp.web.de port 587 username MEINE-ABSENDER-MAILADRESSE@web.de password "MEIN-E-MAIL-PASSWORT" using SSL
set mail-format { from: MEINE-ABSENDER-MAILADRESSE@web.de} }}}
Damit Monit die E-Mail-Benachrichtigung auch umsetzt, Monit [#Pruefen-und-laden neu laden].
E-Mail-Benachrichtigungen testen
Durch das [#Pruefen-und-laden Neuladen] von Monit selbst kann man den E-Mail-Versand - ohne andere wichtige Dienste wie Apache testweise neu starten zu müssen - überprüfen. Kurz nach dem Neustart sollten mehrere E-Mails eingehen. Falls nicht, gibt das [#Debugging-Informationen-erlangen Logfile] womöglich Informationen über [#E-Mail-Versand-funktioniert-nicht Fehler].
Status-Webseite
Bild(Wiki/Icons/network_local.png , 48, align=right)]]
Besonders praktisch ist neben der Benachrichtigung per E-Mail, die Möglichkeit, eine HTML-Status-Webseite über einen integrierten Webserver in einem beliebigen Internetbrowser abzurufen. Dieser ist standardmäßig nicht aktiviert. Hierzu im Verzeichnis /etc/monit/conf.d/ wieder eine Datei anlegen, zum Beispiel namens httpd:
{{{#!vorlage Befehl sudo touch /etc/monit/conf.d/httpd }}}
Diese Datei dann wie folgt editieren: [2] {{{
- HTTP interface
set httpd
port 2812 use address localhost #Den Zugriff nur für localhost erlauben allow BENUTZERNANE:SICHERES_PASSWORT #Erlaubt den Zugriff nur mit dieser Authentifizierung
}}}
Bild(./Monit-Screenshot-Server.png, 300, align=right)]]
Mit dieser Einstellung ist nun - sofern Monit zuvor [#Pruefen-und-laden neu geladen] wurde - die Statusseite über `http://localhost:2812` erreichbar, wenn diese Adresse mit dem selben Rechner aufgerufen wird, auf dem Monit läuft. {{{#!vorlage Warnung Das Entfernen der Einstellung `use address localhost`, ohne dass der Zugriff auf andere Weise eingeschränkt wird, stellt ein erhebliches Sicherheitsrisiko dar, da Monit und folglich auch das gesamte System sowie das lokale Netzwerk über den Port `2812` möglicherweise für Angreifer aus dem Internet zugänglich sind! }}}
Man kann den Zugang für andere Rechner außer localhost freigeben, aber gleichzeitig strikt auf bestimmte IP-Adressen beschränken. Dazu den Eintrag `use address localhost` in der Datei /etc/monit/conf.d/httpd entfernen __und__ eine [wikipedia:Weiße Liste:Whitelist] mit den zulässigen IP-Adressen anlegen. Ein Beispielkonfiguration sähe dann wie folgt aus: {{{
- HTTP interface
set httpd
port 2812 allow localhost allow 192.168.178.53 #Mehrere IP sind möglich: allow 192.168.178.54 allow BENUTZERNAME:SICHERES_PASSWORT #Mehrere Benutzer sind möglich: allow BENUTZERNAME_1:SICHERES_PASSWORT_1
}}}
md5] /PFAD/ZUR/PASSWORTDATEI [BENUTZERNAMEN]` Benutzer in einer externen Datei speichern. Optional: Verschlüsselung und auf bestimmte Benutzernamen beschränken. Syntax: Jeweils ein `BENUTZERNANE:SICHERES_PASSWORT` Eintrag pro Zeile.
Problembehebung
Bild(Wiki/Icons/hint.png , 48, align=right)]]
Debugging Informationen erlangen
Gibt es Probleme mit Monit, so gibt die Monit-[:Logdateien:Logdatei] womöglich Aufschluss über die Ursachen. Dazu die Datei /var/log/monit.log, zum Beispiel mit dem Konsolen-Tool [:lnav:], öffnen.
E-Mail Versand funktioniert nicht
Ein Logeintrag, der in etwa so aussieht: {{{ Mail: Mailserver Response error -- 530 Must issue a STARTTLS command first }}} muss nicht zwingend tatsächlich ein TLS-Fehler sein. Meist liegt hier nur ein Tippfehler im Eintrag `username` oder `password` bei den [#Externen-SMTP-Dienst-nutzen SMTP-Einstellungen] vor.
Aufruf
Optionen
Parameter
Umgebung
Rückgabewert
Bild(Wiki/Icons/advancedsettings.png, 48, align=right)
Das Programm wird mittels der Datei /etc/monit/monitrc konfiguriert. Dort gibt es zahlreiche teils auskommentierte Beispieleinstellungen, die selbsterklärend sind oder deren Kommentare Hilfetexte enthalten. Es wird empfohlen, eigene Einstellungen nicht direkt in dieser Datei vorzunehmen. Besser ist es, im Verzeichnis /etc/monit/conf.d/ eine oder mehrere Dateien mit den Wunscheinstellungen zu erstellen.
Prüfen und laden
Mit folgendem Befehl [3] werden die Konfigurationsdateien auf Fehler überprüft:
# monit -t
Sind keine Fehler enthalten, erhält man folgende Rückmeldung:
{{{Control file syntax OK}}}
Damit die neuen Einstellungen greifen, muss Monit diese neu laden, was wie folgt ausgelöst werden kann:
# monit reload
Möglich ist dies natürlich auch mittels [:Dienste/#Starten-und-Beenden-von-Diensten:systemctl]:
service monit reload
Zu überwachende Dienste einrichten
Im Verzeichnis /etc/monit/conf-available/ gibt es mehrere vorgefertigte Dateien für verschiedene, gebräuchliche Serverdienste, deren Voreinstellungen in der Regel so übernommen werden können. Damit Monit die Einstellungen für einen gewünschten Dienst übernimmt, muss im Verzeichnis /etc/monit/conf-enabled/ ein [:ln/#Symbolische-Verknuepfungen:Softlink] zur zu aktivierenden Dienste-Datei erstellt werden, im Terminal [3] wie folgt:
{{{#!vorlage Befehl sudo ln -s /etc/monit/conf-available/GEWÜNSCHTE-DATEI /etc/monit/conf-enabled/ }}} Zum Beispiel für [:Apache/]:
{{{#!vorlage Befehl sudo ln -s /etc/monit/conf-available/apache2 /etc/monit/conf-enabled/ }}} Damit die Änderungen greifen, muss der Monit-Dämon [#Pruefen-und-laden neu geladen] werden.
Bei Systemstart automatisch starten
Bei einer Standardinstallation wird Monit so eingerichtet, dass der Monit-Dämon automatisch bei jedem Systemstart gestartet wird.
Sollte Monit beim Systemstart wider Erwarten nicht gestartet worden sein, so muss in der Datei /etc/default/monit der Eintrag
{{{START=yes}}} vorgenommen werden. [2]
Ob Monit gerade läuft, lässt sich so überprüfen:
{{{#!vorlage Befehl sudo service monit status }}}
Monit selbst wird wie jeder andere [:Dienste:Dienst] verwaltet.
Konfiguration
Dateien
Sicherheit
Anhang
Siehe auch
- [:Netzwerk-Monitoring:] {Übersicht} Programmübersicht
- [:Munin:] - ähnliche Funktionen, etwas komplizierter und mit aufwendigerer grafischen Web-Oberfläche, aber ohne integrierten Webserver
Dokumentation
Man-Page
Info-Pages
Links
Projekt
- Projektseite
- Dokumentation
- Wiki - FAQ, How-Tos und Konfigurationsbeispiele für verschiedene Dienste
- API Dokumentation für die HHTP-Dienste