Schritt-für-Schritt-Anleitung zur Installation von Nagios auf Rocky Linux
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.
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 -y
Installiere 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 -y
Diese 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 nagios
Wechsle in das gerade erstellte Verzeichnis:
$ cd nagios
Lade den aktuellen Nagios Core Quellcode von der offiziellen Website herunter:
$ wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.5.9.tar.gz
Falls das Paket tar
noch nicht installiert ist, hole das jetzt nach:
$ sudo dnf install tar -y
Entpacke das heruntergeladene Archiv:
$ tar -xvf nagios-4.5.9.tar.gz
Wechsle in das entpackte Verzeichnis mit dem Quellcode:
$ cd nagios-4.5.9
Starte das Konfigurationsskript, um dein System für den Build-Prozess vorzubereiten:
$ ./configure
Kompiliere den Code mit folgendem Befehl:
$ make all
Erstelle anschließend eine dedizierte Benutzer- und Gruppenzuordnung für Nagios:
$ sudo make install-groups-users
Die Ausgabe sollte in etwa so aussehen:
groupadd -r nagios
useradd -g nagios nagios
Zum Schluss füge den Apache-Benutzer zur Nagios-Gruppe hinzu, damit der Webserver Zugriff auf Nagios-Dateien hat:
$ sudo usermod -a -G nagios apache
Nagios 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 install
Installiere die Startskripte, um Nagios als Dienst verwalten zu können:
$ sudo make install-init
Installiere die Komponente, die es ermöglicht, über das Webinterface externe Kommandos an Nagios zu senden:
$ sudo make install-commandmode
Füge die Standard-Konfigurationsdateien für Nagios hinzu:
$ sudo make install-config
Installiere 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.cfg
Die 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 check
Lege 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-admin
Nach der Passworteingabe wird eine Bestätigung wie diese angezeigt:
Adding password for user centron-admin
Erlaube Apache den Zugriff auf die Passwortdatei, indem du den Besitz anpasst:
$ sudo chown apache:nagios /usr/local/nagios/etc/htpasswd.users
Starte Nagios nun zum ersten Mal:
$ sudo systemctl start nagios
Die 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 nagios
Prüfe den aktuellen Status des Nagios-Dienstes:
$ sudo systemctl status nagios
Die 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: 321ms
Firewall- und Apache-Konfiguration
Erlaube HTTP-Verkehr über Port 80 in der Firewall:
$ sudo firewall-cmd --add-service=http --permanent
Die erwartete Rückmeldung ist:
success
Lade die Firewall neu, um die Änderung zu übernehmen:
$ sudo firewall-cmd --reload
Stelle sicher, dass Apache beim Systemstart automatisch ausgeführt wird:
$ sudo systemctl enable httpd
Starte abschließend sowohl Nagios als auch Apache neu, um alle Änderungen zu übernehmen:
$ sudo systemctl restart nagios httpd
Nagios 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.gz
Entpacke das heruntergeladene Archiv mit folgendem Befehl:
$ tar -xvf nagios-plugins-2.4.11.tar.gz
Wechsle in das Verzeichnis mit dem entpackten Quellcode der Plugins:
$ cd nagios-plugins-2.4.11
Starte das Konfigurationsskript, um die Plugins auf den Build vorzubereiten:
$ ./configure
Führe anschließend den Kompiliervorgang aus:
$ make
Installiere die fertig kompilierten Plugins auf dem System:
$ sudo make install
Starte sowohl den Nagios-Dienst als auch den Apache-Webserver neu, damit die Änderungen aktiv werden:
$ sudo systemctl restart nagios httpd
Zugriff 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>/nagios
Ersetze <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 update
Installiere NRPE sowie die notwendigen Nagios Plugins auf dem entfernten System:
$ sudo apt install -y nagios-nrpe-server nagios-plugins nagios-plugins-basic nagios-nrpe-plugin
Bearbeite anschließend die Konfigurationsdatei von NRPE:
$ sudo vi /etc/nagios/nrpe.cfg
Suche 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-server
Aktiviere 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-server
Firewall 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 status
Falls die Firewall deaktiviert ist, aktiviere sie und erlaube SSH-Verbindungen:
$ sudo ufw allow ssh && sudo ufw enable
Erlaube anschließend NRPE-Zugriffe über TCP-Port 5666:
$ sudo ufw allow 5666/tcp
Die 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 reload
Die Ausgabe sollte lauten:
Firewall reloaded
Nagios-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-nrpe
Bearbeite nun die Datei mit den Befehlsdefinitionen:
$ sudo vi /usr/local/nagios/etc/objects/commands.cfg
Fü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_nrpe
startet 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 --permanent
Wenn alles erfolgreich ist, erhältst du folgende Rückmeldung:
success
Lade auch hier die Firewall neu, damit die Regel wirksam wird:
$ sudo firewall-cmd --reload
Remote-Host in Nagios konfigurieren
Erstelle eine neue Konfigurationsdatei, in der der entfernte Host definiert wird:
$ sudo vi /usr/local/nagios/etc/objects/hosts.cfg
Beginne 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.cfg
Füge folgende Zeile am Ende ein, um die neue Datei einzubinden:
# Definitions for monitoring remote host
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
Speichere 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.cfg
Die 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 check
Starte 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