Serverüberwachung mit Shinken auf Ubuntu 16.04
Shinken ist ein Open-Source-Framework zur Computer- und Netzwerküberwachung, das in Python geschrieben wurde und mit Nagios kompatibel ist. Shinken kann auf allen Betriebssystemen verwendet werden, die Python-Anwendungen wie Linux, Unix und Windows ausführen können. Shinken wurde von Jean Gabes als Proof of Concept für eine neue Nagios-Architektur geschrieben, wurde aber vom Nagios-Autor abgelehnt und wurde zu einem unabhängigen Netzwerk- und Systemüberwachungstool, das mit Nagios kompatibel bleibt.
In diesem Tutorial zeige ich Ihnen, wie Sie Shinken aus der Quelle installieren und einen Linux-Host zum Überwachungssystem hinzufügen. Ich werde Ubuntu 16.04 Xenial Xerus als Betriebssystem für den Shinken-Server und den überwachten Host verwenden.
Schritt 1 – Shinken Server installieren
Shinken ist ein Python-Framework, wir können es mit Pip installieren oder aus der Quelle installieren. In diesem Schritt werden wir Shinken von der Quelle installieren.
Es gibt einige Aufgaben, die erledigt werden müssen, bevor wir mit der Installation von Shinken beginnen.
Installiere einige neue Python-Pakete und erstelle Linux-Benutzer mit dem Namen „shinken“:
sudo apt-get install python-setuptools python-pip python-pycurl useradd -m -s /bin/bash shinken
Laden Sie den Shinken-Quellcode aus dem GitHub-Repository herunter:
git clone https://github.com/naparuba/shinken.git cd shinken/
Installieren Sie dann Shinken mit dem folgenden Befehl:
git checkout 2.4.3 python setup.py install
Als nächstes müssen wir für bessere Ergebnisse ‚python-cherrypy3‘ aus dem Ubuntu-Repository installieren:
sudo apt-get install python-cherrypy3
Jetzt ist Shinken installiert, als nächstes fügen wir Shinken hinzu, um beim Booten zu starten und es zu starten:
update-rc.d shinken defaults systemctl start shinken
Schritt 2 – Shinken Webui2 installieren
Webui2 ist das Shinken-Webinterface, das über shinken.io verfügbar ist. Der einfachste Weg, Sshinken webui2 zu installieren, ist die Verwendung des shinken CLI-Befehls (der als shinken-Benutzer ausgeführt werden muss).
Melden Sie sich beim Shinken-Benutzer an:
su - shinken
Initialisieren Sie die Shinken-Konfigurationsdatei – Der Befehl erstellt eine neue configuration.shinken.ini:
shinken --init
Und installieren Sie webui2 mit diesem shinken CLI-Befehl:
shinken install webui2
Webui2 ist installiert, aber wir müssen MongoDB und ein weiteres Python-Paket mit Pip installieren. Führen Sie den Befehl unten als root aus:
sudo apt-get install mongodb pip install pymongo>=3.0.3 requests arrow bottle==0.12.8
Als nächstes gehen Sie in das shinken-Verzeichnis und fügen das neue webui2-Modul hinzu, indem Sie die Datei „broker-master.cfg“ bearbeiten:
cd /etc/shinken/brokers/ vim broker-master.cfg
Fügen Sie eine neue Option innerhalb des Moduls in Zeile 40 hinzu:
modules webui2
Speichern Sie die Datei und verlassen Sie den Editor.
Gehen Sie nun in das Kontaktverzeichnis und bearbeiten Sie die Datei’admin.cfg‘ für die Admin-Konfiguration.
cd /etc/shinken/contacts/ vim admin.cfg
Ändern Sie die untenstehenden Werte:
contact_name admin # Username 'admin' password yourpass # Pass 'mypass'
Speichern und beenden.
Schritt 3 – Nagios-Plugins und Shinken-Pakete installieren
In diesem Schritt werden wir Nagios-Plugins und einige Perl-Module installieren. Installieren Sie dann zusätzliche Shinken-Pakete von shinken.io, um die Überwachung durchzuführen.
Installieren Sie Nagios-Plugins und cpanminus, die für die Erstellung und Installation der Perl-Module benötigt werden:
sudo apt-get install nagios-plugins* cpanminus
Installieren Sie diese Perl-Module mit dem Befehl cpanm:
cpanm Net::SNMP cpanm Time::HiRes cpanm DBI
Erstellen Sie nun einen neuen Link für die Datei utils.pm, um das Verzeichnis zu shinken und ein neues Verzeichnis für Log_File_Health zu erstellen:
chmod u+s /usr/lib/nagios/plugins/check_icmp ln -s /usr/lib/nagios/plugins/utils.pm /var/lib/shinken/libexec/ mkdir -p /var/log/rhosts/ touch /var/log/rhosts/remote-hosts.log
Als nächstes installieren Sie die shinken-Pakete ssh und linux-snmp zur Überwachung von SSH- und SNMP-Quellen aus shinken.io:
su - shinken shinken install ssh shinken install linux-snmp
Schritt 4 – Hinzufügen eines neuen Linux-Hosts/Host-one
Wir werden einen neuen Linux-Host hinzufügen, der mit einem Ubuntu 16.04-Server mit der IP-Adresse 192.168.1.121 und dem Hostnamen „host-one“ überwacht werden soll.
Verbinden Sie sich mit dem Linux-Host – einer davon:
ssh [email protected]
Installieren Sie die Pakete snmp und snmpd aus dem Ubuntu-Repository:
sudo apt-get install snmp snmpd
Bearbeiten Sie anschließend die Konfigurationsdatei ’snmpd.conf‘ mit vim:
vim /etc/snmp/snmpd.conf
Kommentarzeile 15 und Entkommentierungszeile 17:
#agentAddress udp:127.0.0.1:161 agentAddress udp:161,udp6:[::1]:161
Kommentieren Sie die Zeilen 51 und 53 und fügen Sie dann unten eine neue Leitungskonfiguration hinzu:
#rocommunity mypass default -V systemonly #rocommunity6 mypass default -V systemonly
rocommunity mypass
Speichern und beenden.
Starten Sie nun den snmpd-Dienst mit dem Befehl systemctl:
systemctl start snmpd
Gehen Sie zum Shinken-Server und definieren Sie den neuen Host, indem Sie eine neue Datei im Verzeichnis ‚hosts‘ erstellen.
cd /etc/shinken/hosts/ vim host-one.cfg
Füge die Konfiguration unten ein:
define host{ use generic-host,linux-snmp,ssh contact_groups admins host_name host-one address 192.168.1.121 _SNMPCOMMUNITY mypass # SNMP Pass Config on snmpd.conf }
Speichern und beenden.
Bearbeiten Sie die SNMP-Konfiguration auf dem Shinken-Server:
vim /etc/shinken/resource.d/snmp.cfg
Ändern Sie ‚public‘ in ‚mypass‘ – muss das gleiche Passwort sein, das Sie in der snmpd-Konfigurationsdatei auf dem Client-Host-one verwendet haben.
$SNMPCOMMUNITYREAD$=mypass
Speichern und beenden.
Starten Sie nun beide Server neu – Shinken-Server und den überwachten Linux-Host:
reboot
Der neue Linux-Host wurde erfolgreich auf dem Shinken-Server hinzugefügt.
Schritt 5 – Zugriff auf Shinken Webui2
Besuchen Sie das Shinken webui2 auf Port 7677 (ersetzen Sie die IP in der URL durch Ihre IP):
Melden Sie sich mit dem Benutzer admin und Ihrem Passwort (das Sie in der Konfigurationsdatei admin.cfg festgelegt haben) an.
Shinken Dashboard in Webui2.
Unsere 2 Server werden mit Shinken überwacht.
Listet alle Dienste auf, die mit linux-snmp überwacht werden.
Status aller Hosts und Dienste.
Schritt 6 – Häufige Probleme mit Shinken
– Probleme mit dem NTP-Server
Wenn Sie diesen Fehler mit NTP erhalten.
TimeSync - CRITICAL ( NTP CRITICAL: No response from the NTP server) TimeSync - CRITICAL ( NTP CRITICAL: Offset unknown )
Um dieses Problem zu lösen, installieren Sie ntp auf allen Linux-Hosts.
sudo apt-get install ntp ntpdate
Bearbeiten Sie die ntp-Konfiguration:
vim /etc/ntp.conf
Kommentiere alle Pools und ersetze sie durch:
#pool 0.ubuntu.pool.ntp.org iburst #pool 1.ubuntu.pool.ntp.org iburst #pool 2.ubuntu.pool.ntp.org iburst #pool 3.ubuntu.pool.ntp.org iburst
pool 0.id.pool.ntp.org
pool 1.asia.pool.ntp.org
pool 0.asia.pool.ntp.org
Als nächstes fügen Sie eine neue Zeile innerhalb von restrict hinzu:
# Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict 192.168.1.120 #shinken server IP address restrict ::1
HINWEIS: 192.168.1.120 ist die IP-Adresse des Shinken-Servers.
Speichern und beenden.
Starten Sie ntp und überprüfen Sie das Shinken Dashboard:
ntpd
– Problem check_netint.pl Nicht gefunden
Laden Sie den Quellcode aus dem github-Repository in das shinken lib-Verzeichnis herunter:
cd /var/lib/shinken/libexec/ wget https://raw.githubusercontent.com/Sysnove/shinken-plugins/master/check_netint.pl chmod +x check_netint.pl chown shinken:shinken check_netint.pl
– Problem mit der Netzwerknutzung
Es gibt eine Fehlermeldung:
ERROR : Unknown interface eth\d+
Überprüfen Sie Ihre Netzwerkschnittstelle und bearbeiten Sie die linux-snmp-Vorlage.
Auf meinem Ubuntu-Server ist die Netzwerkschnittstelle’enp0s8′, nicht eth0, also habe ich diesen Fehler bekommen.
Bearbeiten Sie die linux-snmp Vorlagenpakete mit vim:
vim /etc/shinken/packs/linux-snmp/templates.cfg
Fügen Sie die Netzwerkschnittstelle zu Zeile 24 hinzu:
_NET_IFACES eth\d+|em\d+|enp0s8
Speichern und beenden.