GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie Monit (Prozess- und Dienstüberwachung) unter Ubuntu / Debian

Monit - Prozess- und Dienstüberwachung für Linux

Dienste auf jedem Server müssen betriebsbereit sein und das tun, was sie tun sollen.

Eine automatisierte Überwachung ist notwendig, um die Betriebszeit und Verfügbarkeit von Systemdiensten auf einem Server sicherzustellen und zu maximieren.

Es ermöglicht Systemadministratoren, benachrichtigt zu werden und Probleme so schnell wie möglich mit minimaler Unterbrechung oder Ausfallzeit zu beheben.

In diesem Beitrag werden wir mit einem Tool namens Monit spielen, das Dienste und Prozesse auf einem Server überwachen und Warn-E-Mails versenden kann, wenn etwas fehlschlägt.

Das Tool selbst ist ziemlich leichtgewichtig und ermöglicht es Benutzern, "Tests" mit einer sehr einfachen Sprache im Skriptstil zu schreiben.

Monit installieren

Auf Debian- und Ubuntu-basierten Systemen ist Monit in den Standard-Repositories verfügbar. Installieren Sie mit apt-get

$ sudo apt-get install monit

Nach der Installation würde monit als Hintergrunddienst starten und kann mit dem folgenden Befehl verifiziert werden

# service monit status
 * monit is running

Monit konfigurieren

Als nächstes müssen Sie Monit konfigurieren, um bestimmte Dinge zu überwachen. Die Konfigurationsdatei für Monit befindet sich unter /etc/monit/monitrc auf Ubuntu- und Debian-basierten Systemen.

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

Beginnen Sie mit der Bearbeitung der Konfigurationsdatei, um die Dienste hinzuzufügen, die Sie überwachen möchten.

Monit hat auch eine Protokolldatei unter /var/log/monit.log, die wertvolle Informationen enthält, wenn Sie etwas reparieren müssen

Testen Sie nach der Konfiguration die neue Konfiguration, indem Sie den folgenden Befehl ausführen

# sudo monit -t

Laden Sie die neue Konfiguration neu, ohne Monit neu zu starten

# sudo monit reload

Aktivieren Sie die Weboberfläche

Die Webschnittstelle ermöglicht es Ihnen, Monit-Berichte vom Browser aus zu überprüfen. Dies ist nützlich beim Einrichten und Testen von monit. Später ist es besser, es zu deaktivieren, um die Dinge sicher zu halten.

Suchen Sie die Zeile „set httpd“ in der Konfigurationsdatei und kommentieren Sie sie aus. Wenn die Zeile nicht existiert, erstellen Sie einfach eine.

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

Greifen Sie nun auf http://localhost:2812/ zu und die Monit-Weboberfläche sollte sich öffnen.

E-Mail-Benachrichtigungen einrichten

Die ganze Idee hinter monit ist es, benachrichtigt zu werden, wenn etwas Unerwartetes passiert. Monit kann automatisch E-Mails versenden. Suchen Sie die Zeile „set alert“ und geben Sie die E-Mail an, an die die Berichte gesendet werden sollen. Geben Sie auch den zu verwendenden Mailserver an.

set alert [email protected]
set mailserver localhost

Stellen Sie sicher, dass auf localhost ein SMTP-Server (MTA) läuft und E-Mails ordnungsgemäß zugestellt werden können. Verwenden Sie den Befehl mail, um zu überprüfen, ob das System richtig konfiguriert ist, um E-Mails zu versenden.

Vermeiden Sie E-Mails, bei denen es sich nicht um Benachrichtigungen handelt - Monit versendet standardmäßig E-Mails für alles, was es tut oder passiert. Zum Beispiel wenn monit startet. Wir möchten jedoch nur die alarmspezifischen E-Mails. Ändern Sie die Konfiguration wie folgt

set alert [email protected] not on {instance}

Die obige Konfiguration sendet keine Instanzberichte per E-Mail, die beim Start/Stopp des Monitors generiert werden. Weitere Informationen finden Sie in der Monit-Dokumentation zu Ereignisfiltern für Warnungen.

So sieht eine Monit-Warnmail aus. Es wird ausgelöst, wenn ein Speicherplatztest auf dem Server ausgeführt wird und fehlschlägt.

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

Überwachen Sie Dienste wie Apache, Mysql, Postfix

Jetzt möchten Sie Ihren Webserver, Datenbankserver, Mailserver und andere Daemons überwachen, um sicherzustellen, dass die Dienste jederzeit einwandfrei laufen. Das ist einfach.

Fügen Sie einfach weitere Anweisungen in der Monit-Konfigurationsdatei hinzu, um jeden Dienst anzugeben, den Sie überwachen möchten, und Monit würde sofort damit beginnen.

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.

Hier sind einige Beispiele -

1. HTTP-Dienst - Port 80

Das folgende Beispiel weist Monit an, zu überprüfen, ob der HTTP-Server auf Port 80 dient oder nicht. Wenn nicht, würde es eine Warnung erzeugen

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

Wenn also ein Problem mit dem HTTP-Server (Apache oder Nginx) auftritt, wird eine Warnung generiert.
Ebenso können Sie Monitore für andere Ports wie FTP, SMTP, Imap usw. festlegen.

