Nagios Installation · 20 min read · Nov 09, 2025

Wie man Nagios auf Rocky Linux 9 installiert und konfiguriert

Nagios ist eines der beliebtesten und leistungsstärksten Open-Source-Überwachungssysteme. Es überwacht Ihre IT-Infrastruktur und sorgt dafür, dass Ihre Netzwerke, Server, Anwendungen und Prozesse reibungslos funktionieren. Mit einem Überwachungssystem können Sie Probleme erkennen, bevor sie auftreten, und sie schnell beheben, um Kosten und Ausfallzeiten zu sparen.

Dieses Tutorial zeigt Ihnen, wie Sie Nagios auf einem Rocky Linux 9-Server installieren und konfigurieren. Wir werden auch einige grundlegende Konfigurationen vornehmen und den Nagios Remote Plugin Executor (NPRE) installieren, der es uns ermöglicht, entfernte Hosts zu überwachen.

Voraussetzungen

  1. Ein Server, der Rocky Linux 9 ausführt.
  2. Ein Nicht-Sudo-Benutzer mit Root-Rechten.
  3. SELinux ist deaktiviert. Für dieses Tutorial würde es auch funktionieren, wenn Sie SELinux aktiviert lassen, aber je nach den Nagios-Überwachungen, die Sie verwenden, müssen Sie entweder SELinux konfigurieren oder es besser deaktiviert lassen.
  4. Ein weiterer Server, der Rocky Linux 9 ausführt und den Sie überwachen möchten.
  5. Stellen Sie sicher, dass alles aktualisiert ist. $ sudo dnf update

Schritt 1 - Firewall konfigurieren

Der erste Schritt besteht darin, die Firewall zu konfigurieren. Der Rocky Linux-Server wird mit der Firewalld-Firewall geliefert.

Überprüfen Sie, ob die Firewall läuft.

$ sudo firewall-cmd --state

Sie sollten die folgende Ausgabe erhalten.

running

Überprüfen Sie die aktuellen erlaubten Dienste/Ports.

$ sudo firewall-cmd --permanent --list-services

Es sollte die folgende Ausgabe angezeigt werden.

dhcpv6-client mdns ssh

Erlauben Sie HTTP- und HTTPS-Ports.

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

Überprüfen Sie den Status der Firewall erneut.

$ sudo firewall-cmd --permanent --list-services

Sie sollten eine ähnliche Ausgabe sehen.

dhcpv6-client http https mdns ssh

Laden Sie die Firewall neu.

$ sudo firewall-cmd --reload

Schritt 2 - Apache und PHP installieren

Um Nagios auszuführen, benötigen Sie Apache zusammen mit installiertem PHP.

Installieren und aktivieren Sie den Apache-Dienst.

$ sudo dnf install httpd
$ sudo systemctl enable httpd

Um PHP zu installieren, verwenden wir das Remi-Repository. Installieren Sie das Remi-Repo und aktivieren Sie PHP 8.1.

$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.1 -y

Installieren Sie PHP und mehrere gängige PHP-Module.

$ sudo dnf install -y php php-gd php-curl

Überprüfen Sie die PHP-Installation.

$ php --version
PHP 8.1.16 (cli) (built: Feb 14 2023 18:59:41) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.16, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.16, Copyright (c), by Zend Technologies

Aktivieren Sie PHP und starten Sie den Dienst.

$ sudo systemctl enable --now php-fpm

Starten Sie den Apache-Dienst neu, damit die Änderungen wirksam werden.

$ sudo systemctl restart httpd

Sie können die Installation von Apache und PHP überprüfen, indem Sie eine Datei info.php im Verzeichnis /var/www/html erstellen, das vom Apache-Installer erstellt wurde.

$ sudo nano /var/www/html/info.php

Fügen Sie den folgenden Code in den Editor ein.

Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Öffnen Sie die URL http:///info.php in Ihrem Browser, und Sie sollten von der folgenden Seite begrüßt werden.

PHP-Info-Seite

Schritt 3 - Nagios installieren

Der größte Teil dieses Tutorials erfordert, dass Sie Nagios installieren und auf Ihrem Hauptserver arbeiten.

Abhängigkeiten installieren

Dieses Tutorial erfordert, dass Nagios und seine Plugins aus dem Quellcode erstellt werden. Daher müssen Sie zuerst einige Entwicklungsbibliotheken installieren. Wir benötigen auch das EPEL-Repository, aber es wurde im vorherigen Schritt automatisch mit dem Remi-Repo installiert, sodass wir es hier überspringen können.

