3 Auslöser
Übersicht
Auslöser sind logische Ausdrücke, die von Datenpunkten gesammelte Daten "auswerten" und den aktuellen Systemzustand darstellen.
Während Datenpunkte dazu verwendet werden, Systemdaten zu erfassen, 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 können Sie einen 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 Status des Auslösers. |
| Problem | Es ist etwas passiert. Zum Beispiel ist die Prozessorlast zu hoch. |
| Unknown | Der Wert des Auslösers 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 mehrerer Funktionen und mehrerer Schwellenwerte 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 für die Verarbeitung der Funktionen date and time und/oder nodata() erreicht 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 Verlauf des Datenpunkts verweisen. Er ermöglicht es, das für uns relevante Intervall festzulegen. Es kann als Zeitspanne (30s, 10m, 1h) oder als Wertebereich (#5 - für die fünf neuesten Werte) angegeben werden.
Der Auswertungszeitraum wird bis zu "jetzt" gemessen - wobei "jetzt" der letzte Neuberechnungszeitpunkt des Auslösers ist (siehe oben Berechnungszeit); "jetzt" ist nicht die "jetzt"-Zeit des Servers.
Der Auswertungszeitraum legt entweder fest:
- Alle Werte zwischen "jetzt - Zeitspanne" und "jetzt" (oder, mit angewendetem Zeitversatz, zwischen "jetzt - Zeitversatz - Zeitspanne" und "jetzt - Zeitversatz").
- Die angegebene Anzahl von Werten aus der Vergangenheit, bis zu "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 Datenverlauf verweist) verwendet wird, ist "jetzt" 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 betrachtet.
- Ein neuer Auslöser wird berechnet, sobald der erste Wert empfangen wird (Verlaufsfunktionen); 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 festgelegt wurde.
Unbekannter Status
Es ist möglich, dass ein unbekannter Operand in einem Auslöserausdruck 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 (obwohl es einige Ausnahmen gibt). Weitere Details finden Sie unter Ausdrücke mit unbekannten Operanden.
Es ist möglich, Benachrichtigungen zu erhalten, wenn Auslöser unbekannt sind.