System Monitoring gehört heutzutage mit dazu, um einschreiten zu können, bevor der Kunde anruft. Es gibt zahlreiche Möglichkeiten wie netways oder Icinga2 im Open Source Bereich. Für mehrere Server würde ich Icinga2 empfehlen. Die Grunddaten des Servers lassen sich dabei z.B. via SNMP Freigaben abfragen – egal ob Windows oder Linux. Hier ein kurzes How-To, wie man viel aus ein paar Open Source Add-Ons beim Servermonitoring mittels Icinga2 und SNMP herausholen kann. Meine Installationsanleitung gilt für Debian 9.
Icinga2 installieren
Wie man Icinga2 installiert, ist nicht Teil dieses Beitrags, aber auch nicht sonderlich schwer. Über Google findest du zahlreiche Anleitungen. Wer Icinga2 über nginx betreiben möchte, wird auch bei mir fündig. Du solltest für die Installation von icinga2 und icinga2-web die offizielles Packages deines Debian Repos nehmen.
SNMP installieren
Nachdem Icinga2 läuft, solltest du auf jedem Server, der via SNMP überwacht werden muss, die Software installieren. Dafür benötigst du die Pakete:
- snmp
- snmpd
- snmp-mibs-downloader
Letzteres kannst du nur installieren, wenn du bei deinen offiziellen Debian Repos non-free in der Sources.list hinzufügst, z.B.
deb http://ftp.de.debian.org/debian/ stretch main contrib non-free
Abschließend musst du SNMP einrichten bzw. erstmals starten. Unter /etc/snmp/snmpd.conf musst du folgende Einstellungen vornehmen:
# snmp lauscht nur auf ipv4 agentAddress udp:161 rocommunity secret_passwort IP_Adresse com2sec readonly IP_Adresse secret_passwort
Als secret_passwort setzt du einen zufälligen String, den du nur einmal bei Icinga2 festlegen musst – also Passwort Generator! Bei IP_Adresse setzt du die IP des Icinga2 Servers (bsp.: 188.68.57.230/32). Das war´s auch schon. Speichern und dann snmpd starten.
SNMP bei Icinga2 einrichten
Als Grundlage für SNMP verwende ich bei Icinga2 die Centreon Plugins, da sie wesentlich besser arbeiten als die mitgelieferten SNMP-Plugins. Erstellt irgendwo einen Ordner (z.B. /home/icinga2) und macht einen git-checkout der Plugins. Weißt dem kompletten Ordner den Nutzer und die Gruppe nagios zu (chown -R nagios:nagions centreon-plugins/*).
Abschließend müsst ihr Icinga2 die Bibliothek der Plugins näher bringen. Dafür öffnet ihr /etc/icinga2/conf.d/commands.conf und fügt meine Gist-Liste ein. Ich habe nicht alle Plugins, die Centreon bietet, in Icinga2 Befehle umgewandelt, aber das Prinzip ist einfach und sollte adaptierbar sein.
Nun Icinga2 neu laden. Damit Icinga2 Services via Centreon SNMP überwachen kann, muss der Name des Befehls im Service als command Parameter verwendet werden, z.B.:
object Service "snmp-cpu" { host_name = "Platon" vars.snmp_community = "secret_passwort" vars.snmp_warn = "80" vars.snmp_crit = "90" check_command = "centreon-snmp-cpu" }
Sicherheit bei SNMP
Egal ob Windows oder Linux: sichert den SNMP Port auf dem Remote Server ab! Es sollte nur die IP des Icinga2 Servers auf die SNMP Schnittstelle zugreifen dürfen. Bei Linux z.B. mittels iptables:
iptables -A INPUT -s Icinga2_IP -p udp --dport 161 -j ACCEPT iptables -A OUTPUT -d Icinga2_IP -p udp --dport 161 -j ACCEPT