$ sudo dnf install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel unzip wget gettext autoconf net-snmp-utils postfix automake perl-Net-SNMP

Nagios herunterladen

Laden Sie die neueste Version von der GitHub-Release-Seite von Nagios herunter. Zum Zeitpunkt des Tutorials ist 4.4.10 die neueste verfügbare Version. Ändern Sie den Befehl, falls Sie eine andere Version wünschen.

$ cd ~
$ sudo wget -O nagios.tar.gz https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.4.10/nagios-4.4.10.tar.gz

Entpacken Sie die Tar-Datei.

$ sudo tar zxf nagios.tar.gz

Verschieben Sie das entpackte Verzeichnis in das Verzeichnis /usr/src.

sudo mv nagios-4.4.10 /usr/src/nagios

Wechseln Sie in das Verzeichnis /usr/src/nagios.

$ cd /usr/src/nagios

Nagios kompilieren

Der nächste Schritt besteht darin, Nagios aus seinen Quelldateien zu kompilieren. Führen Sie das configure-Skript aus, um Überprüfungen durchzuführen, um sicherzustellen, dass alle Abhängigkeiten vorhanden sind.

$ sudo ./configure

Sie sollten eine ähnliche Ausgabe nach erfolgreichem Abschluss des Skripts erhalten.

* Konfigurationszusammenfassung für nagios 4.4.10 2023-01-17 *:

 Allgemeine Optionen:
 -------------------------
        Nagios ausführbar:  nagios
        Nagios Benutzer/Gruppe:  nagios,nagios
       Befehl Benutzer/Gruppe:  nagios,nagios
             Ereignis Broker:  ja
        Installieren ${prefix}:  /usr/local/nagios
    Installieren ${includedir}:  /usr/local/nagios/include/nagios
                Sperrdatei:  /run/nagios.lock
   Überprüfen Sie das Ergebnisverzeichnis:  /usr/local/nagios/var/spool/checkresults
           Init-Verzeichnis:  /lib/systemd/system
  Apache conf.d Verzeichnis:  /etc/httpd/conf.d
             Mail-Programm:  /usr/sbin/sendmail
                  Host-OS:  linux-gnu
          IOBroker-Methode:  epoll

 Webinterface-Optionen:
 ------------------------
                 HTML-URL:  http://localhost/nagios/
                  CGI-URL:  http://localhost/nagios/cgi-bin/
 Traceroute (verwendet von WAP):  

Überprüfen Sie die Optionen oben auf Richtigkeit. Wenn sie in Ordnung aussehen,
tippen Sie 'make all', um das Hauptprogramm und die CGIs zu kompilieren.

Starten Sie die Kompilierung.

$ sudo make all

Nagios-Benutzer und -Gruppe erstellen

Erstellen Sie einen neuen Benutzer und eine Gruppe, die den Nagios-Prozess ausführen.

$ sudo make install-groups-users

Sie sollten die folgende Ausgabe sehen.

groupadd -r nagios
useradd -g nagios nagios

Fügen Sie den Benutzer apache zur Gruppe nagios hinzu.

$ sudo usermod -a -G nagios apache

Nagios-Binärdateien installieren

Führen Sie den folgenden Befehl aus, um die Nagios-Binärdateien, CGIs und HTML-Dateien zu installieren.

$ sudo make install

Verzeichnis für externe Befehle erstellen

Nagios kann Befehle von externen Anwendungen verarbeiten, und dafür muss ein Verzeichnis eingerichtet werden.

$ sudo make install-commandmode
/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw

* Externes Befehlsverzeichnis konfiguriert *

Nagios-Konfigurationsdateien installieren

Installieren Sie die Beispielkonfigurationsdateien.

$ sudo make install-config

Apache-Konfigurationsdateien installieren

Führen Sie den folgenden Befehl aus, um die Apache-Konfigurationsdateien zu installieren.

$ sudo make install-webconf

Starten Sie den Webserver neu, um die Konfiguration zu aktivieren.

$ sudo systemctl restart httpd

Eine Systemd-Dienstdatei erstellen

Führen Sie den folgenden Befehl aus, um eine systemd-Einheitendatei zu installieren.

$ sudo make install-daemoninit

HTTP-Authentifizierung aktivieren

