Überwachung · 14 min read · Nov 02, 2025

So installieren Sie einen produktionsbereiten Naemon-Überwachungsserver

Naemon ist die neue Überwachungssoftware, die schnell, stabil und innovativ sein soll und Ihnen einen klaren Überblick über den Zustand Ihres Netzwerks und Ihrer Anwendungen bietet. Dies ist ein Ersatz für den Nagios-Server und sehr stabil und verwendet ein erstaunliches Dashboard namens Thruk. Die Einrichtung von Naemon ist sehr einfach und hat einen integrierten Live-Status. In diesem Tutorial zeige ich Ihnen, wie Sie Naemon in einer Produktionsumgebung zusammen mit PNP4Nagios für Grafiken installieren und konfigurieren. Naemon ist sehr stabil, ich werde Ihnen zeigen, wie Sie die Konfigurationen in einer großflächigen Umgebung verwalten.

In diesem Tutorial werde ich vier Server verwenden

  • 192.168.1.170 - Naemon-Server - CentOS 7
  • 192.168.1.21 - NRPE-Client - CentOS 6
  • 192.168.1.182 - NRPE-Client - Ubuntu
  • 192.168.1.75 - NSCP-Client - Windows Server 2012R2

Installation des Naemon-Servers

Ich verwende einen CentOS 7-Host mit einer minimalen Installation, SELinux deaktiviert und Firewalld aktiviert.

[root@naemon ~]# sestatus
SELinux-Status:                 deaktiviert
[root@naemon ~]#

Installation des Repos:

[root@naemon ~]# yum -y install https://labs.consol.de/repo/stable/rhel7/x86_64/labs-consol-stable.rhel7.noarch.rpm

Aktivieren des EPEL-Repos:

yum -y install epel-release

Installation des Naemon-Pakets:

[root@naemon ~]# yum install naemon*

Naemon verwendet dasselbe Nagios-Plugin und NRPE, um Hosts zu überwachen. Wir werden sie jetzt installieren:

[root@naemon ~]# yum install nagios-plugins nagios-plugins-all nagios-plugins-nrpe nrpe -y

Wir fügen die Firewall-Regeln hinzu:


[root@naemon ~]# firewall-cmd --add-service=http --permanent
success
[root@naemon ~]# firewall-cmd --add-service=https --permanent
success
[root@naemon ~]# firewall-cmd --reload
success
[root@naemon ~]# firewall-cmd --list-all
public (aktiv)
  Ziel: default
  icmp-block-inversion: nein
  Schnittstellen: eno16777736
  Quellen:
  Dienste: dhcpv6-client http https ssh
  Ports:
  Protokolle:
  masquerade: nein
  forward-ports:
  sourceports:
  icmp-blocks:
  rich rules:

[root@naemon ~]#

Installation von PNP4Nagios.

yum install gcc-c++ rrdtool perl-Time-HiRes perl-rrdtool php-gd php php-cli wget

Herunterladen von PNP4Nagios.

[root@naemon ~]# wget https://svwh.dl.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.25.tar.gz
    [root@naemon ~]# tar -zxvf pnp4nagios-0.6.25.tar.gz
    [root@naemon ~]# cd pnp4nagios-0.6.25/
[root@naemon pnp4nagios-0.6.25]# ./configure --with-nagios-user=naemon --with-nagios-group=naemon
[root@naemon pnp4nagios-0.6.25]# make all
[root@naemon pnp4nagios-0.6.25]# make fullinstall
[root@naemon pnp4nagios-0.6.25]# make install-webconf
[root@naemon pnp4nagios-0.6.25]# make install-config
[root@naemon pnp4nagios-0.6.25]# make install-init

Neustart und Aktivierung des Dienstes.

    [root@naemon ~]# systemctl enable httpd && systemctl restart httpd
[root@naemon ~]# systemctl enable naemon && systemctl restart naemon
[root@naemon ~]# systemctl enable thruk && systemctl restart thruk
[root@naemon ~]# systemctl enable npcd && systemctl restart npcd

Sie sollten in der Lage sein, die URL von http://192.168.1.170/thruk zuzugreifen.

Thruk-Schnittstelle

Der Standardbenutzername ist thrukadmin, das Passwort ist thrukadmin.

