Monitoring mal anders..
Fr, 11. März 2022, Stefan
Jeder von euch kennt die verschiedensten Monitoringlösungen, das bekannteste (und evtl. auch das weit verbreitetste?) dürfte wohl nagios/icinga sein, darüber hinaus gibt es unter anderem noch Shinken, CheckMK, Zenoss, bloonix, Prometheus, PRTG, WhatsUp um nur einige zu nennen.
Ich möchte euch hier meinen persönlichen Favoriten vorstellen: Zabbix. Warum Zabbix? Nun ja, zuerst Zabbix ist um einiges performanter und ressourcenschonender als viele andere Monitoringsysteme, da es in C geschrieben ist. Zabbix bietet eine einfache Bedienung, da vieles über das integrierte Webfrontend konfiguriert werden kann. SNMP, TelNet, Portabfragen, SSH Abfragen und vieles mehr bietet Zabbix out-of-the-box. Zu den interessanteren Dingen gehören eher Webmonitoring oder Low-Level-Discovery.
Zabbix selbst kann man recht gut skalieren, da man einzelne Teile auf verschiedene Server installieren kann, darunter den Zabbix-Server, den Zabbix Proxy, das Zabbix Webfrontend und die Datenbank. Da alle gesammelten Daten und bis auf wenige Ausnahmen auch die gesamte Konfiguration von Zabbix in einer Datenbank ablegt, steht und fällt mit der Datenbankperformance auch die ganze Performance von Zabbix selbst. Ein Vorteil ist jedoch, dass man sich relativ einfach Reporte und Statistiken erzeugen kann (beispielsweise mit Pentaho Reports) und man muss schon mehrere tausend Hosts haben und relativ lange die Daten speichern, um an einen Engpass zu kommen.
Zabbix kann Webseiten überwachen und man kann damit Szenarien erstellen, somit ist es möglich einen User zu simulieren. Bsp: user kommt auf Seite, loggt sich ein, surft noch ein paar Unterseiten an, bei jedem Szenario kann man den zu erwartenden Statuscode und den zu erwartenden Text angeben, der auf der Seite sein soll. Wenn das nicht der Fall ist, kann man sich entsprechend Alarme ausgeben lassen.
Mittels Low-Level-Discovery (LLD) kann man speziellen Abfragen relativ einfach mehrere Sensoren „scannen“ ohne diese direkt hinzufügen zu müssen, ein kleines Beispiel: Eine SNMP Abfrage ab.cd.1.2.xx listet mir alle Temperatursensoren mit Namen auf, wobei ab.cd.1.3.xx mir die entsprechenden Werte anzeigt. In Zabbix kann man damit relativ einfach die Sensoren mit Namen und Werten anzeigen lassen.
Durch das integrierte Frontend kann man sich auch sehr einfach die Graphen zu Werten anzeigen lassen oder mehrere Graphen gleichzeitig darstellen (Bsp, load, used memory, iowait), so lassen sich schneller Zusammenhänge von Problemen erkennen. Kurz alles, was in einer Zahl in Zabbix ankommt, kann man sich auch problemlos als Graphen darstellen lassen.
Selbstverständlich kann Zabbix auch alarmieren und nach Eskalation handeln; ein (fiktives) Beispiel: Apache2-Server reagiert nicht mehr → Zabbix startet den Dienst neu → geht immer noch nicht, Zabbix schickt eine Nachricht an den Support → nach 30min immer noch nichts → Zabbix startet per IPMI eine Gruppe von Servern neu → zugleich schickt Zabbix eine neue Nachricht an den Support mit „Ich war schneller ;)“. Etwas praxisnäher: die USV fällt aus, wir werden benachrichtigt, dass die USV an ist und werden alle 5 Minuten über den Voltage-Verlauf informiert (mit Graph als Anhang).
Ich hoffe, ich konnte euch einen kleinen Einblick geben und sofern Interesse besteht werde ich zu Zabbix noch Weiterführendes schreiben.
Quelle: https://www.zabbix.com