14 Berechneter Datenpunkt
Übersicht
Ein berechneter Datenpunkt ermöglicht es, eine Berechnung auf Grundlage der Werte einiger vorhandener Datenpunkte zu erstellen. Sie können beispielsweise 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 sowohl Folgendes verwenden:
- einzelne Werte einzelner Datenpunkte
- einen komplexen Filter, um mehrere Datenpunkte für die Aggregation auszuwählen (siehe Aggregatberechnungen 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 regelmäßig 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 Diagramme können erstellt werden.
Wenn das Berechnungsergebnis ein Float-Wert ist, wird es auf eine Ganzzahl gekürzt, wenn der Typ der Informationsart des berechneten Datenpunkts Numerisch (vorzeichenlos) ist.
Außerdem wird Zabbix standardmäßig bis zu einer Woche in die Vergangenheit zurückgehen, um die Datenbank nach historischen Werten abzufragen, wenn keine aktuellen Daten im Cache vorhanden sind und in der Funktion kein definierter Abfragezeitraum angegeben ist.
Berechnete Datenpunkte verwenden dieselbe Syntax wie Auslöser-Ausdrücke. Ein Vergleich mit Zeichenfolgen ist in berechneten Datenpunkten zulässig. Berechnete Datenpunkte können wie jeder andere Datenpunkttyp über Makros oder andere Entitäten referenziert werden.
Um berechnete Datenpunkte zu verwenden, wählen Sie den Datenpunkttyp Calculated.
Konfigurierbare Felder
Der key ist ein eindeutiger Datenpunkt-Identifikator (pro Host). Sie können jeden beliebigen Key-Namen mit den unterstützten Symbolen erstellen.
Die Berechnungsdefinition sollte im Feld Formula eingegeben werden. Zwischen der Formel und dem Key besteht keine Verbindung. Die Key-Parameter werden in der Formel in keiner Weise verwendet.
Die Syntax einer einfachen Formel lautet:
function(/host/key,<parameter1>,<parameter2>,...)
wobei:
| 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 (z. B. wie in function(//key,parameter,...)). |
| key | Key des Datenpunkts, der für die Berechnung verwendet wird. Datenpunkte, die Werte mit dem binären Datentyp zurückgeben, werden nicht unterstützt. |
| parameter(s) | Parameter der Funktion, falls erforderlich. Zeit-Suffixe und Speichergrößen-Suffixe werden unterstützt. |
Benutzer-Makros in der Formel werden erweitert, wenn sie verwendet werden, um auf einen Funktionsparameter, einen Datenpunktfilter-Parameter oder eine Konstante zu verweisen. Benutzer-Makros werden NICHT erweitert, wenn sie auf eine Funktion, einen Hostnamen, einen Datenpunkt-Key, einen Datenpunkt-Key-Parameter oder einen Operator verweisen.
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 Operator-Priorität sind exakt gleich.
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 in der Formel des berechneten Datenpunkts durch Historienfunktionen verwiesen wird, müssen vorhanden sein und Daten erfassen. Wenn Sie außerdem den Datenpunkt-Key eines referenzierten Datenpunkts ändern, müssen Sie alle Formeln, die diesen Key verwenden, manuell aktualisieren.
Ein berechneter Datenpunkt kann in mehreren Fällen nicht unterstützt werden:
- referenzierte(r) Datenpunkt(e)
- wurde(n) nicht gefunden
- ist deaktiviert
- gehört zu einem deaktivierten Host
- wird 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
Anwendungsbeispiele
Beispiel 1
Berechnung des prozentualen Anteils des freien Speicherplatzes auf '/'.
Verwendung der Funktion last:
100*last(//vfs.fs.size[/,free])/last(//vfs.fs.size[/,total])
Zabbix verwendet die neuesten Werte für freien und gesamten Speicherplatz und berechnet den Prozentsatz gemäß der angegebenen Formel.
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 der umfangreiche Einsatz von berechneten Datenpunkten mit langen Zeiträumen die Leistung des Zabbix-Servers beeinträchtigen kann.
Beispiel 3
Berechnung der gesamten Bandbreite auf eth0.
Summe von zwei Funktionen:
last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes])
Beispiel 4
Berechnung des prozentualen Anteils des eingehenden Datenverkehrs.
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 aggregierte Berechnungen