Falls Sie das Passwort von thrukadmin ändern möchten, führen Sie Folgendes aus:

[root@naemon ~]# htpasswd /etc/thruk/htpasswd thrukadmin

Installation des Überwachungsclients zur Überwachung der Knoten

Installation der NRPE-Clients zur Überwachung von Linux-Hosts

192.168.1.21 - NRPE-Client - CentOS 6

Installation des Nagios-Plugins und des NRPE-Clients:

[root@centos6 ~]# yum install nagios-plugins nagios-plugins-all nagios-plugins-nrpe nrpe -y

Machen Sie eine Sicherung der nrpe.cfg:

[root@centos6 ~]# cp /etc/nagios/nrpe.cfg /etc/nagios/nrpe.cfg.bkp

Ersetzen Sie den Inhalt der nrpe.conf-Datei durch den folgenden Inhalt:

[root@centos6 ~]# cat /etc/nagios/nrpe.cfg
log_facility=daemon
pid_file=/var/run/nrpe/nrpe.pid
nrpe_user=nrpe
nrpe_group=nrpe
allowed_hosts=127.0.0.1,192.168.1.170
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_dir=/etc/nrpe.d/

[root@centos6 ~]#

Unter allowed_hosts fügen Sie die IP-Adresse des Naemon-Servers hinzu, hier ist es 192.168.1.170.

Jetzt müssen wir den NRPE-Dienst neu starten:

    [root@centos6 ~]# service nrpe restart
    [root@centos6 ~]# chkconfig nrpe on

192.168.1.182 - NRPE-Client - Ubuntu

root@ubuntu:~# apt-get install nagios-nrpe-server nagios-plugins -y

Machen Sie eine Sicherung der nrpe.cfg:

[root@ubuntu ~]# cp /etc/nagios/nrpe.cfg /etc/nagios/nrpe.cfg.bkp

Ersetzen Sie den Inhalt der nrpe.conf-Datei durch den folgenden Inhalt:

root@ubuntu:~# cat /etc/nagios/nrpe.cfg
log_facility=daemon
pid_file=/var/run/nagios/nrpe.pid
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=127.0.0.1,192.168.1.170
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_dir=/etc/nagios/nrpe.d/
root@ubuntu:~#

Jetzt müssen wir den NRPE-Dienst neu starten:

    root@ubuntu:~# systemctl restart nagios-nrpe-server.service
    root@ubuntu:~# systemctl enable nagios-nrpe-server.service

Installation von NSCP auf Windows

192.168.1.75 - NSCP-Client - Windows Server 2012R2

Laden Sie NSCP von dieser Website herunter:

https://www.nsclient.org/download/

Sobald der Download abgeschlossen ist, folgen Sie bitte den Installationsscreenshots

Wählen Sie generisch.

Wählen Sie vollständig:

Wählen Sie den Standardpfad:

Jetzt fügen Sie unter allowed hosts den Naemon-Host hinzu. Hier in unserem Setup ist es 192.168.1.170.

Stellen Sie sicher, dass Sie ein komplexes Passwort vergeben. Für dieses Beispiel habe ich das Passwort “howtoforge” verwendet. Überprüfen Sie dann, ob NSClient und NRPE aktiviert sind.

Sobald die Installation abgeschlossen ist, stellen Sie bitte sicher, dass der Dienst läuft.

Wir werden jetzt vom Naemon-Host validieren, um sicherzustellen, dass wir ihn erreichen können.

Validierung von NRPE und NSCP vom Naemon-Server zur Überprüfung der Konnektivität

[root@naemon ~]# /usr/lib64/nagios/plugins/check_nrpe -H 192.168.1.182
NRPE v2.15
[root@naemon ~]# /usr/lib64/nagios/plugins/check_nrpe -H 192.168.1.21
NRPE v2.15
[root@naemon ~]#
[root@naemon ~]# /usr/lib64/nagios/plugins/check_nt -H 192.168.1.75 -p 12489 -v CLIENTVERSION -s 'howtoforge'
NSClient++ 0.5.0.62 2016-09-14
[root@naemon ~]#

Überwachung der Server

Wir werden die Leistung des Servers in diesem Tutorial überwachen.

In einer Produktionsumgebung müssen wir die CPU-, Speicher- und Festplattennutzung überwachen, zusammen mit der Überprüfung, ob der Host aktiv ist.

Fügen Sie die folgenden Zeilen in die NRPE-Konfiguration /etc/nrpe.d/base.cfg ein.

192.168.1.21 - NRPE-Client - CentOS 6

  [root@centos6 ~]# cat /etc/nrpe.d/base.cfg
command[check_disks]=/usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -X nfs -X cifs -X none -X tmpfs -w $ARG1$ -c $ARG2$
command[memory]=/usr/lib64/nagios/plugins/check_memory -w $ARG1$ -c $ARG2$
command[load]=/usr/lib64/nagios/plugins/check_load -w $ARG1$ -c $ARG2$
command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$
command[check_procs_c]=/usr/lib64/nagios/plugins/check_procs -c $ARG1$ -C $ARG2$
command[check_procs_a]=/usr/lib64/nagios/plugins/check_procs -c $ARG1$ -a $ARG2$
  

Speichern und starten Sie die Datei neu, und starten Sie dann NRPE neu.

[root@centos6 ~]# /etc/init.d/nrpe restart
Herunterfahren von nrpe:                                        [FEHLGESCHLAGEN]
Starten von nrpe:                                             [  OK  ]
[root@centos6 ~]#
 

Das Speicher-Plugin ist nicht als Standard-Plugin verfügbar. Wir werden das folgende Plugin verwenden.

 [root@centos6 ~]# cd  /usr/lib64/nagios/plugins/
 [root@centos6 plugins]# vim check_memory

Fügen Sie den folgenden Inhalt hinzu.

#! /usr/bin/perl -w
##Inklusive Perf-Daten
#Die Nagios-Plugins kommen mit ABSOLUT NULL GARANTIE. Sie können
#Kopien der Plugins unter den Bedingungen der GNU General Public License weitergeben.
#
use strict;
use Getopt::Long;

my ($opt_f, $opt_h, $opt_c, $opt_w);
my ($result, $message, $ram_percent);

my $PROGNAME="check_memory";

$opt_f = "";

Getopt::Long::Configure('bundling');
GetOptions(
        "h"   => \$opt_h, "help"        => \$opt_h,
        "c=s" => \$opt_c, "Warning_Percentage"  => \$opt_c,
        "w=s" => \$opt_w, "Critical_Percentage" => \$opt_w,
);

if (\$opt_h) {
        &print_help();
        exit 0;
}

$opt_w = shift unless (\$opt_w);
$opt_c = shift unless (\$opt_c);

if (! \$opt_c && ! \$opt_w) {
        print "Warnung und kritisch müssen angegeben werden\n";
        exit 3;
}
if (\$opt_c <= \$opt_w){
        print "Kritisch muss größer sein als Warnung CRITICAL: \$opt_c WARNING: \$opt_w\n";
        exit 3;
}


$result = 'OK';
open(FREE_M, "free -m|");
while (my \$line = ){ 
        if (\$line =~ /^Mem/){
                my (\$junk,\$total_mem,\$used_mem,\$free_mem,\$shared_mem,\$buffered_mem,\$cached_mem)=split(/\s+/,$line);
                \$ram_percent=int((\$total_mem-(\$free_mem+\$cached_mem+\$buffered_mem))/(\$total_mem*100*100))/100;

        }
}
close(FREE_M);

if (\$ram_percent > \$opt_c){
print "Speicherverbrauch: CRITICAL: \${ram_percent}% verwendet | verwendet=\$ram_percent;\$opt_w;\$opt_c\n";
exit 2;
}elsif (\$ram_percent > \$opt_w) {
print "Speicherverbrauch: WARNUNG: \${ram_percent}% verwendet | verwendet=\$ram_percent;\$opt_w;\$opt_c\n";
exit 1;
}
else{
print "Speicherverbrauch: \$result: \${ram_percent}% verwendet | verwendet=\$ram_percent;\$opt_w;\$opt_c\n";
exit 0;
}

sub print_usage () {
        print "Verwendung:\n";
        print "  \$PROGNAME -f \n";
        print "  \$PROGNAME -c \n";
        print "  \$PROGNAME -w \n";
        print "  \$PROGNAME [-h | --help]\n";
        print "  \$PROGNAME [-V | --version]\n";
}

sub print_help () {
        print << EOF; 
\$PROGNAME v1.0.01
Die Nagios-Plugins kommen mit ABSOLUT NULL GARANTIE. Sie können
Kopien der Plugins unter den Bedingungen der GNU General Public License weitergeben.
EOF
        &print_usage();
        print "\n";
        exit 3;
}

Download-Link für das Check_Memory-Plugin

Sie müssen dem Datei Ausführungsberechtigungen geben:

  [root@centos6 plugins]# chmod 755 check_memory

Fügen Sie die folgenden Zeilen in die NRPE-Konfiguration /etc/nagios/nrpe.d/base.cfg ein.

192.168.1.182 - NRPE-Client - Ubuntu

Hier ist der Dateipfad anders:

Das Plugin-Verzeichnis ist lib und nicht lib64.

  root@ubuntu:~# cat /etc/nagios/nrpe.d/base.cfg
command[check_disks]=/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
command[check_disk]=/usr/lib/nagios/plugins/check_disk -X nfs -X cifs -X none -X tmpfs -w $ARG1$ -c $ARG2$
command[memory]=/usr/lib/nagios/plugins/check_memory -w $ARG1$ -c $ARG2$
command[load]=/usr/lib/nagios/plugins/check_load -w $ARG1$ -c $ARG2$
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$
command[check_procs_c]=/usr/lib/nagios/plugins/check_procs -c $ARG1$ -C $ARG2$
command[check_procs_a]=/usr/lib/nagios/plugins/check_procs -c $ARG1$ -a $ARG2$
  

Fügen Sie das gleiche Check_Memory-Skript in /usr/lib/nagios/plugins ein.

  root@ubuntu:~# vim /usr/lib/nagios/plugins/check_memory
root@ubuntu:~# chmod 755 /usr/lib/nagios/plugins/check_memory
root@ubuntu:~# systemctl restart nagios-nrpe-server.service
root@ubuntu:~#

Konfiguration auf dem Naemon-Server

Melden Sie sich als Naemon-Benutzer an:

[root@naemon ~]# su - naemon
Letzte Anmeldung: Do. 9. März 2017 17:11:39 CET auf pts/0
-sh-4.2$

Ändern Sie die Admin-Mail in /etc/naemon/naemon.cfg

........
........
[email protected]
[email protected]
........
............

Jetzt werden wir die benutzerdefinierten Befehle konfigurieren, um die Überprüfung in /etc/naemon/conf.d durchzuführen.

Erstellen Sie einen benutzerdefinierten Befehl namens custom_commands.cfg mit folgendem Inhalt.

$ vim /etc/naemon/conf.d/custom_commands.cfg
## Host Alive Check ##
# Befehl 'check_icmp Host Alive'
define command{
    command_name                   host_alive
    command_line                   $USER1$/check_icmp -H $HOSTADDRESS$ -n 1 -w 3000.00,80% -c 5000.00,100%
    }
### Service-Befehl ##
# Befehl 'check_nrpe_disks'
define command{
    command_name                   check_nrpe_disks
    command_line                   $USER1$/check_nrpe -t 55 -u -H $HOSTADDRESS$ -c check_disks -a $ARG1$ $ARG2$ $ARG3$
    }

# Befehl 'nrpe'
define command{
    command_name                   nrpe
    command_line                   $USER1$/check_nrpe -t 55 -u -H $HOSTADDRESS$ -c $ARG1$
    }

# NRPE mit Argumenten
define command{
    command_name                   check_nrpe_a
    command_line                   $USER1$/check_nrpe -t 55 -u -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$ $ARG4$
    }
#####################################
# Windows NSClient++-Überprüfungen
# Befehl 'check_nt'
define command{
    command_name                   nt
    command_line                   $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ -s $USER4$
    }

Aus Sicherheitsgründen speichern Sie das Passwort der NSCP-Clients in /etc/naemon/resource.cfg

...........
...........
$USER4$=howtoforge
...........
............

Jetzt müssen wir die Hostkonfiguration definieren.

Wir erstellen eine Datei namens linux.cfg.