2. Website-Status überwachen

Nur die Überwachung von Port 80 reicht nicht aus, um sicherzustellen, dass die Website aktiv ist und funktioniert. Wir müssen sicherstellen, dass das Abrufen einer Seite einen HTTP-Antwortcode von 200 liefert. Hier ist die erforderliche Konfiguration

# 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

Wenn entweder "Port 80" oder "http-Server" oder "Status 200 für / url" fehlschlägt, wird eine Warnung generiert. Dies ist eine effektive Methode, um zu überprüfen, ob Ihre Website aktiv und für Benutzer verfügbar ist.

3. Apache-Webserver - Prozessüberwachung

Prozesse werden mithilfe bestimmter PID-Dateien überwacht. Beispielsweise hat der Apache-Webserver unter Debian eine PID unter /var/run/apache2/apache2.pid, die überprüft werden kann, um sicherzustellen, dass Apache läuft oder nicht.

# 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"

Das Obige weist Monit an, den Prozess von der angegebenen PID-Datei aus zu überwachen. Wenn monit hier drüben den laufenden Prozess nicht findet, würde es versuchen, ihn mit dem Befehl zu starten, der im Parameter "start program" angegeben ist. Standardmäßig generiert monit beim Neustart auch eine Benachrichtigung (E-Mail).

Nur überwachen

Wenn Sie nicht möchten, dass monit Apache neu startet und nur über das Ereignis informiert, verwenden Sie eine andere Art der Konfiguration

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

4. Überprüfen Sie MySQL auf Port 3306 - Portüberwachung

In diesem Beispiel überwachen wir die MySQL-Datenbank nicht mit der PID, sondern direkt, indem wir uns mit dem Dienstport 3306 verbinden.

Um nur die Portnummer mit Protokoll zu überprüfen, verwenden Sie die folgende Konfiguration -

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

Die folgende Konfiguration soll nach mysql-Prozessen suchen und neu starten, wenn sie nicht ausgeführt werden. Es würde auch nach Port 3306 suchen.

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. Postfix Mailserver und Ports überwachen

Lassen Sie uns nun eine Konfiguration zur Überwachung des Postfix-Mailservers einrichten. Die Konfiguration ist identisch mit den vorherigen, nur mit einer anderen PID-Datei und Portnummer

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

Verwenden Sie dieses -

, um den Prozess zu überwachen und bei einem Fehler neu zu starten
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. Wiederholt benachrichtigen

Standardmäßig generiert Monit nur zweimal eine Warnung. Einmal, wenn ein Test fehlschlägt, und das andere, wenn er erfolgreich ist.

Wenn Sie wiederholte Warnungen für denselben fehlgeschlagenen Test erhalten möchten (wenn er beispielsweise zu wichtig ist), verwenden Sie die folgende Konfiguration.

set alert [email protected] with reminder on 15 cycles

Die obige Konfiguration ist eine globale Einstellung, die alle Warnungen nach jeweils 15 Überprüfungen/Zyklen sendet.

Um Warnungen nur für bestimmte Tests zu wiederholen, geben Sie die Warnungsanweisung innerhalb der jeweiligen Testkriterien wie folgt an

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

Wenn Sie weniger oft, aber wiederholt erinnert werden möchten, verwenden Sie so etwas wie "Erinnerung bei 10 Zyklen".

Monit-Status prüfen

Dazu muss der monit http-Daemon laufen.

$ 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

Oder überprüfen Sie die Webschnittstelle unter http://localhost:2812/, um den Status für alles zu überprüfen

Schlussfolgerung

Die obigen Beispiele zeigen nur die sehr einfachen Beispiele für die Einrichtung von Überwachungsaufgaben mit Monit.

Monit ist in der Lage, viel komplexere Dinge zu tun, wie z. B. Netzwerkhosts zu pingen, externe Skripte auszuführen und die Ausgabe auf einen bestimmten Wert zu testen.

Überprüfen Sie die vollständige Dokumentation unter -
https://mmonit.com/monit/documentation/monit.html

Konfigurationsbeispiele von der Monit-Wiki-Seite enthält viele Beispiele zur Konfiguration von Monitoren für verschiedene Dienste -

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

Wenn Sie Feedback oder Fragen haben, lassen Sie es uns in den Kommentaren unten wissen.


Debian
  1. So installieren Sie Netflix in Kodi unter Ubuntu und Debian

  2. So installieren und konfigurieren Sie Webmin unter Debian / Ubuntu

  3. So installieren Sie Python 3.7 unter Ubuntu, Debian und LinuxMint

  4. So installieren Sie Suricata unter Debian 11

  5. So installieren und konfigurieren Sie Monit unter Linux für die Prozessüberwachung

So installieren Sie Cacti Monitoring unter Debian 9

So installieren Sie Cacti Monitoring unter Debian 10

So installieren Sie Mongoku auf Ubuntu 20.04 / Debian 11

Wie installiere ich ODBC unter Ubuntu 20.04 / Debian 11?

So installieren Sie Jitsi Meet unter Debian und Ubuntu

So installieren Sie Grafana auf Ubuntu 18.04 und Debian 8