Print
Category: Raspberry Pi
Hits: 59725

Spätestens wenn mehrere Server in ihrem Netzwerk Ihren Dienst verrichten sollen, steigt der Bedarf an Monitoring. Dabei ist es gar notwendig einen hochgezüchteten Server für das Monitoring einzusetzen, sondern es reicht ein handelsüblicher Raspberry Pi. Ist dieser einmal konfiguriert, verrichtet er seinen Dienst überaus verlässlich und verbraucht wenig Energie. Zudem sind die Anschaffungskosten denkbar gering. Als Monitoring Software eignet sich für dieses Umfeld Nagios, welches in punkto Leistung und Übersichtlichkeit professionellen Lösungen in nichts nachsteht. Steht einmal die anfängliche Konfiguration des Nagios Servers, werden Netzwerkprobleme und Serverausfälle verlässlich angezeigt und dokumentiert, sodass durch ein schnelles Eingreifen etwaige Störungen behoben werden können. Nicht zuletzt fördert ein konsequentes Monitoring auch die IT Sicherheit, denn auf einen Angriff auf Netzwerkteilnehmer kann so schnell reagiert werden.
Nagios wird seit seinem Start in Jahr 1999 kontinuierlich weiterentwickelt. Zudem handelt es sich um ein Open Source Projekt, welches in der einfachen Basisvariante kostenlos zur Nutzung zur Verfügung steht.
Nagios deckt aufgrund der zahlreichen Plugins ein weites Feld an denkbaren Szenarien ab. Soll neben SSH Zugängen und Webservern beispielsweise auch die CPU Auslastung oder Speicherauslastung überwacht werden, ist die Installation der entsprechenden Plugins nötig, welches recht einfach handzuhaben ist. In manchen Fällen ist die Installation eines Remote Servers auf den zu überwachenden Host erforderlich. Beides, die Nutzung bereits vorhandener Plugins als auch die Installation des NRPE Remote Servers soll in dieser Anleitung besprochen werden.

1. Vorbereiten des Raspberry Pis für die Installation

1.1 Zunächst stellen wir sicher, dass unser Raspberry Pi auf dem aktuellen Stand ist und laden uns die aktuellen Updates herunter

sudo apt update
sudo apt full-upgrade

1.2  Als nächsten gilt es die Nagios Programmpakete von Nagios mit folgendem Befehl herunterzuladen. Die Pakete umfassen den Compiler,
den Apache Weiserer und dessen Abhängigkeiten.

sudo apt install -y autoconf build-essential wget unzip apache2 apache2-utils php libgd-dev snmp libnet-snmp-perl gettext libssl-dev wget bc gawk dc libmcrypt-dev

 

2. Download und Kompilieren

2.1 Vor dem Download wechseln wir zunächst in des /tmp Verzeichnis, in welches wir den Download starten und das Programm  entpacken und kompilieren.

cd /tmp

2.2 Nun folgt der Download mit dem Befehl

wget -O nagios.tar.gz https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.6.tar.gz

2.3 Das Entpacken des soeben heruntergeladenen Paktes erfolgt mit dem Befehl

tar xzf nagios.tar.gz

2.4 Nachdem Entpacken wechseln wir mit

cd /tmp/nagioscore-nagios-4.4.6/

ins das Verzeichnis mit den Programmdateien. Danach konfigurieren wir die Software für den Kompilierungsprozess.

./configure --with-httpd-conf=/etc/apache2/sites-enabled

2.5 Wir starten den Kompilierung mit dem Befehl

make all

 

3. Installation und Setup

3.1 Mit folgendem Befehl werden Benutzer und Gruppe erstellt:

sudo make install-groups-users
sudo usermod -a -G nagios www-data

3.2 Nun sollten wir in der Lage sein den Nagios Server zu installieren:

sudo make install

3.3 Nach Abschluss der Installation erstellen wir einen Nagios Service

sudo make install-daemoninit

3.4 Es folgenden die Befehle

sudo make install-commandmode
sudo make install-config

3.5 Danach werden die Apache Konfigurationsdateien erstellt:

sudo make install-webconf
sudo a2enmod rewrite
sudo a2enmod cgi

3.6 Zum Abschluss werden wir einen User mit dem Namen nagiosadmin zum Apache Server hinzufügen

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Zu beachten ist, dass bei der Namensgebung der Name nagiosadmin verwendet werden muss.

 

4. Nagios starten

4.1 Bevor wir Nagios starten können, muss zunächst der Apache Server, den wir weiter oben installiert haben neu gestartet werden.

sudo systemctl restart apache2

4.2 Als nächstens starten wir Nagios mit dem Befehl:

sudo systemctl enable nagios
sudo systemctl start nagios

4.3 Wir können nun den Status von Nagios abfragen, indem wir den folgenden Befehl benutzen

sudo systemctl status nagios

 

5. Installation der Nagios Plugins

5.1 Zunächst wechseln wir ins /tmp Verzeichnis

cd /tmp

5.2 Dann laden wir uns die Plugins herunter, die wir im /tmp Ordner abspeichern.

wget -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.3.3/nagios-plugins-2.3.3.tar.gz

5.3 das Entpacken erfolgt mit dem Befehl

