So richten Sie NRPE für die Client -Seitenüberwachung ein

So richten Sie NRPE für die Client -Seitenüberwachung ein

NRPE- oder Nagios Remote -Plugin -Executor ist der Client -Seitendienst eines Überwachungs -Setups. Der Überwachungsserver sendet Befehle an den Client, wodurch passiv hört, wenn keine Arbeit zu erledigen ist. Nach eingehender Befehl die NRPE Überprüft die lokale Konfiguration und führt das mit dem Befehl konfigurierte Plugin aus, sendet dann die Ergebnisse zur Verarbeitung an den Server zurück. Sie können mehr über die Server -Seiteninstallation im Nagios -Installationshandbuch erfahren, während sich dieser Handbuch auf die Client -Seite konzentriert.

In diesem Tutorial lernen Sie:

  • So installieren Sie NRPE in Debian/Red Hat -basierter Verteilungen
  • So konfigurieren Sie NRPE, um Befehle vom Server zu akzeptieren
  • So konfigurieren Sie eine benutzerdefinierte Überprüfung auf der Server- und Client -Seite
NRPE - Nagios Remote Plugin Executor

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Ubuntu 18.04, Fedora 30
Software Nagios 4.3.4, NRPE 3.2.1
Andere Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Installation von NRPE in Debian/Red Hat -basierter Verteilungen

Die Installation der erforderlichen Software ist einfach. Wir werden Ubuntu, OpenSuse, Fedora und Rhel abdecken.

Installation von NRPE auf Ubuntu

Auf Ubuntu ist dieser Prozess ein Einzeiler. Das Paket des NRPE Dämones, genannt Nagios-nrpe-server, befindet sich in den Standard -Repositories.

# APT-Get Installieren Sie Nagios-nrpe-Server

Im Falle von Ubuntu ist die Hauptkonfigurationsdatei /etc/nagios/nrpe.CFG, Das standardmäßig enthaltene Verzeichnis ist /etc/nagios/nrpe.D/, Dies kann für die Drop-In-Konfiguration verwendet werden. Das Paket fügt auch eine leere lokale Konfigurationsdatei hinzu /etc/nagios/nrpe_local.CFG zur Bequemlichkeit. Dieser letzte ist nicht in enthalten Drehzahl basierte Verteilungen.



Installation von NRPE bei OpenSuSe

Bei den aktuellen OpenSuse -Versionen ist die NRPE -Software auch in den Standard -Repositories verpackt. Die Installation ist also ein einzelner Linux -Befehl.

# Zypper in NRPE

Im Gegensatz zu anderen Distributionen platziert OpenSuse die Hauptkonfigurationsdatei in den Pfad /etc/nrpe.CFG.

Installation von NRPE auf Fedora

Das Fedora -Projekt Pakete auch Pakete NRPE, und so sollte es aus den Standard -Repositorys erreichbar sein. Wir werden einfach benutzen DNF zum Installieren.

# DNF Installieren Sie NRPE

Die Hauptkonfigurationsdatei wird sein /etc/nagios/nrpe.CFG, und das Standardverzeichnis ist /etc/nrpe.D/.

Installieren von NRPE unter Red Hat Enterprise Linux

Im Falle von Rhel die NRPE Das Paket befindet sich nicht in den Standard -Repositories. Sie müssen das Epel -Repository aktivieren, um Pakete von dort zu installieren.

Sie können die im Handbuch beschriebenen Schritte ausführen, um das Epel -Repository zu aktivieren oder den Inhalt der Epel -Repositories zu importieren und zu veröffentlichen, wenn Sie eine geschlossene Umgebung mit interner Softwareverteilung haben. Nachdem dem Client -Computer das Repository zur Verfügung steht.

# yum nrpe installieren

Konfigurationsdateien befinden sich am selben Ort wie bei Fedora.

WARNUNG
Führen Sie immer sorgfältige Tests vor, bevor Sie ein neues Repository für eine Produktionsumgebung aktivieren. In diesem Fall kann EPEL Pakete enthalten, die als Updates für Red Hat -Pakete angesehen werden können, was zu unerwarteten Software -Änderungen am System führt, wenn ein vollständiges Update ausgeführt wird.

Konfigurieren von NRPE, um Befehle vom Server zu akzeptieren

Um den Client -Dienst zu konfigurieren, können wir die Hauptkonfigurationsdatei verwenden. Ich empfehle jedoch, eine benutzerdefinierte Datei zu verwenden und in ein Verzeichnis zu platzieren, das in der Hauptkonfigurationsdatei enthalten ist. Auf diese Weise stammen Updates, die aus einem Paket -Upgrade stammen NRPE.CFG kann ohne Änderungen an unserer benutzerdefinierten Konfiguration angewendet werden.

Wir können auch unsere eigenen benutzerdefinierten Konfigurationsdateien in unsere benutzerdefinierten Pakete einbeziehen, sodass die Konfiguration der Clientüberwachung auf zentralisierte und automatisierte Aktualisierung der Client -Überwachung ermöglicht wird. Beachten Sie dies, wir werden den Client in konfigurieren /etc/nrpe.D/Custom.CFG Bei allen Verteilungen in den folgenden Beispielen.

NRPE akzeptiert dann keine anderen Befehle Lokalhost standardmäßig. Dies stammt aus Sicherheitsgründen. Um die Befehlsausführung von einem Server zu ermöglichen, müssen wir die IP -Adresse des Servers als zulässige Adresse festlegen. In unserem Fall ist der Server ein Nagios -Server mit IP -Adresse 10.101.20.34. Wir fügen unsere Client -Konfiguration Folgendes hinzu:

erlaubt_hosts = 10.101.20.34


Mehrere Adressen oder Hostnamen können hinzugefügt werden, getrennt durch Kommas. Beachten Sie, dass die obige Logik eine statische Adresse für den Überwachungsserver erfordert. Verwendung DHCP Auf dem Überwachungsserver brechen Sie sicherlich Ihre Konfiguration, wenn Sie hier die IP -Adresse verwenden. Gleiches gilt für das Szenario, in dem Sie Hostnamen verwenden, und der Client kann den Hostnamen des Servers nicht beheben.

Konfigurieren einer benutzerdefinierten Überprüfung des Servers und der Clientseite

Um die Kapabiliten unseres Überwachungs -Setups zu demonstrieren, möchten wir wissen, ob das lokale Postfix -System eine E -Mail an einen Client für Benutzer anbietet Wurzel. Die Mail könnte a enthalten Cron-Job Ausgabe, einige Bericht oder etwas, das an die geschrieben wurde Stderr und wird standardmäßig als Mail geliefert. Zum Beispiel, ABRT sendet einen Absturzbericht an an Wurzel standardmäßig bei einem Prozessabsturz. Wir haben kein Mail -Staffel eingerichtet, aber wir möchten immer noch wissen, ob eine Mail ankommt. Schreiben wir eine benutzerdefinierte Überprüfung, um das zu überwachen.

  1. Unser erstes Puzzleteil ist der Scheck selbst. Betrachten Sie das folgende einfache Bash -Skript mit dem Namen check_unread_mail:
    #!/bin/bash user = root if ["$ (Befehl -v -Finger >>/dev/null; echo $?) "-Gt 0]; dann echo" unbekannt: Dienstprogrammfinger nicht gefunden "beenden 3 fi if [" $ (id "$ user" >> /dev /null; echo $?) "-Gt 0]; dann echo" unbekannt: Benutzer $ User existiert nicht "Beenden Sie 3 FI ## Überprüfen Post.")" -Gt 0]; dann echo "OK: Keine ungelesene E -Mail für Benutzer $ $ user" beenden 0 sonst echo "Warnung: Unread -Mail für Benutzer $ $" beenden 1 Fi
    Kopieren

    Dieser einfache Scheck verwendet die Finger Dienstprogramm für ungelesene E -Mails für den Benutzer prüfen Wurzel. Ausgabe der Finger -PM kann je nach Version und damit die Verteilung variieren, sodass einige Anpassungen erforderlich sein können.

    Zum Beispiel auf Fedora 30, letzte Zeile der Ausgabe von Finger -PM ist „keine Mail.”, Aber bei OpenSuse Sprung 15.1 Es wäre „keine Mail.”(Beachten Sie die obere Fallpost). In diesem Fall die grep -i Verwandt diesen Unterschied, aber es zeigt gut, dass bei der Arbeit mit unterschiedlichen Verteilungen und Versionen einige zusätzliche Arbeiten erforderlich sein können.

  2. Wir brauchen Finger Damit diesen Check funktioniert. Der Name des Pakets ist bei allen Verteilungen gleich, sodass wir ihn mit installieren können geeignet, Zypper, DNF oder Yum.
  3. Wir müssen die ausführbare Prüfung festlegen:
    # chmod +x check_unread_mail
  4. Wir geben den Scheck in die /usr/lib64/nagios/plugins Verzeichnis, der gemeinsame Ort für NRPE -Schecks. Wir werden es später verweisen.
  5. Wir werden unseren Befehl anrufen check_mail_root. Lassen Sie uns eine weitere Zeile in unsere benutzerdefinierte Client -Konfiguration geben, wo wir uns sagen NRPE Welche Befehle akzeptieren wir und was muss getan werden, wenn ein bestimmter Befehl eintrifft:
    Befehl [check_mail_root] =/usr/lib64/nagios/plugins/check_unread_mail
  6. Damit ist unsere Clientkonfiguration abgeschlossen. Wir können den Dienst auf dem Kunden mit starten systemd. Der Service Name ist Nagios-nrpe-server auf Debian Derivate und einfach NRPE auf andere Verteilungen.
    # SystemCTL Start Nagios-nrpe-server # systemctl Status Nagios-nrpe-server ● nagios-nrpe-server.Service-Nagios Remote Plugin Executor geladen: geladen (/lib/systemd/system/nagios-nrpe-server.Service; ermöglicht; Anbieter Voreinstellung: aktiviert) aktiv: aktiv (laufend) seit dem Di 2019-09-10 13:03:10 CEST; 1min 51s vor Dokumenten: http: // www.Nagios.org /dokumentation HauptpID: 3782 (NRPE) Aufgaben: 1 (Grenze: 3549) CGroup: /System.Slice/Nagios-nrpe-server.Service └─3782/usr/sbin/nrpe -c/etc/nagios/nrpe.CFG -f Szept 10 13:03:10 Mail-Test-Client-System [1]: Nagios Remote Plugin Executor gestartet. Szept 10 13:03:10 Mail-Test-Client NRPE [3782]: Dämon Szept 10 13:03:10 Mail-Test-Client NRPE [3782]: Serverhören an 0.0.0.0 Port 5666. Szept 10 13:03:10 Mail-Test-Client NRPE [3782]: Server hören auf :: port 5666. Szept 10 13:03:10 Mail-Test-Client NRPE [3782]: Hören Sie Verbindungen auf Port 5666 an


  7. Jetzt können wir die Serverseite konfigurieren. Wenn wir noch keinen haben, können wir einen Befehl definieren, der eine Fernbedienung aufruft NRPE Instanz mit einem Befehl, da es alleinige Argumentation ist:
    # In diesem Befehl wird ein Programm ausgeführt $ arg1 $ ohne Argumente Definieren Sie den Befehl command_name check_nrpe_1arg command_line $ user1 $/check_nrpe -h $ hostAddress $ -t 60 -c $ arg1 $ 2>/dev/null
    Kopieren
  8. Wir definieren auch den Kunden als Host:
    Definieren Sie Host verwenden Sie Linux-Server Host_name Mail-Test-Client Alias ​​Mail-Test-Client-Adresse Mail-Test-Client
    Kopieren

    Die Adresse kann eine IP -Adresse oder ein Hostname sein. Im späteren Fall müssen wir sicherstellen, dass es vom Überwachungsserver gelöst werden kann.

  9. Wir können einen Dienst auf dem obigen Host über den Befehl nagios seiten und den clientseitigen Befehl definieren:
    Service definieren verwenden!check_mail_root
    Kopieren

    Diese Anpassungen können an jede Konfigurationsdatei platziert werden, die der Nagios -Server beim Start liest. Es ist jedoch eine gute Praxis, Konfigurationsdateien übergreifend zu halten.

  10. Wir überprüfen unsere neue Nagios -Konfiguration:
    # Nagios -v/etc/nagios/nagios.CFG

    Wenn „Dinge in Ordnung aussehen“, können wir die Konfiguration mit einem Server -Reload anwenden:

    # Systemctl Reload Nagios neu laden

