3 Auslöser
Übersicht
Auslöser sind logische Ausdrücke, die von Datenpunkten gesammelte Daten "auswerten" und den aktuellen Systemzustand darstellen.
Während Datenpunkte verwendet werden, um Systemdaten zu sammeln, ist es äußerst unpraktisch, diese Daten ständig zu verfolgen und auf eine Bedingung zu warten, die alarmierend ist oder Aufmerksamkeit verdient. Die Aufgabe des "Auswertens" von Daten kann an Auslöser-Ausdrücke übergeben werden.
Mit Auslöser-Ausdrücken lässt sich ein Schwellenwert dafür definieren, welcher Zustand von Daten "akzeptabel" ist. Wenn die eingehenden Daten diesen akzeptablen Zustand überschreiten, wird ein Auslöser "ausgelöst" - oder sein Status ändert sich zu PROBLEM.
Ein Auslöser kann den folgenden Status haben:
| Status | Beschreibung |
|---|---|
| OK | Dies ist ein normaler Auslöserstatus. |
| Problem | Es ist etwas passiert. Zum Beispiel ist die Prozessorlast zu hoch. |
| Unknown | Der Auslöserwert kann nicht berechnet werden. Siehe Unknown status. |
Bei einem einfachen Auslöser möchten wir möglicherweise einen Schwellenwert für einen Fünf-Minuten-Durchschnitt einiger Daten festlegen, zum Beispiel der CPU-Last. Dies wird erreicht, indem ein Auslöser-Ausdruck definiert wird, bei dem:
- die Funktion 'avg' auf den im Datenpunkt-Schlü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" (wird zu PROBLEM), wenn der Fünf-Minuten-Durchschnitt über 2 liegt.
Bei einem komplexeren Auslöser kann der Ausdruck eine Kombination aus mehreren Funktionen und mehreren Schwellenwerten enthalten. Siehe auch: Trigger expression.
Auslöser können nicht für Datenpunkte erstellt werden, die Werte mit dem binären data type zurückgeben.
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 sich auf den Datenpunkthistorie beziehen. Er ermöglicht es, das interessierende Intervall festzulegen. Er kann als Zeitspanne (30s, 10m, 1h) oder als Wertebereich (#5 - für die fünf neuesten Werte) angegeben werden.
Der Auswertungszeitraum wird bis "now" gemessen - wobei "now" der Zeitpunkt der letzten Neuberechnung des Auslösers ist (siehe oben Berechnungszeit); "now" ist nicht die "now"-Zeit des Servers.
Der Auswertungszeitraum legt entweder fest:
- Alle Werte zwischen "now - Zeitspanne" und "now" (oder, mit angewendetem Zeitversatz, zwischen "now - Zeitversatz - Zeitspanne" und "now - Zeitversatz").
- Die angegebene Anzahl von Werten aus der Vergangenheit, bis "now".
Wenn für den angegebenen Auswertungszeitraum keine Daten vorhanden sind, wird der Auslöser oder das berechnete Element, das diese Funktion verwendet, nicht unterstützt.
Beachten Sie:
- Wenn im Auslöser nur eine einzelne Funktion (die auf die Datenpunkthistorie verweist) verwendet wird, ist "now" immer der zuletzt empfangene Wert. Wenn der letzte Wert beispielsweise vor einer Stunde empfangen wurde, wird der Auswertungszeitraum als bis zum letzten Wert vor einer Stunde liegend betrachtet.
- Ein neuer Auslöser wird berechnet, sobald der erste Wert empfangen wird (Historienfunktionen); für die Funktionen date and time und nodata() wird er innerhalb von 30 Sekunden berechnet. Daher wird der Auslöser auch dann berechnet, wenn der festgelegte Auswertungszeitraum (zum Beispiel 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 gesetzt 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.