So richten Sie NRPE für die Client -Seitenüberwachung ein
- 2706
- 1
- Hr. Moritz Bozsik
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
Softwareanforderungen und Konventionen verwendet
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.
WARNUNGFü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.
- Unser erstes Puzzleteil ist der Scheck selbst. Betrachten Sie das folgende einfache Bash -Skript mit dem Namen
check_unread_mail
:
Kopieren#!/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
Dieser einfache Scheck verwendet die
Finger
Dienstprogramm für ungelesene E -Mails für den Benutzer prüfenWurzel
. Ausgabe derFinger -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 diegrep -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. - Wir brauchen
Finger
Damit diesen Check funktioniert. Der Name des Pakets ist bei allen Verteilungen gleich, sodass wir ihn mit installieren könnengeeignet
,Zypper
,DNF
oderYum
. - Wir müssen die ausführbare Prüfung festlegen:
# chmod +x check_unread_mail
- Wir geben den Scheck in die
/usr/lib64/nagios/plugins
Verzeichnis, der gemeinsame Ort für NRPE -Schecks. Wir werden es später verweisen. - Wir werden unseren Befehl anrufen
check_mail_root
. Lassen Sie uns eine weitere Zeile in unsere benutzerdefinierte Client -Konfiguration geben, wo wir uns sagenNRPE
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
- Damit ist unsere Clientkonfiguration abgeschlossen. Wir können den Dienst auf dem Kunden mit starten
systemd
. Der Service Name istNagios-nrpe-server
auf Debian Derivate und einfachNRPE
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
- 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:
Kopieren# 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
- Wir definieren auch den Kunden als Host:
KopierenDefinieren Sie Host verwenden Sie Linux-Server Host_name Mail-Test-Client Alias Mail-Test-Client-Adresse Mail-Test-Client
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.
- Wir können einen Dienst auf dem obigen Host über den Befehl nagios seiten und den clientseitigen Befehl definieren:
KopierenService definieren verwenden!check_mail_root
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.
- 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
- « Wiederherstellen Sie die Konsolensicherung von PFSense -Konfiguration mithilfe des USB -Laufwerks aus der Konsole
- So installieren Sie Java auf RHEL 8 / CentOS 8 Linux »