Sie können die Nagios-Weboberfläche über HTTP-Authentifizierung sperren. Führen Sie den folgenden Befehl aus, um htpasswd zu verwenden, um den Benutzer zu erstellen. Sie werden nach einem Passwort gefragt.

$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Neues Passwort:
Wiederholen Sie das neue Passwort:
Füge Passwort für Benutzer nagiosadmin hinzu

Der Standardname für den Benutzer ist nagiosadmin. Sie können einen anderen Benutzernamen verwenden, indem Sie alle Instanzen von nagiosadmin in der Datei /usr/local/nagios/etc/cgi.cfg durch den bevorzugten Benutzernamen ersetzen. Oder Sie können den Benutzernamen hinzufügen, indem Sie ein Komma wie folgt verwenden.

authorized_for_system_information=nagiosadmin, username1
authorized_for_configuration_information=nagiosadmin, username1
authorized_for_system_commands=nagiosadmin, username1
authorized_for_all_services=nagiosadmin, username1
authorized_for_all_hosts=nagiosadmin, username1
authorized_for_all_service_commands=nagiosadmin, username1
authorized_for_all_host_commands=nagiosadmin, username1

Sie können Benutzer mit schreibgeschütztem Zugriff hinzufügen, indem Sie die folgende Konfiguration in der Datei aktivieren, indem Sie das Hash-Zeichen (#) davor entfernen. Führen Sie dann htpasswd mit dem Benutzernamen aus.

authorized_for_read_only=username2

Starten Sie den Server neu, damit die Konfiguration wirksam wird.

$ sudo systemctl restart httpd

Schritt 4 - Nagios-Plugins installieren

Installieren Sie die Voraussetzungen, die für die Nagios-Plugins erforderlich sind.

$ sudo dnf install epel-release
$ sudo dnf install -y gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils postgresql-devel openldap-devel bind-utils samba-client fping openssh-clients lm_sensors perl-Net-SNMP

Laden Sie die neueste Version von der GitHub-Seite der Nagios-Plugins herunter. Zum Zeitpunkt des Tutorials ist 2.4.3 die neueste verfügbare Version. Ändern Sie den Befehl, falls Sie eine andere Version wünschen.

$ cd ~
$ sudo wget -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.4.3/nagios-plugins-2.4.3.tar.gz

Entpacken Sie die Tar-Datei.

$ sudo tar zxf nagios-plugins.tar.gz

Verschieben Sie das entpackte Verzeichnis in das Verzeichnis /usr/src.

$ sudo mv nagios-plugins-2.4.3 /usr/src/nagios-plugins

Wechseln Sie zurück in das Verzeichnis /usr/src/nagios-plugins.

$ cd /usr/src/nagios-plugins

Führen Sie die folgenden Befehle aus, um die Plugins zu kompilieren und zu installieren.

$ sudo ./configure
$ sudo make
$ sudo make install

Schritt 5 - Plugin check_nrpe installieren

Laden Sie die neueste Version von der NRPE-GitHub-Release-Seite herunter. Zum Zeitpunkt des Schreibens dieses Tutorials ist die neueste verfügbare Version 4.1.0. Ändern Sie den folgenden Befehl, falls Sie eine andere Version wünschen.

$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz

Entpacken Sie das Archiv.

$ tar zxf nrpe-*.tar.gz

Verschieben Sie das entpackte Verzeichnis in das Verzeichnis /usr/src.

$ sudo mv nrpe-4.1.0 /usr/src/nrpe

Wechseln Sie in das Verzeichnis /usr/src/nrpe.

$ cd /usr/src/nrpe

Konfigurieren und installieren Sie das Plugin.

$ sudo ./configure
$ sudo make check_nrpe
$ sudo make install-plugin

Dies platziert das Plugin check_nrpe im Verzeichnis /usr/local/nagios/libexec/.

Schritt 6 - Nagios starten

Mit installierten Nagios und Plugins ist es Zeit, den Nagios-Dienst zu starten.

$ sudo systemctl start nagios

Überprüfen Sie den Status des Dienstes, um zu sehen, ob er ordnungsgemäß läuft.

$ sudo systemctl status nagios

Nagios-Weboberfläche

Öffnen Sie die URL http:///nagios in Ihrem Browser. Sie sollten eine Anmeldemaske sehen.

Geben Sie die Anmeldeinformationen ein, die Sie während der HTTP-Authentifizierungsmethode erstellt haben, und Sie sollten mit dem folgenden Bildschirm begrüßt werden.

Nagios-Homepage

Schritt 7 - Hosts überwachen

Um einen Host zu überwachen, müssen Sie den NRPE-Daemon und die Nagios-Plugins auf dem Host installieren. Wir werden einen Rocky Linux 9-Server von unserem Nagios-Server aus überwachen.

Melden Sie sich bei Ihrem Host an.

$ ssh user@monitored_server_ip

Nagios-Plugins installieren

Installieren Sie die Nagios-Plugins, indem Sie Schritt 4 von zuvor wiederholen.

NRPE installieren

Installieren Sie die Voraussetzungen, die für den NRPE-Daemon erforderlich sind.

$ sudo dnf install -y gcc glibc glibc-common openssl openssl-devel perl wget

Laden Sie NRPE herunter.

$ cd ~
$ wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.1.0/nrpe-4.1.0.tar.gz

Entpacken Sie das Archiv.

$ tar zxf nrpe-*.tar.gz

Verschieben Sie das entpackte Verzeichnis in das Verzeichnis /usr/src.

$ sudo mv nrpe-4.1.0 /usr/src/nrpe

Wechseln Sie in das NRPE-Verzeichnis.

$ cd /usr/src/nrpe

Konfigurieren und installieren Sie NRPE.

$ sudo ./configure --enable-command-args
$ sudo make all

Erstellen Sie den Benutzer und die Gruppe.

$ sudo make install-groups-users

Installieren Sie die NRPE-Binärdateien, den NRPE-Daemon und das Plugin check_npre.

$ sudo make install

Installieren Sie die Konfigurationsdateien.

$ sudo make install-config

Aktualisieren Sie die Dienstdatei. Die Datei /etc/services wird verwendet, um Dienstnamen in Portnummern zu übersetzen.

$ sudo sh -c "echo >> /etc/services"
$ sudo sh -c "sudo echo '# Nagios-Dienste' >> /etc/services"
$ sudo sh -c "sudo echo 'nrpe    5666/tcp' >> /etc/services"

Installieren Sie den NPRE-Dienstdaemon.

$ sudo make install-init
$ sudo systemctl enable nrpe

Sie müssen die NPRE-Konfigurationsdatei unter /usr/local/nagios/etc/nrpe.cfg aktualisieren.

Öffnen Sie die Datei zur Bearbeitung.

$ sudo nano /usr/local/nagios/etc/nrpe.cfg

Standardmäßig hört NPRE nur auf Anfragen von localhost (127.0.0.1). Sie müssen die IP-Adresse Ihres Nagios-Servers in die Datei einfügen.

allowed_hosts=127.0.0.1,10.25.5.2

Die folgende Option bestimmt, ob der NPRE-Daemon es Clients erlaubt, Befehlsargumente anzugeben. Erlauben Sie die Option, indem Sie den Wert auf 1 setzen, was erweiterte NPRE-Konfigurationen aktiviert.

dont_blame_nrpe=1

Als nächstes werden Sie beim Scrollen eine Liste von NRPE-Befehlen mit ihren Definitionen finden. Alle sind auskommentiert. Sie müssen sie auskommentieren, damit Nagios sie verwenden kann.

Jeder Befehl kann Argumente übergeben werden. Einige der Befehle haben Argumente fest codiert, während andere Argumente vom Benutzer akzeptieren können. Jeder Befehl kann die folgenden Benachrichtigungsoptionen haben.

  • W steht für Warnungsdienstzustände
  • C steht für kritische Dienstzustände
  • R steht für Benachrichtigung bei Dienstwiederherstellung (OK-Zustände)

So können Sie angeben, auf welcher Ebene welcher Typ von Benachrichtigung ein Befehl senden kann. Wir werden nicht auf die detaillierte Beschreibung und Funktion jedes der Befehle eingehen, da sie über den Rahmen dieses Tutorials hinausgehen.

# Die folgenden Beispiele verwenden fest codierte Befehlsargumente...
# Dies ist bei weitem die sicherste Methode zur Verwendung von NRPE

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -r -w .15,.10,.05 -c .30,.25,.20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

# Die folgenden Beispiele erlauben benutzerspezifische Argumente und können
# nur verwendet werden, wenn der NRPE-Daemon mit Unterstützung für
# Befehlsargumente *UND* die dont_blame_nrpe-Direktive in dieser
# Konfigurationsdatei auf '1' gesetzt wurde. Dies stellt ein potenzielles Sicherheitsrisiko dar, also
# stellen Sie sicher, dass Sie die SECURITY-Datei lesen, bevor Sie dies tun.

### MISC SYSTEMMETRIKEN ###
command[check_users]=/usr/local/nagios/libexec/check_users $ARG1$
command[check_load]=/usr/local/nagios/libexec/check_load $ARG1$
command[check_disk]=/usr/local/nagios/libexec/check_disk $ARG1$
command[check_swap]=/usr/local/nagios/libexec/check_swap $ARG1$
command[check_cpu_stats]=/usr/local/nagios/libexec/check_cpu_stats.sh $ARG1$
command[check_mem]=/usr/local/nagios/libexec/custom_check_mem -n $ARG1$

### GENERISCHE DIENSTE ###
command[check_init_service]=sudo /usr/local/nagios/libexec/check_init_service $ARG1$
command[check_services]=/usr/local/nagios/libexec/check_services -p $ARG1$

### SYSTEMUPDATES ###
command[check_yum]=/usr/local/nagios/libexec/check_yum
#command[check_apt]=/usr/local/nagios/libexec/check_apt

### PROZESSE ###
command[check_all_procs]=/usr/local/nagios/libexec/custom_check_procs
command[check_procs]=/usr/local/nagios/libexec/check_procs $ARG1$

### OFFENE DATEIEN ###
command[check_open_files]=/usr/local/nagios/libexec/check_open_files.pl $ARG1$

### NETZWERKVERBINDUNGEN ###
command[check_netstat]=/usr/local/nagios/libexec/check_netstat.pl -p $ARG1$ $ARG2$

Kommentieren Sie die obigen Befehle aus, indem Sie das #-Symbol davor entfernen. Sie können so viele Befehle auskommentieren, wie Sie benötigen.

Fügen Sie den folgenden Befehl hinzu, um den Speicherplatz auf der Root-Disk zu überprüfen.

command[check_root]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /

Sobald Sie fertig sind, speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Erlauben Sie den Port 5666, der vom NPRE-Plugin verwendet wird.

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

Laden Sie die Firewall neu.

$ sudo firewall-cmd --reload

Starten Sie NPRE.

$ sudo systemctl start nrpe

Alle Befehle von hier an werden auf dem Haupt-Nagios-Server ausgeführt, es sei denn, es wird anders angegeben.

Überprüfen Sie, ob NRPE funktioniert, indem Sie den folgenden Befehl auf Ihrem Haupt-Nagios-Server ausführen.

$ /usr/local/nagios/libexec/check_nrpe -H monitored_server_ip

Sie sollten die folgende Ausgabe sehen.

NRPE v4.1.0

Um die Hosts zu überwachen, müssen Sie Konfigurationsdateien für jeden Host erstellen, den Sie überwachen möchten. Diese Hosts werden dann über die Nagios-Weboberfläche zugänglich.

Erstellen Sie das Verzeichnis zum Speichern der Konfigurationsdateien und geben Sie ihm die entsprechenden Berechtigungen.

$ sudo mkdir /usr/local/nagios/etc/servers
$ sudo chown -R nagios:nagios /usr/local/nagios/etc/servers
$ sudo chmod g+w /usr/local/nagios/etc/servers

Öffnen Sie die Nagios-Konfigurationsdatei /usr/local/nagios/etc/nagios.cfg zur Bearbeitung.

$ sudo nano /usr/local/nagios/etc/nagios.cfg

Suchen Sie die folgende Datei und kommentieren Sie sie aus, indem Sie das # davor entfernen.

cfg_dir=/usr/local/nagios/etc/servers

Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Der nächste Schritt besteht darin, den Befehl check_nrpe in die Datei /usr/local/nagios/etc/objects/commands.cfg hinzuzufügen, damit er zur Überwachung von Hosts verwendet werden kann.

Öffnen Sie die Datei /usr/local/nagios/etc/objects/commands.cfg zur Bearbeitung.

$ sudo nano /usr/local/nagios/etc/objects/commands.cfg

Fügen Sie den folgenden Code am Ende der Datei ein.

define command {
    command_name   check_nrpe
    command_line   $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$ $ARG2$
}

Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Erstellen Sie eine neue Konfigurationsdatei für den Remote-Host im Verzeichnis /usr/local/nagios/etc/servers/.

$ sudo nano /usr/local/nagios/etc/servers/yourhost.cfg

Fügen Sie den folgenden Code hinzu, indem Sie den Wert host_name durch Ihren Remote-Hostnamen, den Wert alias durch die Beschreibung Ihres Hosts und den Wert address durch die IP-Adresse Ihres Remote-Hosts ersetzen.

define host {
        use                             linux-server
        host_name                       monitored_server_host_name
        alias                           Mein Client-Server
        address                         monitored_server_private_ip
        max_check_attempts              5
        check_period                    24x7
        notification_interval           30
        notification_period             24x7
}

Mit dieser Konfiguration wird Nagios Sie informieren, wenn der Host online oder offline ist. Sie müssen weitere Dienste hinzufügen, um zusätzliche Dinge zu überwachen.

Fügen Sie den folgenden Block hinzu, um die Verbindungsstatistiken für den Host zu überprüfen.

define service {
      use                             generic-service
      host_name                       monitored_server_host_name
      service_description             PING
      check_command                   check_ping!200.0,20%!400.0,90%
}

Fügen Sie den folgenden Block hinzu, um die durchschnittliche Last Ihres Servers zu überwachen.

define service {
        use                             generic-service
        host_name                       monitored_server_host_name
        service_description             Durchschnittslast
        check_command                   check_nrpe!check_load!-a '-w 0.7,0.6,0.5 -c 0.9,0.8,0.7'
}

Die Direktive use generic-service weist Nagios an, von einer Vorlage namens generic-service zu erben, die von Nagios vordefiniert ist.

Fügen Sie als Nächstes einen Block hinzu, um die Festplattennutzung zu überwachen. Ändern Sie den Befehl mit den entsprechenden Festplattensymbolen.

define service {
        use                             generic-service
        host_name                       monitored_server_host_name
        service_description             /dev/vda1 freier Speicherplatz
        check_command                   check_nrpe!check_disk!-a '-w 20% -c 10% -p /dev/vda1'
}

Überwachen Sie SSH mit dem folgenden Block. Der folgende Block überprüft den SSH-Server und generiert eine Warnung, wenn der Server innerhalb von 5 Sekunden nicht reagiert.

define service {
    use                                 generic-service
    host_name                           monitored_server_host_name
    service_description                 SSH-Version überprüfen
    check_command                       check_ssh!-t 5
}

Lassen Sie uns die Gesamtzahl der laufenden Prozesse überprüfen.

define service{                     
    use                                 generic-service            
    host_name                           monitored_server_host_name            
    service_description                  Gesamtprozesse            
    check_command                        check_nrpe!check_total_procs
}

Überprüfen Sie die aktuell angemeldeten Benutzer.

define service{                     
    use                                 generic-service            
    host_name                           monitored_server_host_name            
    service_description                  Aktuelle Benutzer            
    check_command                        check_nrpe!check_users!-a '-w 5 -c 10'
}

Überprüfen Sie die SWAP-Disknutzung.

define service{                     
    use                                 generic-service            
    host_name                           monitored_server_host_name            
    service_description                  SWAP-Nutzung            
    check_command                        check_nrpe!check_swap!-a '-w 40% -c 20%'
}

Überprüfen Sie die Root-Partition und deren Festplattennutzung.

define service{
    use                                  generic-service
    host_name                            nagiosclient
    service_description                  Root / Partition
    check_command                        check_nrpe!check_disk!-a '-w 20% -c 10% -p /'
}

Überprüfen Sie, ob ein HTTP-Server installiert ist.

define service {
    use                                  generic-service
    host_name                            nagiosclient
    service_description                  HTTP
    check_command                        check_http
}

Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Starten Sie Nagios neu.

$ sudo systemctl restart nagios

Überprüfen Sie die Überwachungen

Öffnen Sie Ihr Nagios-Dashboard und klicken Sie auf die Option Hosts in der linken Seitenleiste. Sie sollten den neu konfigurierten Host zusammen mit localhost auf der Seite sehen.

Nagios-Hostüberwachung

Klicken Sie auf den neu konfigurierten Host (nagiosclient), und wenn alles korrekt konfiguriert ist, sollten Sie seinen Status sehen. Es kann eine Minute oder länger dauern, bis der Status angezeigt wird.

Nagios-Hostdienstüberwachung

Um die Dienste oder Überwachungen zu sehen, die wir konfiguriert haben, klicken Sie auf die Option Statusdetails für diesen Host anzeigen, und Sie sollten von der folgenden Seite begrüßt werden.

Nagios-Dienstüberwachungsstatus

Dies sollte Ihnen eine gute Vorstellung davon geben, wie Ihre Hosts funktionieren.

Schritt 8 - Nginx installieren

Sie können Nagios entweder direkt über die Server-IP ausführen oder es auf Ihrem Domainnamen hosten. Nagios wird bereits mit Apache-Konfigurationsdateien geliefert, aber wir werden Nginx verwenden, um es auszuführen. Wir werden Nginx als Reverse-Proxy vor dem Apache-Webserver verwenden.

Apache läuft bereits auf Port 80. Daher müssen wir das zuerst ändern. Und dann können wir Nginx als Proxy ausführen.

Öffnen Sie die Datei /etc/httpd/conf/httpd.conf zur Bearbeitung.

$ sudo nano /etc/httpd/conf/httpd.conf

Ändern Sie die Zeile Listen 80 in Listen 8080. Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden. Da wir den Domainnamen verwenden werden, um auf Nagios zuzugreifen, müssen wir Port 8080 nicht für den öffentlichen Zugriff öffnen.

Starten Sie den Apache-Server neu.

$ sudo systemctl restart httpd

Als Nächstes installieren Sie Nginx.

Rocky Linux 9 wird mit einer älteren Version von Nginx ausgeliefert. Sie müssen das offizielle Nginx-Repository herunterladen, um die neueste Version zu installieren.

Erstellen und öffnen Sie die Datei /etc/yum.repos.d/nginx.repo, um das offizielle Nginx-Repository zu erstellen.

$ sudo nano /etc/yum.repos.d/nginx.repo

Fügen Sie den folgenden Code ein.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Installieren Sie den Nginx-Server.

$ sudo dnf install nginx

Überprüfen Sie die Installation.

$ nginx -v
nginx version: nginx/1.22.1

Aktivieren und starten Sie den Nginx-Server.

$ sudo systemctl enable nginx --now

Schritt 9 - SSL installieren und konfigurieren

Bevor Sie Nginx konfigurieren, richten wir ein SSL-Zertifikat für die Domain ein, die wir mit Nagios verwenden werden. In unserem Fall verwenden wir http://nagios.example.com.

Wir werden den Snapd-Paketinstaller dafür verwenden. Da Rocky Linux nicht mit ihm geliefert wird, installieren Sie den Snapd-Installer. Er benötigt das EPEL-Repository, um zu funktionieren, das wir bereits zuvor installiert haben, sodass wir das überspringen können.

Installieren Sie Snapd.

$ sudo dnf install -y snapd

Aktivieren und starten Sie den Snap-Dienst.

$ sudo systemctl enable snapd --now

Installieren Sie das Snap-Core-Paket und stellen Sie sicher, dass Ihre Version von Snapd auf dem neuesten Stand ist.

$ sudo snap install core && sudo snap refresh core

Erstellen Sie die erforderlichen Links, damit Snapd funktioniert.

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

Führen Sie den folgenden Befehl aus, um Certbot zu installieren.

$ sudo snap install --classic certbot

Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Überprüfen Sie die Installation.

$ certbot --version
certbot 2.3.0

Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d nagios.example.com

Der obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/nagios.example.com auf Ihrem Server herunter.

Generieren Sie ein Diffie-Hellman-Gruppen-Zertifikat.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Führen Sie einen Testlauf des Prozesses durch, um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert.

$ sudo certbot renew --dry-run

Wenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.

Schritt 10 - Nginx konfigurieren

Bevor Sie Nginx konfigurieren, sollten wir eine weitere Änderung vornehmen. Standardmäßig bedient Apache Nagios über http://:8080/nagios. Jetzt können wir einen Proxy direkt über Nagios einrichten, aber es wird über https://nagios.example.com/nagios bereitgestellt. Wir können eine Umleitung über Nginx zur Root-URL einrichten, was die Sache kompliziert. Aus diesem Grund werden wir eine Änderung bei Apache und Nagios direkt vornehmen.

Öffnen Sie zuerst die Datei /usr/local/nagios/etc/cgi.cfg zur Bearbeitung.

$ sudo nano /usr/local/nagios/etc/cgi.cfg

Ändern Sie url_html_path=/nagios in url_html_path=/.

Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Öffnen Sie als Nächstes /etc/httpd/conf.d/nagios.conf zur Bearbeitung.

$ sudo nano /etc/httpd/conf.d/nagios.conf

Ändern Sie ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" in ScriptAlias /cgi-bin "/usr/local/nagios/sbin".

Kommentieren Sie die Zeile Alias /nagios "/usr/local/nagios/share" aus, indem Sie sie wie folgt ändern.

#Alias /nagios "/usr/local/nagios/share" 

Fügen Sie die folgende Zeile darunter hinzu.

DocumentRoot /usr/local/nagios/share

Fügen Sie die folgende Zeile an den Anfang der Datei hinzu.


Fügen Sie die folgende Zeile am Ende der Datei hinzu.


Sobald Sie fertig sind, speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Und schließlich öffnen Sie die Datei /usr/local/nagios/share/config.inc.php zur Bearbeitung.

$ sudo nano /usr/local/nagios/share/config.inc.php

Ändern Sie $cfg['cgi_base_url']='/nagios/cgi-bin'; in $cfg['cgi_base_url']='/cgi-bin';.

Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Starten Sie sowohl Apache als auch Nagios neu.

$ sudo systemctl restart httpd
$ sudo systemctl restart nagios

Um zu bestätigen, dass alles korrekt funktioniert, öffnen Sie die URL http://:1080 in Ihrem Browser, und Sie sollten sehen, dass Nagios ordnungsgemäß funktioniert. Stellen Sie außerdem sicher, dass die Hostdaten empfangen werden.

Sobald alles funktioniert, können wir fortfahren, unsere Konfigurationsdatei für Nginx zu erstellen.

Erstellen Sie eine Konfigurationsdatei für Nagios im Verzeichnis /etc/nginx/conf.d.

$ sudo nano /etc/nginx/conf.d/nagios.conf

Fügen Sie den folgenden Code ein.

server {
     listen 80; listen [::]:80;
     server_name nagios.example.com;
     return 301 https://$host$request_uri;
}

server {
        server_name nagios.example.com;

        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        access_log /var/log/nginx/nagios.access.log;
        error_log /var/log/nginx/nagios.error.log;

        ssl_certificate /etc/letsencrypt/live/nagios.example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/nagios.example.com/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/nagios.example.com/chain.pem;
        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;
        ssl_session_tickets off;

        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_dhparam /etc/ssl/certs/dhparam.pem;
 
       location / {
           proxy_pass http://127.0.0.1:8080;
           proxy_set_header Host $host;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-Proto $scheme;
       }
}

Sobald Sie fertig sind, speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Validieren Sie die Konfigurationsdatei.

$ sudo nginx -t

Wenn Sie den folgenden Fehler erhalten, müssen Sie die Datei /etc/nginx/nginx.conf bearbeiten, um die Größe der Variablen server_names_hash_bucket_size zu erhöhen/anzupassen.

nginx: [emerg] konnte den server_names_hash nicht erstellen, Sie sollten server_names_hash_bucket_size erhöhen

Öffnen Sie die Datei /etc/nginx/nginx.conf zur Bearbeitung.

$ sudo nano /etc/nginx/nginx.conf

Fügen Sie die folgende Zeile hinzu, bevor Sie

server_names_hash_bucket_size  64;

Sobald Sie fertig sind, speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden. Validieren Sie Nginx erneut.

Wenn Sie keine Probleme sehen, starten Sie den Nginx-Server neu.

$ sudo systemctl restart nginx

SELinux konfigurieren

Wenn Sie SELinux aktiviert haben, führen Sie den folgenden Befehl aus, um Nginx zu erlauben, eine Verbindung zum Netzwerk herzustellen.

$ sudo setsebool -P httpd_can_network_connect on

Öffnen Sie die Domain https://nagios.example.com in Ihrem Browser, und Sie sollten mit der Nagios-Homepage begrüßt werden.

Fazit

Sie haben Nagios auf einem Rocky Linux 9-Server installiert und konfiguriert, um mehrere Dienste wie die Last, die Festplatten-/Swap-Nutzung, Benutzer, Gesamtprozesse, HTTP und SSH zu überwachen. Dies schließt unser Tutorial ab. Um mehr zu erfahren, sollten Sie die offizielle Nagios-Dokumentation überprüfen, die die Überwachung und verschiedene Befehle im Detail behandelt.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.