tar zxf nagios-plugins.tar.gz

5.4 Nun wechseln wir ins soeben angelegte Verzeichnis und konfigurieren die Plugins für die folgende Kompilierung

cd /tmp/nagios-plugins-2.3.3
./configure

5.5 Nun starten wir die Kompilierung

make

5.6 Im Anschluss starten wir die Installation mit dem Befehl

sudo make install

5.7 Als letzten Schritt starten wir den Nagios Systemdienst neu

sudo systemctl restart nagios

 

6. Aufrufen des Nagios Servers im Webbrowser

6.1 Wir erfragen die IP-Adresse des Raspberry Pis mit dem Befehl

ifconfig

6.2 und rufen danach das Nagios Interface im Browser auf

http://[IP-Adresse]/nagios

 

7. Installation des NRPE Remote Servers

7.1 Für die Installation des Remote Servers auf unserm zweiten Raspberry laden wir zunächst die aktuellen Updates herunter und anschließend den NRPE Server

sudo apt update
sudo apt install nagios-nrpe-server nagios-plugins

7.2 Um die Anfragen des Nagios Servers mit Hilfe des Remote Servers beantworten zu können, muss die Konfigurationsdatei um die IP Adresse des Servers ergänzt werden.

sudo nano /etc/nagios/nrpe.cfg

7.3 Nun fügen wir die entsprechende IP-Adresse an die Folgende Stelle hinzu

allowed_hosts=127.0.0.1, [IP-Adresse]

7.4 Als nächstens starten wir den Remote Sever neu

sudo /etc/init.d/nagios-nrpe-server restart

7.5. Nachdem die Konfiguration erledigt ist, können wir die Verbindung zwischen dem Nagios Server und dem NRPE Remote Server testen. Dazu wechseln wir in den Plugins Verzeichnis des Nagios Servers und geben folgenden Befehl ein:

cd /usr/local/nagios/libexec/
./check_nrpe -H 192.168.1.11

Ist die Einrichtung korrekt erhalten wir als Ausgabe die Aktuelle Versionsnummer, beispielsweise

NRPE v3.2.1

7.6 Sobald weitere Änderungen an der Konfigurationsdatei vorgenommen werden, muss der NRPE Server neu gestartet werden. Mit folgenden Befehlen können wir den Service steuern.

sudo /etc/init.d/nagios-nrpe-server stop
sudo /etc/init.d/nagios-nrpe-server start
sudo /etc/init.d/nagios-nrpe-server Restart

 

8. Hinzufügen des Remote Hosts zum Nagios Monitoring Server

8.1 Zunächst legen die zwei Dateien hosts.cfg and services.cfg an und wechseln in das Verzeichnis

cd /usr/local/nagios/etc/
touch hosts.cfg
touch services.cfg

8.2 Nun fügen wir die zwei Dateien zur Nagios Konfigurationsdatei hinzu. Dazu öffnen wir die nagios.cfg und fügen die folgenden zwei Zeilen hinzu.

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

cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg

8.3 Als nächstens öffnen wir die hosts.cfg Datei

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

und fügen folgenden Inhalt hinzu. Anschließend ändern wir host_name, alias und adress Felder an unsere Gegebenheiten.

## Default Linux Host Template ##
define host{
name                             linux-box                         ; Name of this template
use                                generic-host                    ; Inherit default values
check_period                  24x7       
check_interval                 5      
retry_interval                  1      
max_check_attempts       10     
check_command             check-host-alive
notification_period           24x7   
notification_interval          30     
notification_options          d,r    
contact_groups                admins 
register                           0                                    ; DONT REGISTER THIS - ITS A TEMPLATE
}

## Default
define host{
use                                  linux-box
host_name                       Raspberry
alias                                Raspberry
address                            192.168.1.134
}

8.4 Wir öffnen nun die Datei services.cfg

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

und fügen des folgenden Inhalt hinzu:

define service{
        use                             generic-service
        host_name                   raspberry
        service_description        CPU Load
        check_command           check_nrpe!check_load
        }

define service{
        use                             generic-service
        host_name                  raspberry
        service_description       Total Processes
        check_command           check_nrpe!check_total_procs
        }

define service{
        use                              generic-service
        host_name                   raspberry
        service_description        Current Users
        check_command           check_nrpe!check_users
        }

define service{
        use                              generic-service
        host_name                   raspberry
        service_description        SSH Monitoring
        check_command           check_nrpe!check_ssh
        }

define service{
        use                              generic-service
        host_name                    raspberry
        service_description         FTP Monitoring
        check_command           check_nrpe!check_ftp
        }


8.5 Abschließend öffnen und modifizieren wir die commands.cfg Datei, indem die folgenden Zeilen hinzugefügt werden

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

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


8.6 Sind alle Konfigurationen abgeschlossen verifizieren wir unsere Installation mit dem Befehl

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

und starten den Nagios Server neu

sudo service nagios Restart

 

Literatur:

https://pimylifeup.com/raspberry-pi-nagios/

https://www.tecmint.com/how-to-add-linux-host-to-nagios-monitoring-server/

https://tecadmin.net/install-nrpe-on-ubuntu/