Tutorials  /  Linux Basics

Nagios auf Rocky Linux installieren und Remote-Überwachung einrichten

Ccentron Redaktion · März 2025 ·15 Min. Lesezeit ·Linux Basics, Tutorial

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.
VM

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:

Konsole
$ sudo dnf update -y

Installiere die nötigen Entwicklungstools und Bibliotheken, um Nagios erfolgreich zu kompilieren:

Konsole
$ 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:

Konsole
$ cd ~

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

Konsole
$ mkdir nagios

Wechsle in das gerade erstellte Verzeichnis:

Konsole
$ cd nagios

Lade den aktuellen Nagios Core Quellcode von der offiziellen Website herunter:

Konsole
$ 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:

Konsole
$ sudo dnf install tar -y

Entpacke das heruntergeladene Archiv:

Konsole
$ tar -xvf nagios-4.5.9.tar.gz

Wechsle in das entpackte Verzeichnis mit dem Quellcode:

Konsole
$ cd nagios-4.5.9

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

Konsole
$ ./configure

Kompiliere den Code mit folgendem Befehl:

Konsole
$ make all

Erstelle anschließend eine dedizierte Benutzer- und Gruppenzuordnung für Nagios:

Konsole
$ sudo make install-groups-users

Die Ausgabe sollte in etwa so aussehen:

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

Konsole
$ 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:

Konsole
$ sudo make install

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

Konsole
$ sudo make install-init

Installiere die Komponente, die es ermöglicht, über das Webinterface externe Kommandos an Nagios zu senden:

Konsole
$ sudo make install-commandmode

Füge die Standard-Konfigurationsdateien für Nagios hinzu:

Konsole
$ sudo make install-config

Installiere die Apache-Konfiguration, um die Weboberfläche von Nagios nutzen zu können:

Konsole
$ sudo make install-webconf

Überprüfe die Nagios-Konfiguration auf Fehler, bevor der Dienst gestartet wird:

Konsole
$ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Die erwartete Ausgabe sollte keine Fehler oder Warnungen enthalten:

Code
...
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:

Konsole
$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users centron-admin

Nach der Passworteingabe wird eine Bestätigung wie diese angezeigt:

Code
Adding password for user centron-admin

Erlaube Apache den Zugriff auf die Passwortdatei, indem du den Besitz anpasst:

Konsole
$ sudo chown apache:nagios /usr/local/nagios/etc/htpasswd.users

Starte Nagios nun zum ersten Mal:

Konsole
$ sudo systemctl start nagios

Die Ausgabe sollte den erstellten Symlink anzeigen und bestätigen, dass Nagios läuft:

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

Konsole
$ sudo systemctl enable nagios

Prüfe den aktuellen Status des Nagios-Dienstes:

Konsole
$ sudo systemctl status nagios

Die Ausgabe sollte bestätigen, dass Nagios aktiv ist:

YAML
● 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:

Konsole
$ sudo firewall-cmd --add-service=http --permanent

Die erwartete Rückmeldung ist:

Code
success

Lade die Firewall neu, um die Änderung zu übernehmen:

Konsole
$ sudo firewall-cmd --reload

Stelle sicher, dass Apache beim Systemstart automatisch ausgeführt wird:

Konsole
$ sudo systemctl enable httpd

Starte abschließend sowohl Nagios als auch Apache neu, um alle Änderungen zu übernehmen:

Konsole
$ 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:

Konsole
$ cd ~/nagios/

Lade dann die aktuelle Version der Nagios Plugins von der offiziellen Website herunter:

Konsole
$ wget https://nagios-plugins.org/download/nagios-plugins-2.4.11.tar.gz

Entpacke das heruntergeladene Archiv mit folgendem Befehl:

Konsole
$ tar -xvf nagios-plugins-2.4.11.tar.gz

Wechsle in das Verzeichnis mit dem entpackten Quellcode der Plugins:

Konsole
$ cd nagios-plugins-2.4.11

Starte das Konfigurationsskript, um die Plugins auf den Build vorzubereiten:

Konsole
$ ./configure

Führe anschließend den Kompiliervorgang aus:

Konsole
$ make

Installiere die fertig kompilierten Plugins auf dem System:

Konsole
$ sudo make install

Starte sowohl den Nagios-Dienst als auch den Apache-Webserver neu, damit die Änderungen aktiv werden:

Konsole
$ 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:

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

Konsole
$ sudo apt update

Installiere NRPE sowie die notwendigen Nagios Plugins auf dem entfernten System:

Konsole
$ sudo apt install -y nagios-nrpe-server nagios-plugins nagios-plugins-basic nagios-nrpe-plugin

Bearbeite anschließend die Konfigurationsdatei von NRPE:

Konsole
$ sudo vi /etc/nagios/nrpe.cfg

Suche die Zeile allowed_hosts und ergänze die IP-Adresse deines Nagios-Servers:

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

Konsole
$ sudo systemctl start nagios-nrpe-server

Aktiviere den Dienst dauerhaft für den Systemstart:

Konsole
$ sudo systemctl enable nagios-nrpe-server

Überprüfe den Status des Dienstes, um sicherzustellen, dass er läuft:

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

Konsole
$ sudo ufw status

Falls die Firewall deaktiviert ist, aktiviere sie und erlaube SSH-Verbindungen:

Konsole
$ sudo ufw allow ssh && sudo ufw enable

Erlaube anschließend NRPE-Zugriffe über TCP-Port 5666:

Konsole
$ sudo ufw allow 5666/tcp

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

Code
Rule added
Rule added (v6)

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

Konsole
$ sudo ufw reload

Die Ausgabe sollte lauten:

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

Konsole
$ sudo dnf install -y nagios-plugins-nrpe

Bearbeite nun die Datei mit den Befehlsdefinitionen:

Konsole
$ 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:

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

Konsole
$ sudo firewall-cmd --add-port=5666/tcp --permanent

Wenn alles erfolgreich ist, erhältst du folgende Rückmeldung:

Code
success

Lade auch hier die Firewall neu, damit die Regel wirksam wird:

Konsole
$ sudo firewall-cmd --reload

Remote-Host in Nagios konfigurieren

Erstelle eine neue Konfigurationsdatei, in der der entfernte Host definiert wird:

Konsole
$ sudo vi /usr/local/nagios/etc/objects/hosts.cfg

Beginne mit dem Eintrag eines Kontakts, der bei Problemen benachrichtigt wird:

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

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

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

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

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

Konsole
$ sudo vi /usr/local/nagios/etc/nagios.cfg

Füge folgende Zeile am Ende ein, um die neue Datei einzubinden:

Konsole
# 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:

Konsole
$ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Die Ausgabe sollte wie folgt aussehen, ohne Warnungen oder Fehler:

Code
...
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:

Konsole
$ 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

Jetzt 200 € Guthaben sichern

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.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Linux Basics
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren