Nagios ist ein beliebtes Tool zur Überwachung der Systemgesundheit und Performance von Servern, Anwendungen und Netzwerkdiensten. Mithilfe von Plugins führt es regelmäßig Prüfungen durch – etwa für HTTP, SSH, Speicherplatz oder laufende Prozesse. Im Zentrum steht Nagios Core, das für die Ausführung dieser Prüfungen, das Verwalten der Konfiguration und das Auslösen von Benachrichtigungen verantwortlich ist. Wenn ein Dienst ausfällt oder ein Grenzwert überschritten wird, sendet Nagios Core automatisch eine Warnung.
Diese Anleitung zeigt dir, wie du Nagios auf einem Rocky Linux-Server installierst und anschließend so konfigurierst, dass auch entfernte Systeme überwacht werden können.
Voraussetzungen
Bevor du beginnst, stelle bitte sicher, dass Folgendes vorhanden ist:
- Ein Rocky Linux-Server, der als Nagios-Monitoring-Server dient. Verwende einen Benutzer mit sudo-Rechten (nicht root).
- Ein Ubuntu-basierter Server, der als zu überwachender Client fungiert.
Passende Infrastruktur bei centron
Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →
Nagios Core aus dem Quellcode installieren
Da Nagios nicht in den Standard-Repositories von Rocky Linux 9 verfügbar ist, musst du es manuell herunterladen und kompilieren. Die folgenden Schritte zeigen, wie du Nagios Core und die benötigten Plugins einrichtest.
Nagios Core kompilieren
Aktualisiere zuerst alle installierten Pakete auf deinem Server:
$ sudo dnf update -yInstalliere die nötigen Entwicklungstools und Bibliotheken, um Nagios erfolgreich zu kompilieren:
$ sudo dnf install gcc glibc glibc-common wget perl net-snmp openssl-devel make unzip gd gd-devel epel-release httpd php php-cli php-common php-gd -yDiese Pakete beinhalten Compiler, Bibliotheken und Tools, die für den Build-Prozess notwendig sind.
Wechsle in das Home-Verzeichnis des aktuellen Benutzers:
$ cd ~Erstelle ein neues Verzeichnis namens nagios für die Quelldateien:
$ mkdir nagiosWechsle in das gerade erstellte Verzeichnis:
$ cd nagiosLade den aktuellen Nagios Core Quellcode von der offiziellen Website herunter:
$ wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.5.9.tar.gzFalls das Paket tar noch nicht installiert ist, hole das jetzt nach:
$ sudo dnf install tar -yEntpacke das heruntergeladene Archiv:
$ tar -xvf nagios-4.5.9.tar.gzWechsle in das entpackte Verzeichnis mit dem Quellcode:
$ cd nagios-4.5.9Starte das Konfigurationsskript, um dein System für den Build-Prozess vorzubereiten:
$ ./configureKompiliere den Code mit folgendem Befehl:
$ make allErstelle anschließend eine dedizierte Benutzer- und Gruppenzuordnung für Nagios:
$ sudo make install-groups-usersDie Ausgabe sollte in etwa so aussehen:
groupadd -r nagios
useradd -g nagios nagiosZum Schluss füge den Apache-Benutzer zur Nagios-Gruppe hinzu, damit der Webserver Zugriff auf Nagios-Dateien hat:
$ sudo usermod -a -G nagios apacheNagios auf Rocky Linux 9 installieren und konfigurieren
Nagios Core besteht aus den Hauptprogrammen, Konfigurationsdateien und Diensten, die die Überwachungsfunktionen ermöglichen. Die folgenden Schritte zeigen, wie du Nagios auf einem Rocky Linux 9 System installierst und einrichtest.
Grundlegende Nagios-Dateien installieren
Beginne mit der Installation der Hauptkomponenten von Nagios:
$ sudo make installInstalliere die Startskripte, um Nagios als Dienst verwalten zu können:
$ sudo make install-initInstalliere die Komponente, die es ermöglicht, über das Webinterface externe Kommandos an Nagios zu senden:
$ sudo make install-commandmodeFüge die Standard-Konfigurationsdateien für Nagios hinzu:
$ sudo make install-configInstalliere die Apache-Konfiguration, um die Weboberfläche von Nagios nutzen zu können:
$ sudo make install-webconfÜberprüfe die Nagios-Konfiguration auf Fehler, bevor der Dienst gestartet wird:
$ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfgDie erwartete Ausgabe sollte keine Fehler oder Warnungen enthalten:
...
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight checkLege einen Benutzer centron-admin an, der sich am Nagios-Webinterface anmelden kann. Es wird ein Passwort abgefragt:
$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users centron-adminNach der Passworteingabe wird eine Bestätigung wie diese angezeigt:
Adding password for user centron-adminErlaube Apache den Zugriff auf die Passwortdatei, indem du den Besitz anpasst:
$ sudo chown apache:nagios /usr/local/nagios/etc/htpasswd.usersStarte Nagios nun zum ersten Mal:
$ sudo systemctl start nagiosDie Ausgabe sollte den erstellten Symlink anzeigen und bestätigen, dass Nagios läuft:
Created symlink /etc/systemd/system/multi-user.target.wants/nagios.service → /usr/lib/systemd/system/nagios.service.Aktiviere Nagios, damit es beim Systemstart automatisch mitgestartet wird:
$ sudo systemctl enable nagiosPrüfe den aktuellen Status des Nagios-Dienstes:
$ sudo systemctl status nagiosDie Ausgabe sollte bestätigen, dass Nagios aktiv ist:
● nagios.service - Nagios Core 4.5.9
Loaded: loaded (/usr/lib/systemd/system/nagios.service; enabled; preset: disabled)
Active: active (running) since Sun 2025-02-16 06:05:12 UTC; 14s ago
Docs: https://www.nagios.org/documentation
Main PID: 74321 (nagios)
Tasks: 6 (limit: 23116)
Memory: 5.9M
CPU: 321msFirewall- und Apache-Konfiguration
Erlaube HTTP-Verkehr über Port 80 in der Firewall:
$ sudo firewall-cmd --add-service=http --permanentDie erwartete Rückmeldung ist:
successLade die Firewall neu, um die Änderung zu übernehmen:
$ sudo firewall-cmd --reloadStelle sicher, dass Apache beim Systemstart automatisch ausgeführt wird:
$ sudo systemctl enable httpdStarte abschließend sowohl Nagios als auch Apache neu, um alle Änderungen zu übernehmen:
$ sudo systemctl restart nagios httpdNagios Plugins installieren
Plugins sind ein zentraler Bestandteil von Nagios. Sie ermöglichen die Überwachung von Hosts, Diensten und Systemressourcen. Jedes Plugin ist ein Skript oder ein ausführbares Programm, das eine bestimmte Prüfung durchführt und das Ergebnis an den Nagios-Core zurückmeldet. Im Folgenden erfährst du, wie du die Plugins auf deinem System installierst.
Wechsle zunächst in das zuvor angelegte Nagios-Verzeichnis:
$ cd ~/nagios/Lade dann die aktuelle Version der Nagios Plugins von der offiziellen Website herunter:
$ wget https://nagios-plugins.org/download/nagios-plugins-2.4.11.tar.gzEntpacke das heruntergeladene Archiv mit folgendem Befehl:
$ tar -xvf nagios-plugins-2.4.11.tar.gzWechsle in das Verzeichnis mit dem entpackten Quellcode der Plugins:
$ cd nagios-plugins-2.4.11Starte das Konfigurationsskript, um die Plugins auf den Build vorzubereiten:
$ ./configureFühre anschließend den Kompiliervorgang aus:
$ makeInstalliere die fertig kompilierten Plugins auf dem System:
$ sudo make installStarte sowohl den Nagios-Dienst als auch den Apache-Webserver neu, damit die Änderungen aktiv werden:
$ sudo systemctl restart nagios httpdZugriff auf das Nagios-Webinterface
Um dich mit dem Nagios-Webinterface zu verbinden, öffne einen Browser und gib die öffentliche IP-Adresse deines Servers wie folgt ein:
http://<deine-server-ip>/nagiosErsetze <deine-server-ip> mit der tatsächlichen IP-Adresse deiner Rocky Linux Maschine.
Nach dem Laden der Seite gib den Benutzernamen centron-admin und das zuvor gesetzte Passwort ein. Du wirst daraufhin zum Nagios-Dashboard weitergeleitet.
Im linken Menü findest du den Punkt Tactical Overview, der eine Übersicht zu überwachten Hosts, Diensten, dem Gesamtzustand und aktuellen Warnungen bietet.
Unter Event Log findest du Protokolle zu früheren Warnmeldungen, Ausfällen und Wiederherstellungen.
Entfernte Hosts mit Nagios überwachen
Nagios kann verschiedene Netzwerkgeräte wie Server oder Router erfassen, indem sie als Hosts definiert werden. Um Systeme außerhalb des lokalen Servers zu überwachen, kommt NRPE (Nagios Remote Plugin Executor) zum Einsatz. Damit lassen sich Prüfungen auf entfernten Rechnern durchführen – selbst ohne direkten Zugriff.
Nagios Plugins auf einem entfernten System installieren
Vor der Überwachung eines entfernten Systems muss NRPE auf diesem installiert und konfiguriert werden. Es lauscht auf eingehende Anfragen vom Nagios-Server und führt bei Bedarf Prüfungen aus.
Aktualisiere zuerst die Paketliste des Systems:
$ sudo apt updateInstalliere NRPE sowie die notwendigen Nagios Plugins auf dem entfernten System:
$ sudo apt install -y nagios-nrpe-server nagios-plugins nagios-plugins-basic nagios-nrpe-pluginBearbeite anschließend die Konfigurationsdatei von NRPE:
$ sudo vi /etc/nagios/nrpe.cfgSuche die Zeile allowed_hosts und ergänze die IP-Adresse deines Nagios-Servers:
allowed_hosts=127.0.0.1,::1,<nagios-server-ip>Ersetze <nagios-server-ip> durch die reale IP deines Nagios-Servers.
Starte dann den NRPE-Dienst:
$ sudo systemctl start nagios-nrpe-serverAktiviere den Dienst dauerhaft für den Systemstart:
$ sudo systemctl enable nagios-nrpe-serverÜberprüfe den Status des Dienstes, um sicherzustellen, dass er läuft:
$ sudo systemctl status nagios-nrpe-serverFirewall und NRPE-Zugriff konfigurieren
Der NRPE-Dienst kommuniziert standardmäßig über Port 5666. Damit dein Nagios-Server Zugriff erhält, muss dieser Port auf dem entfernten System freigegeben werden.
Überprüfe zuerst den Status der Firewall (UFW):
$ sudo ufw statusFalls die Firewall deaktiviert ist, aktiviere sie und erlaube SSH-Verbindungen:
$ sudo ufw allow ssh && sudo ufw enableErlaube anschließend NRPE-Zugriffe über TCP-Port 5666:
$ sudo ufw allow 5666/tcpDie Rückmeldung sollte den erfolgreichen Regel-Import bestätigen:
Rule added
Rule added (v6)Lade die Firewall neu, damit alle Änderungen aktiv werden:
$ sudo ufw reloadDie Ausgabe sollte lauten:
Firewall reloadedNagios-Server für Remote-Überwachung einrichten
Damit dein Nagios-Server entfernte Systeme via NRPE überwachen kann, musst du das entsprechende Plugin installieren und eine passende Konfiguration vornehmen.
Installiere das NRPE-Plugin auf dem Nagios-Server:
$ sudo dnf install -y nagios-plugins-nrpeBearbeite nun die Datei mit den Befehlsdefinitionen:
$ sudo vi /usr/local/nagios/etc/objects/commands.cfgFüge folgenden Befehl zur Datei hinzu, damit der Nagios-Server über NRPE Prüfungen ausführen kann:
define command {
command_name check_nrpe
command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}Bedeutung der NRPE-Befehlsdefinition
Mit dieser Definition wird es Nagios ermöglicht, eine Verbindung zu einem entfernten NRPE-Agent herzustellen, bestimmte Prüfungen auszuführen und die Rückmeldungen auszuwerten.
- command_name: Der interne Name für den Befehl (
check_nrpe). - command_line: Der genaue Befehl, der vom Nagios-Server verwendet wird:
/usr/lib64/nagios/plugins/check_nrpestartet das Plugin.-H $HOSTADDRESS$verweist auf die IP des Zielsystems.-c $ARG1$definiert den spezifischen Plugin-Aufruf.
Öffne nun Port 5666 auf dem Nagios-Server, um die Kommunikation mit dem NRPE-Dienst zuzulassen:
$ sudo firewall-cmd --add-port=5666/tcp --permanentWenn alles erfolgreich ist, erhältst du folgende Rückmeldung:
successLade auch hier die Firewall neu, damit die Regel wirksam wird:
$ sudo firewall-cmd --reloadRemote-Host in Nagios konfigurieren
Erstelle eine neue Konfigurationsdatei, in der der entfernte Host definiert wird:
$ sudo vi /usr/local/nagios/etc/objects/hosts.cfgBeginne mit dem Eintrag eines Kontakts, der bei Problemen benachrichtigt wird:
define contact {
use generic-contact
contact_name centron-admin
alias Centron Admin
email centronadmin@example.com
}Erklärung der Felder:
- use generic-contact: Verwendet eine generische Vorlage mit Standardwerten.
- contact_name: Interner Name des Kontakts.
- alias: Anzeigename für die Weboberfläche.
- email: Empfängeradresse für Benachrichtigungen.
Definiere anschließend den zu überwachenden Host:
define host {
use linux-server
host_name centron-example
address <ip-adresse>
max_check_attempts 5
check_period 24x7
notification_interval 30
notification_period 24x7
}Erklärung der Host-Parameter:
- use linux-server: Verwendet die Standardwerte für Linux-Systeme.
- host_name: Ein eindeutiger Name für den Host.
- address: Die IP-Adresse des Systems (ersetze
<ip-adresse>durch die tatsächliche). - max_check_attempts: Wie oft ein Host geprüft wird, bevor er als „DOWN“ gilt.
- check_period: Wann die Überwachung erfolgt – hier rund um die Uhr.
- notification_interval: Wie oft Benachrichtigungen versendet werden, solange ein Problem besteht.
- notification_period: Zeitfenster für den Versand von Warnungen.
Dienste für die Überwachung definieren
Im Anschluss kannst du einzelne Dienste auf dem entfernten System überwachen lassen. Nachfolgend findest du Beispiele für SSH, Systemauslastung und Prozessanzahl.
SSH-Verbindung prüfen:
define service {
use generic-service
host_name centron-example
service_description SSH
check_command check_ssh
max_check_attempts 3
check_interval 2
retry_interval 1
}Systemlast über NRPE prüfen:
define service {
use generic-service
host_name centron-example
service_description System Load
check_command check_nrpe!check_load
max_check_attempts 5
check_interval 2
retry_interval 1
}Anzahl laufender Prozesse prüfen:
define service {
use generic-service
host_name centron-example
service_description Total Processes
check_command check_nrpe!check_total_procs
max_check_attempts 5
check_interval 2
retry_interval 1
}Konfiguration einbinden und überprüfen
Damit Nagios die neue Host-Konfiguration berücksichtigt, musst du die Datei hosts.cfg in der Hauptkonfigurationsdatei referenzieren:
$ sudo vi /usr/local/nagios/etc/nagios.cfgFüge folgende Zeile am Ende ein, um die neue Datei einzubinden:
# Definitions for monitoring remote host
cfg_file=/usr/local/nagios/etc/objects/hosts.cfgSpeichere und schließe die Datei. Prüfe anschließend die gesamte Konfiguration auf Fehler:
$ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfgDie Ausgabe sollte wie folgt aussehen, ohne Warnungen oder Fehler:
...
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight checkStarte Nagios neu, damit alle Änderungen übernommen werden:
$ sudo systemctl restart nagiosÜberwachung im Webinterface prüfen
Wechsle nun zurück zur Weboberfläche von Nagios. Im linken Menü klickst du auf Hosts. Dort sollte der neue entfernte Host centron-example mit dem Status UP erscheinen.
Klicke auf den Hostnamen, um auf die Seite Host State Information zu gelangen. Dort findest du alle wichtigen Statusinformationen zum gewählten System.
Unter View Status Detail For This Host siehst du die einzelnen Services. Dienste mit dem Status OK funktionieren einwandfrei.
Hinweis: Direkt nach der Konfiguration kann es sein, dass einige Einträge zunächst als PENDING erscheinen. Das ist normal. Nach dem nächsten Prüfintervall wird der Status aktualisiert.
Wenn du alle überwachten Dienste sehen möchtest, klick auf Services im Seitenmenü. Dort werden sowohl die lokalen Prüfungen (localhost) als auch die Checks des entfernten Hosts angezeigt.
Fazit
Du hast erfolgreich Nagios unter Rocky Linux eingerichtet, die benötigten Plugins installiert und ein entferntes System zur Überwachung eingebunden. Dank der flexiblen Konfiguration kannst du nun beliebig viele Hosts und Services hinzufügen.
Für eine umfassendere Infrastrukturüberwachung empfiehlt sich der Einsatz von NRPE auf weiteren entfernten Systemen – inklusive individuell angepasster Plugins. Weiterführende Infos findest du in der
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.