$ vim /etc/naemon/conf.d/linux.cfg
define host {
  host_name                      centos6.sunil.cc
  alias                          Centos
  address                        192.168.1.21
  use                            linux-server
  hostgroups                     linux-servers
}
define host {
  host_name                      ubuntu.sunil.cc
  alias                          Ubuntu
  address                        192.168.1.182
  use                            linux-server
  hostgroups                     linux-servers
}

Wir machen dasselbe für den Windows-Host.

$ vim /etc/naemon/conf.d/windows.cfg
define host {
  host_name                      ad.sunil.cc
  alias                          Mein Windows-Server
  address                        192.168.1.75
  use                            windows-server
}

define hostgroup {
  hostgroup_name                 windows-servers
  alias                          Windows-Server
}

Jetzt müssen wir die Dienstkonfiguration definieren.

$ vim linux_services.cfg
define service {
  service_description            Disks Status
  hostgroup_name                  linux-servers
  use                            generic-service                       
  check_command                  check_nrpe_a!check_disk!15%!5%
}
define service{
    use                            generic-service
    hostgroup_name                 linux-servers
    service_description            Load Average
    check_command                  check_nrpe_a!load!30,25,20!45,40,35
}
define service{
    use                            generic-service
    hostgroup_name                 linux-servers
    service_description            Memory Usage
    check_command                  check_nrpe_a!memory!80!90
}

Für Windows erstellen wir eine ähnliche Konfiguration.

$ vim window_services.cfg
define service{
    use                            generic-service
    hostgroup_name                 windows-servers
    service_description            Disk - C:
    check_command                  nt!USEDDISKSPACE!-l c -w 80 -c 90
     }
define service{
    use                            generic-service
    hostgroup_name                 windows-servers
    service_description            Load Average
    check_command                  nt!CPULOAD!-l 60,90,95
}
define service{
    use                            generic-service
    hostgroup_name                 windows-servers
    service_description            Memory Usage
    check_command                  nt!MEMUSE!-w 90 -c 95
}

Jetzt werden wir die E-Mail-Adresse des Kontakts ändern.

$ vim contacts.cfg
define contact {
  contact_name                   naemonadmin                         ; Kurzname des Benutzers
  alias                          Naemon Admin                        ; Vollständiger Name des Benutzers
  use                            generic-contact                     ; Erben Sie Standardwerte aus der generischen Kontaktvorlage (oben definiert)
  email                          [email protected]             ; <<*** ÄNDERN SIE DIES ZU IHRER E-MAIL-ADRESSE ****
}

Jetzt entfernen wir die unnötigen Konfigurationen, die nicht erforderlich sind.

$ mv switch.cfg switch.cfg.bkp
$ mv printer.cfg printer.cfg.bkp

Um die Konfigurationen zu validieren.

$ naemon -v /etc/naemon/naemon.cfg

Naemon Core 1.0.6-pkg
Copyright (c) 2013-present Naemon Core Development Team und Community Contributors
Copyright (c) 2009-2013 Nagios Core Development Team und Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Lizenz: GPL

Website: http://www.naemon.org
Lese Konfigurationsdaten...
   Hauptkonfigurationsdatei erfolgreich gelesen...
   Objektkonfigurationsdateien erfolgreich gelesen...

Durchführung einer Vorabprüfung der Konfigurationsdaten...

Überprüfung der Objekte...
        20 Dienste überprüft.
        4 Hosts überprüft.
        1 Kontakte überprüft.
        2 Hostgruppen überprüft.
        0 Dienstgruppen überprüft.
        1 Kontaktgruppen überprüft.
        29 Befehle überprüft.
        5 Zeitperioden überprüft.
        0 Hosteskalationen überprüft.
        0 Diensteskalationen überprüft.
Überprüfung auf zirkuläre Pfade...
        4 Hosts überprüft
        0 Dienstabhängigkeiten überprüft
        0 Hostabhängigkeiten überprüft
        5 Zeitperioden überprüft
Überprüfung globaler Ereignishandler...
Überprüfung obsessiver kompulsiver Prozessbefehle...
Überprüfung anderer Einstellungen...

Gesamtwarnungen: 0
Gesamtfehler:   0

Alles sieht gut aus - Es wurden keine schwerwiegenden Probleme während der Vorabprüfung festgestellt
-sh-4.2$

Melden Sie sich als Root an und starten Sie den Naemon-Dienst neu.

[root@naemon conf.d]# systemctl restart naemon
[root@naemon conf.d]# systemctl status naemon
? naemon.service - Naemon Monitoring Daemon
   Geladen: geladen (/usr/lib/systemd/system/naemon.service; aktiviert; Standardwert des Anbieters: deaktiviert)
   Aktiv: aktiv (laufend) seit Do. 9. März 2017 19:14:36 CET; vor 7s
     Docs: http://naemon.org/documentation
  Prozess: 5112 ExecStart=/usr/bin/naemon --daemon /etc/naemon/naemon.cfg (Code=ausgestiegen, Status=0/ERFOLG)
  Prozess: 5110 ExecStartPre=/usr/bin/chown -R naemon:naemon /var/run/naemon/ (Code=ausgestiegen, Status=0/ERFOLG)
  Prozess: 5108 ExecStartPre=/usr/bin/mkdir /var/run/naemon (Code=ausgestiegen, Status=1/FEHLER)
 Haupt-PID: 5114 (naemon)
   CGroup: /system.slice/naemon.service
           ??5114 /usr/bin/naemon --daemon /etc/naemon/naemon.cfg
           ??5115 /usr/bin/naemon --worker /var/lib/naemon/naemon.qh
           ??5116 /usr/bin/naemon --worker /var/lib/naemon/naemon.qh
           ??5117 /usr/bin/naemon --worker /var/lib/naemon/naemon.qh
           ??5118 /usr/bin/naemon --worker /var/lib/naemon/naemon.qh
           ??5119 /usr/bin/naemon --daemon /etc/naemon/naemon.cfg

9. März 19:14:36 naemon.sunil.cc systemd[1]: Starte Naemon Monitoring Daemon...
9. März 19:14:36 naemon.sunil.cc systemd[1]: Fehler beim Lesen der PID aus der Datei /var/run/naemon/naemon.pid: Ungültiges Argument
9. März 19:14:36 naemon.sunil.cc systemd[1]: Naemon Monitoring Daemon gestartet.
[root@naemon conf.d]#

Melden Sie sich beim Dashboard an, und Sie sollten die Dienste sehen, die aktiv sind.

Wir sehen, dass die Dienste für den Ubuntu-Host fehlschlagen.

Es ist zu sehen, dass das NRPE-Paket, das für Ubuntu kompiliert wurde, die Argumente aus Sicherheitsgründen deaktiviert hatte, und das ist der Grund, warum es fehlschlägt.

Wir müssen das Paket neu kompilieren, um die Argumente zu aktivieren, um das Tuning von Naemon zu verwalten.

Der folgende Link zeigt Ihnen, wie es neu kompiliert werden kann. Sie finden auch das Paket, das bereits mit aktivierten Argumenten kompiliert wurde, auf dieser Seite. Ich werde dieses vorkompilierte Paket für dieses Tutorial verwenden.

https://www.claudiokuenzler.com/blog/626/nrpe-debian-jessie-command-ags-arguments-not-working-error
root@ubuntu:~# wget https://www.claudiokuenzler.com/downloads/nrpe/nagios-nrpe-server_2.15-1ubuntu2_amd64.xenial.deb

Installieren Sie das Paket.

root@ubuntu:~# dpkg -i nagios-nrpe-server_2.15-1ubuntu2_amd64.xenial.deb
(Lese Datenbank ... 79576 Dateien und Verzeichnisse sind derzeit installiert.)
Bereite das Entpacken von nagios-nrpe-server_2.15-1ubuntu2_amd64.xenial.deb vor ...
Entpacke nagios-nrpe-server (2.15-1ubuntu2) über (2.15-1ubuntu1) ...
Einrichten von nagios-nrpe-server (2.15-1ubuntu2) ...
Verarbeitung von Triggern für systemd (229-4ubuntu16) ...
Verarbeitung von Triggern für ureadahead (0.100.0-19) ...
Verarbeitung von Triggern für man-db (2.7.5-1) ...
root@ubuntu:~#

Starten Sie NRPE neu.

root@ubuntu:~# systemctl restart nagios-nrpe-server.service

Jetzt überwachen wir alle Hosts mit Naemon.

Konfiguration von PNP4Nagios

Wir müssen PNP4Nagios für Leistungsgraphen konfigurieren.

Jetzt verwenden wir dieselbe Authentifizierungsmethode wie das Thruk-Dashboard. Zuerst machen wir eine Sicherung der Datei und ändern die folgenden Zeilen.

[root@naemon conf.d]# cd /etc/httpd/conf.d/
[root@naemon conf.d]# cp pnp4nagios.conf pnp4nagios.conf.bkp
[root@naemon share]# cat /etc/httpd/conf.d/pnp4nagios.conf
# BEISPIEL KONFIGURATIONS-SNIPPETS FÜR APACHE-WEBSERVER

Alias /pnp4nagios "/usr/local/pnp4nagios/share"


        AllowOverride None
        Order allow,deny
        Allow from all
        #
        # Verwenden Sie denselben Wert wie in nagios.conf definiert
        #
        AuthName "Thruk-Zugriff"
        AuthType Basic
        AuthUserFile /etc/thruk/htpasswd
        Require valid-user
        
                # Aktivieren Sie die URL-Umschreibung
                RewriteEngine On
                Options symLinksIfOwnerMatch
                # Installationsverzeichnis
                RewriteBase /pnp4nagios/
                # Schützen Sie Anwendungs- und Systemdateien vor der Anzeige
                RewriteRule "^(?:application|modules|system)/" - [F]
                # Erlauben Sie, dass alle Dateien oder Verzeichnisse, die existieren, direkt angezeigt werden
                RewriteCond "%{REQUEST_FILENAME}" !-f
                RewriteCond "%{REQUEST_FILENAME}" !-d
                # Schreiben Sie alle anderen URLs auf index.php/URL um
                RewriteRule "^.*$" "index.php/$0" [PT]
        
[root@naemon share]#
[root@naemon conf.d]# systemctl restart httpd.service

Jetzt müssen wir die Konfigurationsseite ändern.

[root@naemon share]# cd /usr/local/pnp4nagios/share/
[root@naemon share]# mv install.php install.php.txt

Jetzt müssen wir die Konfigurationsdatei für PNP4Nagios ändern.

Ändern Sie Nagios in Naemon in der Konfigurationsdatei.

[root@naemon conf.d]# vi /usr/local/pnp4nagios/etc/config_local.php
............................
................................
$conf['nagios_base'] = "/naemon/cgi-bin";
..................................
............................

Aktivieren Sie die Leistungsdaten von 0 auf 1.

[root@naemon conf.d]# vi /etc/naemon/naemon.cfg
.....................
.....................
process_performance_data=1
......................
......................

Fügen Sie die folgenden Zeilen am Ende der naemon.conf hinzu.

[root@naemon conf.d]# vi /etc/naemon/naemon.cfg
#
# Dienstleistungsleistungsdaten
#
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::\$TIMET$\tHOSTNAME::\$HOSTNAME$\tSERVICEDESC::\$SERVICEDESC$\tSERVICEPERFDATA::\$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::\$SERVICECHECKCOMMAND$\tHOSTSTATE::\$HOSTSTATE$\tHOSTSTATETYPE::\$HOSTSTATETYPE$\tSERVICESTATE::\$SERVICESTATE$\tSERVICESTATETYPE::\$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file

#
#
#
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::\$TIMET$\tHOSTNAME::\$HOSTNAME$\tHOSTPERFDATA::\$HOSTPERFDATA$\tHOSTCHECKCOMMAND::\$HOSTCHECKCOMMAND$\tHOSTSTATE::\$HOSTSTATE$\tHOSTSTATETYPE::\$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file

Jetzt müssen wir die folgenden Zeilen in custom_commands.conf hinzufügen.

[root@naemon conf.d]# vim /etc/naemon/conf.d/custom_commands.cfg
define command{
       command_name    process-service-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.\$TIMET$
}

define command{
       command_name    process-host-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.\$TIMET$
}

Jetzt erstellen wir eine Vorlage für die Host-Performance- und Service-Performance-Grafik.

$ cd /etc/naemon/conf.d/templates/
$ cat pnp.cfg
define host {
   name host-pnp
   process_perf_data 1
   action_url /pnp4nagios/index.php/graph?host=\$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=\$HOSTNAME$&srv=_HOST_
   register 0
}