Abschluss

Wenn alles funktioniert, sollten wir in wenigen Minuten sehen, wie unser neuer Kunde auf der Nagios -Webseite angezeigt wird, mit seinem neuen Service „OS: Unread Mail for Root“ und mit dem Status als grünes „OK“ (dh, wenn es nicht ist ' t eine ungelesene Mail für Wurzel).

In den obigen Skripten wird nur Warnung angegeben, wenn eine neue Mail absichtlich eintrifft: In der Beispielumgebung wird sie nicht als kritisches Problem angesehen. Ein Anwendungsabsturz sollte einen kritischen Fehler generieren, bevor eine E -Mail darüber eintrifft. Im Hintergrund übergibt der Nagios -Server den Befehl „check_mail_root“ an den Client, wo NRPE Führt unser benutzerdefiniertes Skript aus, das die Ausgabe "OK: Keine ungelesenen E -Mails für das Benutzerroot" bereitstellt, und den Exit -Code 0 (der von Nagios als "OK" -Status übersetzt wird).

Dieses einfache Setup zielt darauf ab, den Fluss von Befehlen und Daten in einer Nagios+NRPE -Konfiguration anzuzeigen und die grundlegenden Mittel zur Erweiterung unserer Überwachungsfunktionen zu erläutern. Countles -Checks (Plugins genannt) werden in verschiedenen Sprachen für gemeinsame Verwendung geschrieben, z.

Viele von ihnen sind auch in den oben genannten Repositorys vorverpackt, und noch mehr finden Sie auf den offiziellen Nagios-Seiten. Dies ist zwar eine großartige Ressource, wenn wir etwas Neues überwachen müssen. Auch in diesem Fall sind in diesem Fall ihre Konfiguration und sorgfältige Tests erforderlich. Wenn Sie feststellen, dass eine kleine Änderung eine großartige Funktion/Bugfix hinzufügen kann, zögern Sie nicht, sie zur Überwachungsgemeinschaft zurückzugeben. So ist es schließlich, wie es überhaupt gebaut wird.

Verwandte Linux -Tutorials:

  • Verschachtelte Schleifen in Bash -Skripten
  • Linux -Leistungsoptimierung: Tools und Techniken
  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Ubuntu 20.04 Systemüberwachung mit Conky -Widgets
  • So senden Sie Desktop-Benachrichtigungen mit Benachrichtigungssend
  • Ubuntu 22.04 Systemüberwachung mit Conky -Widgets
  • Bestes Systemüberwachungstool für Linux
  • Hung Linux System? Wie man zur Befehlszeile entkommt und…
  • Linux: Setup SSH