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/