define service {
   name service-pnp
   process_perf_data 1
   action_url /pnp4nagios/index.php/graph?host=\$HOSTNAME$&srv=\$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=\$HOSTNAME$&srv=\$SERVICEDESC$
   register 0
}

Jetzt müssen wir, um auf die Leistungsgraphen für Dienste zuzugreifen, die service.cfg-Datei aktualisieren.

$ cat linux_services.cfg
define service {
  service_description            Disks Status
  hostgroup_name                  linux-servers
  use                            generic-service,service-pnp                       ; Name der zu verwendenden Dienstvorlage
  check_command                  check_nrpe_a!check_disk!15%!5%
}
define service{
    use                            generic-service,service-pnp
    hostgroup_name                 linux-servers
    service_description            Load Average
    check_command                  check_nrpe_a!load!30,25,20!45,40,35
}
define service{
    use                            generic-service,service-pnp
    hostgroup_name                 linux-servers
    service_description            Memory Usage
    check_command                  check_nrpe_a!memory!80!90
}
$ cat window_services.cfg
define service{
    use                            generic-service,service-pnp
    hostgroup_name                 windows-servers
    service_description            Disk - C:
    check_command                  nt!USEDDISKSPACE!-l c -w 80 -c 90
     }
define service{
    use                            generic-service,service-pnp
    hostgroup_name                 windows-servers
    service_description            Load Average
    check_command                  nt!CPULOAD!-l 60,90,95
}
define service{
    use                            generic-service,service-pnp
    hostgroup_name                 windows-servers
    service_description            Memory Usage
    check_command                  nt!MEMUSE!-w 90 -c 95
}

Um den Hostgraphen zu überprüfen, müssen wir ihn in die folgende Datei einfügen.

$ cat linux.cfg
define host {
  host_name                      centos6.sunil.cc
  alias                          Centos
  address                        192.168.1.21
  use                            linux-server,host-pnp
  hostgroups                     linux-servers
}
define host {
  host_name                      ubuntu.sunil.cc
  alias                          Ubuntu
  address                        192.168.1.182
  use                            linux-server,host-pnp
  hostgroups                     linux-servers
}
$ cat windows.cfg
define host {
  host_name                      ad.sunil.cc
  alias                          Mein Windows-Server
  address                        192.168.1.75
  use                            windows-server,host-pnp
}

define hostgroup {
  hostgroup_name                 windows-servers
  alias                          Windows-Server
}

Validieren Sie die Konfiguration.

$ naemon -v /etc/naemon/naemon.cfg

Naemon Core 1.0.6-pkg
Copyright (c) 2013-present Naemon Core Development Team und Community Contributors
Copyright (c) 2009-2013 Nagios Core Development Team und Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Lizenz: GPL

Website: http://www.naemon.org
Lese Konfigurationsdaten...
   Hauptkonfigurationsdatei erfolgreich gelesen...
   Objektkonfigurationsdateien erfolgreich gelesen...

Durchführung einer Vorabprüfung der Konfigurationsdaten...

Überprüfung der Objekte...
        20 Dienste überprüft.
        4 Hosts überprüft.
        1 Kontakte überprüft.
        2 Hostgruppen überprüft.
        0 Dienstgruppen überprüft.
        1 Kontaktgruppen überprüft.
        31 Befehle überprüft.
        5 Zeitperioden überprüft.
        0 Hosteskalationen überprüft.
        0 Diensteskalationen überprüft.
Überprüfung auf zirkuläre Pfade...
        4 Hosts überprüft
        0 Dienstabhängigkeiten überprüft
        0 Hostabhängigkeiten überprüft
        5 Zeitperioden überprüft
Überprüfung globaler Ereignishandler...
Überprüfung obsessiver kompulsiver Prozessbefehle...
Überprüfung anderer Einstellungen...

Gesamtwarnungen: 0
Gesamtfehler:   0

Alles sieht gut aus - Es wurden keine schwerwiegenden Probleme während der Vorabprüfung festgestellt

Starten Sie die Dienste neu.

[root@naemon ~]# systemctl enable npcd
npcd.service ist kein nativer Dienst, wird an /sbin/chkconfig umgeleitet.
Ausführen von /sbin/chkconfig npcd on
[root@naemon ~]# systemctl restart npcd
[root@naemon ~]# systemctl restart naemon

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.