3 Auslöser

Übersicht

Auslöser sind logische Ausdrücke, die von Daten, die von Datenpunkten erfasst wurden, den Status „auswerten“ und den aktuellen Systemstatus darstellen.

Während Datenpunkte zum Erfassen von Systemdaten verwendet werden, ist es äußerst unpraktisch, diese Daten ständig zu überwachen und auf eine Bedingung zu warten, die alarmierend ist oder Aufmerksamkeit verdient. Die Aufgabe der „Auswertung“ der Daten kann Auslöserausdrücken überlassen werden.

Mit Auslöserausdrücken können Sie einen Schwellenwert dafür definieren, welcher Datenstatus „akzeptabel“ ist. Überschreiten die eingehenden Daten den akzeptablen Status, wird ein Auslöser „ausgelöst“ – oder wechselt in den Status PROBLEM.

Ein Auslöser kann den folgenden Status haben:

Status Beschreibung
OK Dies ist ein normaler Auslöserstatus.
Problem Etwas ist passiert. Beispielsweise ist die Prozessorlast zu hoch.
Unknown Der Auslöserwert kann nicht berechnet werden. Siehe Status Unknown.

Bei einem einfachen Auslöser möchten wir möglicherweise einen Schwellenwert für den Fünfminutenmittelwert bestimmter Daten festlegen, beispielsweise für die CPU-Auslastung. Dies wird erreicht, indem ein Auslöserausdruck definiert wird, bei dem:

  • die Funktion „avg“ auf den im Datenpunktschlüssel empfangenen Wert angewendet wird
  • ein Zeitraum von fünf Minuten für die Auswertung verwendet wird
  • ein Schwellenwert von „2“ festgelegt wird
    avg(/host/key,5m)>2

Dieser Auslöser wird „ausgelöst“ (wechselt in den Status PROBLEM), wenn der Fünfminutenmittelwert über 2 liegt.

Bei einem komplexeren Auslöser kann der Ausdruck eine Kombination mehrerer Funktionen und mehrerer Schwellenwerte enthalten. Siehe auch: Auslöserausdruck.

Für Datenpunkte, die Werte mit dem binären Datentyp zurückgeben, können keine Auslöser erstellt werden.

Nachdem ein Auslöser aktiviert wurde (indem sein Konfigurationsstatus von Disabled auf Enabled geändert wird), wird der Auslöserausdruck ausgewertet, sobald ein darin enthaltener Datenpunkt einen Wert erhält oder die Zeit zur Verarbeitung der Funktionen date and time und/oder nodata() gekommen ist.

Most trigger functions are evaluated based on item value history data, while some trigger functions for long-term analytics, e.g. trendavg(), trendcount(), etc, use trend data.

Berechnungszeit

Ein Auslöser wird jedes Mal neu berechnet, wenn der Zabbix Server einen neuen Wert empfängt, der Teil des Ausdrucks ist. Wenn ein neuer Wert empfangen wird, wird jede Funktion, die im Ausdruck enthalten ist, neu berechnet (nicht nur diejenige, die den neuen Wert empfangen hat).

Zusätzlich wird ein Auslöser jedes Mal neu berechnet, wenn ein neuer Wert empfangen wird, und alle 30 Sekunden, wenn Datum und Uhrzeit und/oder nodata()-Funktionen im Ausdruck verwendet werden.

Datum und Uhrzeit und/oder nodata()-Funktionen werden vom Zabbix history syncer-Prozess alle 30 Sekunden neu berechnet.

Auslöser, die nur Trendfunktionen referenzieren, werden einmal pro kleinstem Zeitintervall im Ausdruck ausgewertet. Siehe auch Trendfunktionen.

Auswertungszeitraum

Ein Auswertungszeitraum wird in Funktionen verwendet, die auf den Datenpunktverlauf verweisen. Damit können Sie das gewünschte Intervall angeben. Es kann als Zeitraum (30s, 10m, 1h) oder als Wertebereich (#5 – für die fünf neuesten Werte) angegeben werden.

Der Auswertungszeitraum wird bis „jetzt“ gemessen – wobei „jetzt“ der Zeitpunkt der letzten Neuberechnung des Auslösers ist (siehe Berechnungszeit oben); „jetzt“ entspricht nicht dem Zeitpunkt „jetzt“ des Servers.

Der Auswertungszeitraum gibt entweder Folgendes an:

  • Alle Werte zwischen „jetzt – Zeitraum“ und „jetzt“ (oder bei angewendeter Zeitverschiebung zwischen „jetzt – Zeitverschiebung – Zeitraum“ und „jetzt – Zeitverschiebung“).
  • Die angegebene Anzahl von Werten aus der Vergangenheit bis „jetzt“.

Wenn für den angegebenen Auswertungszeitraum keine Daten vorhanden sind, wird der Auslöser oder der berechnete Datenpunkt, der diese Funktion verwendet, nicht unterstützt.

Beachten Sie:

  • Wenn im Auslöser nur eine einzelne Funktion (die auf den Datenpunktverlauf verweist) verwendet wird, ist „jetzt“ immer der zuletzt empfangene Wert. Wenn beispielsweise der letzte Wert vor einer Stunde empfangen wurde, wird der Auswertungszeitraum bis zu diesem vor einer Stunde empfangenen Wert betrachtet.
  • Ein neuer Auslöser wird berechnet, sobald der erste Wert empfangen wird (Verlaufsfunktionen); bei Datums- und Zeitfunktionen sowie der Funktion nodata() wird er innerhalb von 30 Sekunden berechnet. Daher wird der Auslöser berechnet, auch wenn der festgelegte Auswertungszeitraum (z. B. eine Stunde) seit der Erstellung des Auslösers möglicherweise noch nicht verstrichen ist. Der Auslöser wird auch nach dem ersten Wert berechnet, selbst wenn der Auswertungsbereich beispielsweise auf die zehn neuesten Werte festgelegt wurde.

Unbekannter Status

Es ist möglich, dass in einem Auslöserausdruck ein unbekannter Operand erscheint, wenn:

  • ein nicht unterstützter Datenpunkt verwendet wird
  • die Funktionsauswertung für einen unterstützten Datenpunkt zu einem Fehler führt

In diesem Fall wird ein Auslöser im Allgemeinen als "unknown" ausgewertet (es gibt jedoch einige Ausnahmen). Weitere Informationen finden Sie unter Ausdrücke mit unbekannten Operanden.

Es ist möglich, Benachrichtigungen zu erhalten, wenn Auslöser unbekannt sind.