Neben LibreNMS für die Langzeitüberwachung ist die Tage eine weitere Instanz für das Monitoring hinzugekommen. Neben dem Wunsch auch gezielt Ports oder Dienste zu überwachen war Neugierde ein weiterer Beweggrund. Gerät einschalten und es geht oder geht nicht ist halt mittlerweile nicht mehr so einfach. Dazwischen gibt es immer mehr mögliche Fehlerquellen oder Ursachen welche den regulären Betrieb in Teilen einschränken oder gar unbenutzbar werden lassen. Nun betreibe ich kein Rechenzentrum oder stelle Hochverfügbarkeitsdienste zur Verfügung. Es ist aber trotzdem ein beruhigendes Gefühl zu wissen, daß alles reibungslos funktioniert. Nach etwas Überlegungen meinerseits und intensiven Austausch mit einem Bekannten haben wir uns für Icinga Web 2 entschieden. Schon während der Installation mekt man, daß sowas nicht “mal eben” gemacht wird. Ich als relativ GUI-verwöhnter Mensch musste mich auch erst damit anfreunden, daß nicht alles über eine hübsche Oberfläche machbar ist. Auch bei dem ersten Anlegen eines Hosts bleibt es textlastig. Geräte, Dienste oder Anwendungen welche man gezielt überwachen möchte werden unter /etc/icinga2/conf.d/hosts/ als *.conf – Dateien angelegt. Exemplarisch die Konfigurationsdatei meiner Synology DS415+
object Host "Synology DS415+"{
import "generic-host"
address = "10.1.1.14"
}
object Service "SSH"{
host_name = "Synology DS415+"
check_command = "ssh"
}
object Service "DSM SSL"{
host_name = "Synology DS415+"
check_command = "http"
vars.http_ssl = "1"
vars.http_port = "5001"
}
object Service "DSM PLAIN"{
host_name = "Synology DS415+"
check_command = "http"
vars.http_port = "5000"
}
object Service "RSYNC"{
host_name = "Synology DS415+"
check_command = "tcp"
vars.tcp_port = "873"
}
object Service "HyperBackup"{
host_name = "Synology DS415+"
check_command = "tcp"
vars.tcp_port = "6281"
}
object Service "Freigabe NetBackup"{
host_name = "Synology DS415+"
check_command = "disk_smb"
vars.disk_smb_port = "445"
vars.disk_smb_hostname = "DS415"
vars.disk_smb_share = "NetBackup"
vars.disk_smb_username = "user"
vars.disk_smb_password = "password"
vars.disk_smb_wused = "85"
vars.disk_smb_cused = "95"
}
Hier werden die “üblichen” Dienste in das Monitoring aufgenommen. Der erste Block inkludiert auch die Abfrage über Ping. Für den zweiten Block SSH sind keine weiteren Parameter nötig. Interessant ist der dritte Block. Eine Abfrage per HTTP (wir wollen wissen ob DSM erreichbar ist), das es sich um eine SSL-Verschlüsselte Verbindung (vars.http_ssl = “1”) und einen abweichenden Port -nämlich 5001- handelt. Analog das ganze für DSM ohne Verschlüsselung. Die Objekte RSYNC und HyperBackup überwachen die Ports welche von den Diensten genutzt werden. Im letzten Block wird definiert ob eine Freigabe erreichbar ist. Unter vars.disk_smb_username und vars.disk_smb_password müsst ihr natürlich einen User/PW eingeben welcher das Recht hat um auf die Freigabe zugreifen zu dürfen.
Zumindest die Anzeige der Parameter und Zustände kann man sich grafisch auf einer einfachen übersichtlichen Weboberfläche angucken.
Icinga2 ist unheimlich mächtig, aber deswegen auch erstmal schwer zu verstehen. Ich bin froh wenn ich die mir wichtigsten Dienste und Anwendungen überprüfen kann, ohne gleich 2 Semester Icinga studieren zu müssen. Der Vorteil liegt aber deutlich auf der Hand. Man sieht mehr zwischen “Geht” und “Geht nicht”. Als Unterbau dient mir ein minimales Debian 10.4 welches sehr Ressourcenschonend ist. Die VM läuft auf einer Synology DS1019+ mit 256MB RAM sehr vernünftig. Nachteil: fällt die DS1019+ aus, ist auch Essig mit Monitoring. 🙂
Das ganze könnte man jetzt noch wunderbar beispielsweise mit InfluxDB verknüpfen und mit Prometheus oder Grafana grafisch visualisiert aufbereiten. Erste Versuche sind aber gescheitert, weil ich der DB keine vernünftigen und vor allen Dingen vergleichbaren Metriken entlocken konnte. Jeder angelegte Host hatte unterschiedliche Werte auf der Zeit,- als auch Datenachse. Sieht zwar schön aus, aber ein direkter Vergleich zwischen den Systemen kommt so nicht zustande.
Aber das ganze macht man auch nicht “mal eben”….
Pingback: LibreNMS mit Nagios-Plugins | Mein kleiner Blog