Die Netzwerkinfrastruktur gehört wahrscheinlich nicht zu den heißesten Themen im IT-Bereich, nimmt jedoch einen enormen Stellenwert für Administratoren ein. ... (mehr)

Alarme nach Bildern

Grafana löst Alarme nach definierten Regeln innerhalb von Charts aus. Das setzt voraus, dass der überwachte Wert in der grafischen Darstellung auftaucht. Noch fehlen erweiterte Alerting-Funktionen, die nach simplen Regeln außerhalb der grafischen Panele agieren. Für das Dienste-Beispiel würde es eigentlich genügen, wenn lediglich die Metrik "response_time" im Graphen dargestellt wird, der Alarm aber auch über eine simple Abfrage "if result_code is not 0 then alert" startet. Zudem erlaubt Grafana in der Version 6.4.3 Alarm-Trigger nur in Linien-Graphen. Ein Singlestat-Panel, das einen einzelnen Wert wie die CPU-Temperatur in Form eines Tachometers darstellt, kann derzeit keinen Alert auslösen. Die Entwickler wollen das Feature aber in einer der kommenden Versionen einbauen.

Um diese Einschränkung zu umgehen, bedienen Sie sich einfach einiger sehr simpler Tricks. In unserem Beispiel (Bild 3) stellt eine Liniengrafik die Response-Time der zuvor beschriebenen "http_result"-Abfrage grafisch dar. Das Panel zeigt zudem den Wert von "result_code" mit der Mathematikfunktion (*-1). Im Regelbetrieb zeichnet der Graph dann einfach eine Nulllinie zusätzlich, die den Graphen der Response Time nicht stört. Fällt der Dienst aus, zeichnet der Graph die Linie auf -1 weiter, was zu einer auffälligen Treppe nach unten führt, die sofort ein Problem erkennen lässt.

Bild 2: Auf dem Handy des Admins trifft der Grafana-Alarm via Telegram ein. Zwei Minuten später läuft der DNS-Service wieder.

Alarm definieren

In der Konfiguration des Panels führt das Untermenü mit dem Glockensymbol zur Alert-Konfiguration. Der Alarm bekommt einen Namen und eine Evaluation Time. Diese legt fest, wie oft und in welchem Zeitrahmen die Alarmkondition positiv ausfallen muss, bevor Grafana tatsächlich den Alert auslöst. Unser Beispiel prüft den Status der RHV-M-API alle 30 Sekunden über einen Zeitraum von 120 Sekunden.

Anschließend legen Sie die zu prüfenden Bedingungen fest. Das API-Response-Beispiel definiert zwei Alarmkonditionen: Die API reagiert zu langsam oder gar nicht. Die Bedingungen lauten daher "WHEN last() of query C [die Abfrage for den Result_code *-1] is below 0 OR last() of query B [die Abfrage der Response Time] is above 40 (ms)". Zudem gibt es feste Klauseln für "If no data, or all values are 0" und "if execution error or timeout", die sich als Alert-Trigger verwenden lassen. Das ist sehr praktisch, wenn nach einem Dienstausfall gar keine Werte mehr eintreffen. Die normalen Parameter würden dann nämlich keinen Alarm starten. Zu guter Letzt legen Sie noch den zu verwendenden Alarmkanal und den Mitteilungstext fest.

Nach diesem Schema können Sie nun Ihre Alarmkonditionen in den Panelen definieren. Eine weitere Einschränkung ist momentan leider, dass Grafana pro Panel nur einen Alarm zulässt. Wer beispielsweise die Metriken mehrerer Quellen in einem Panel zusammenfasst, kann keine unterschiedlichen Alarme starten.

Zugegeben gibt es bessere Tools als Grafana, um Alarme auf Basis von Metriken auszulösen. Allerdings wollen Administratoren nicht fünf verschiedene Tools benutzen, nur weil das eine besser alarmiert, während ein anderes die Graphen hübscher darstellt. Für den Großteil der simplen Alarme im Rechenzentrum genügen die Grafana-Funktionen.

Die für den Workshop verwendete Testumgebung nutzt neben den vorgestellten Methoden zur Überwachung von Nginx, DNS und dem RHV-Manager auch Alarme für IPMI-Werte wie Temperaturen und Netzteilspannungen. Zudem sammelt Telegraf via SNMP die Metriken einer APC-USV. Grafana löst Alarme aus, wenn die USV auf Batterie umschaltete, die Restlaufzeit unter fünf Minuten fällt oder die USV zu mehr als 90 Prozent belastet ist.

Bild 3: Die Beispielabfrage stellt den "result_code" bildlich dar. Jeder Wert außer "0" soll einen Alarm auslösen.
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023