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:

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:

Erstelle ein neues Verzeichnis namens nagios für die Quelldateien:

Wechsle in das gerade erstellte Verzeichnis:

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:

Entpacke das heruntergeladene Archiv:

$ tar -xvf nagios-4.5.9.tar.gz

Wechsle in das entpackte Verzeichnis mit dem Quellcode:

Starte das Konfigurationsskript, um dein System für den Build-Prozess vorzubereiten:

Kompiliere den Code mit folgendem Befehl:

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:

Installiere die Startskripte, um Nagios als Dienst verwalten zu können:

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:

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:

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:

Führe anschließend den Kompiliervorgang aus:

Installiere die fertig kompilierten Plugins auf dem System:

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:

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):

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:

Die Rückmeldung sollte den erfolgreichen Regel-Import bestätigen:

Rule added
Rule added (v6)

Lade die Firewall neu, damit alle Änderungen aktiv werden:

Die Ausgabe sollte lauten:

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:

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

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

VeraCrypt unter Ubuntu 24.04 installieren & nutzen

Security, Tutorial
VeraCrypt unter Ubuntu 24.04 installieren – Schritt-für-Schritt-Anleitung VeraCrypt ist eine kostenlose Open-Source-Verschlüsselungslösung, mit der sich vertrauliche Daten wie Dateien, Ordner und ganze Laufwerke absichern lassen. Um diese leistungsstarke Sicherheitssoftware optimal…