7 Berechnete Datenpunkte
Übersicht
Ein berechneter Datenpunkt ermöglicht es, eine Berechnung auf Grundlage der Werte einiger vorhandener Datenpunkte zu erstellen. Zum Beispiel möchten Sie möglicherweise den stündlichen Durchschnitt eines Datenpunktwerts berechnen oder den Gesamtwert für eine Gruppe von Datenpunkten ermitteln. Genau dafür ist ein berechneter Datenpunkt gedacht.
Berechnungen können Folgendes verwenden:
- einzelne Werte individueller Datenpunkte
- einen komplexen Filter zur Auswahl mehrerer Datenpunkte für die Aggregation (siehe aggregierte Berechnungen für Details)
Berechnete Datenpunkte sind eine Möglichkeit, virtuelle Datenquellen zu erstellen. Alle Berechnungen werden ausschließlich vom Zabbix Server durchgeführt. Die Werte werden periodisch auf Grundlage des verwendeten arithmetischen Ausdrucks berechnet.
Die resultierenden Daten werden wie bei jedem anderen Datenpunkt in der Zabbix-Datenbank gespeichert; sowohl Verlaufs- als auch Trendwerte werden gespeichert, und es können Diagramme erzeugt werden.
Wenn das Berechnungsergebnis ein Float-Wert ist, wird es auf eine Ganzzahl gekürzt, wenn der Typ der Informationen des berechneten Datenpunkts Numerisch (ohne Vorzeichen) ist.
Wenn sich außerdem keine aktuellen Daten im Cache befinden und in der Funktion kein Abfragezeitraum definiert ist, geht Zabbix standardmäßig bis zu eine Woche in die Vergangenheit zurück, um die Datenbank nach historischen Werten abzufragen.
Berechnete Datenpunkte verwenden dieselbe Syntax wie Auslöser-Ausdrücke. Wenn Sie mit Auslöser-Ausdrücken vertraut sind, können Sie sich berechnete Datenpunkte als Funktionen vorstellen, die einige Werte analysieren, jedoch ohne den Vergleich mit einem Schwellenwert.
Der Vergleich mit Zeichenfolgen ist in berechneten Datenpunkten zulässig. Berechnete Datenpunkte können wie jeder andere Datenpunkttyp durch Makros oder andere Entitäten referenziert werden.
Um berechnete Datenpunkte zu verwenden, wählen Sie den Datenpunkttyp Calculated.
Konfigurierbare Felder
Der Schlüssel ist eine eindeutige Datenpunkt-Kennung (pro Host). Sie können einen beliebigen Schlüsselnamen unter Verwendung der unterstützten Symbole erstellen.
Die Berechnungsdefinition sollte im Feld Formel eingegeben werden. Es besteht keine Verbindung zwischen der Formel und dem Schlüssel. Die Schlüsselparameter werden in der Formel in keiner Weise verwendet.
Die Syntax einer einfachen Formel lautet:
function(/host/key,<parameter1>,<parameter2>,...)
wobei:
| Element | Beschreibung |
|---|---|
function |
Eine der unterstützten Funktionen: last, min, max, avg, count usw. |
host |
Host des Datenpunkts, der für die Berechnung verwendet wird. Der aktuelle Host kann weggelassen werden (d. h. wie in function(//key,parameter,...)). |
key |
Schlüssel des Datenpunkts, der für die Berechnung verwendet wird. Datenpunkte, die Werte mit dem Datentyp Binär oder JSON zurückgeben, werden nicht unterstützt. |
parameter(s) |
Parameter der Funktion, falls erforderlich. Zeitsuffixe und Speichergrößen-Suffixe werden unterstützt. |
Benutzermakros in der Formel werden erweitert, wenn sie zur Referenzierung eines Funktionsparameters, eines Datenpunkt-Filterparameters oder einer Konstante verwendet werden. Benutzermakros werden NICHT erweitert, wenn sie sich auf eine Funktion, einen Hostnamen, einen Datenpunkt-Schlüssel, einen Datenpunkt-Schlüsselparameter oder einen Operator beziehen.
Eine komplexere Formel kann eine Kombination aus Funktionen, Operatoren und Klammern verwenden. Sie können alle Funktionen und Operatoren verwenden, die in Auslöser-Ausdrücken unterstützt werden. Die Logik und die Operatorrangfolge sind exakt dieselben.
Im Gegensatz zu Auslöser-Ausdrücken verarbeitet Zabbix berechnete Datenpunkte entsprechend dem Aktualisierungsintervall des Datenpunkts und nicht beim Empfang eines neuen Werts.
Alle Datenpunkte, auf die durch Verlaufsfunktionen in der Formel des berechneten Datenpunkts verwiesen wird, müssen vorhanden sein und Daten erfassen. Wenn Sie außerdem den Datenpunkt-Schlüssel eines referenzierten Datenpunkts ändern, müssen Sie alle Formeln, die diesen Schlüssel verwenden, manuell aktualisieren.
Ein berechneter Datenpunkt kann in mehreren Fällen nicht unterstützt werden:
- referenzierte(r) Datenpunkt(e)
- wird/werden nicht gefunden
- ist/sind deaktiviert
- gehört/gehören zu einem deaktivierten Host
- wird/werden nicht unterstützt (außer mit der Funktion nodata() und Operatoren mit unbekannten Werten)
- keine Daten zur Berechnung einer Funktion
- Division durch null
- falsche Syntax verwendet
Verwendungsbeispiele
Beispiel 1
Berechnung des Prozentsatzes des freien Speicherplatzes auf '/'.
Use of function last:
100*last(//vfs.fs.size[/,free])/last(//vfs.fs.size[/,total])
Zabbix will take the latest values for free and total disk spaces and calculate percentage according to the given formula.
Beispiel 2
Berechnung eines 10-Minuten-Durchschnitts der Anzahl der von Zabbix verarbeiteten Werte.
Verwendung der Funktion avg:
avg(/Zabbix Server/zabbix[wcache,values],10m)
Beachten Sie, dass die extensive Verwendung von berechneten Elementen mit langen Zeiträumen die Leistung des Zabbix-Servers beeinträchtigen kann.
Beispiel 3
Berechnung der Gesamtbandbreite auf eth0.
Summe von zwei Funktionen:
last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes])
Beispiel 4
Berechnung des Prozentsatzes des eingehenden Verkehrs.
Komplexerer Ausdruck:
100*last(//net.if.in[eth0,bytes])/(last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes]))
Siehe auch: Beispiele für Aggregatberechnungen