Donnerstag, 4. Februar 2016

Monitoring mal anders..

Kurzvorstellung von zabbix


Jeder von euch kennt die verschiedensten Monitoringlösungen, das bekannteste (und evtl auch das weit verbreiteste?) 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? Nunja, 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 uvm 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 ein paar Ausnahmen auch die gesamte Konfiguration von Zabbix in einer Datenbank liegt, 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 Scenario 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 so sich 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 anzeigen lassen (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 praxisnaher: die USV fällt aus, wir werden benachrichtigt, dass die USV an ist und werden alle 5minuten ü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.

Kommentare:

  1. Zabbix skalieren? Nicht wirklich. Eskalationen in der Theorie, aber in der Praxis leider unbenutzbar.

    AntwortenLöschen
    Antworten
    1. Hallo,
      warum skaliert denn deiner Meinung nach zabbix nicht? Wie groß ist denn deine Umgebung und wo hast du dort Probleme damit du sagen kannst es skaliert nicht? Meine Erfahrungen zeigen das es oft Fehlkonfigurationen sind. Es gibt installationen mit mehreren 100GB-DBs und mehreren 1000NVPS (new values per second).

      Auch die Eskalationen funktionieren hier bei uns einwandfrei, es ist leider nicht sofort logisch ersichtlich wie das funktioniert, guck mal einmal hier rein: https://workaround.org/zabbixescalations/
      Wenn du fragen hast, stehe ich dir gern zur Verfügung.

      Löschen