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 er auf eine Ganzzahl gekürzt, wenn der Typ der Information des berechneten Datenpunkts Numerisch (vorzeichenlos) ist.
Wenn außerdem keine aktuellen Daten im Cache vorhanden sind und in der Funktion kein definierter Abfragezeitraum angegeben ist, greift Zabbix standardmäßig bis zu einer Woche in die Vergangenheit zurück, um historische Werte aus der Datenbank abzufragen.
Berechnete Datenpunkte verwenden dieselbe Syntax wie Auslöser-Ausdrücke. Vergleiche mit Zeichenfolgen sind 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-Bezeichner (pro Host). Sie können jeden beliebigen key-Namen mit den unterstützten Symbolen erstellen.
Die Berechnungsdefinition sollte im Feld Formula eingetragen werden. Es besteht keine Verbindung zwischen der Formel und dem key. 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. |
Benutzermakros in der Formel werden erweitert, wenn sie verwendet werden, um einen Funktions- parameter, einen Datenpunktfilter-Parameter oder eine Konstante zu referenzieren. Benutzermakros werden NICHT erweitert, wenn sie eine Funktion, einen Hostnamen, einen Datenpunkt-Key, einen Datenpunkt-Key-Parameter oder einen Operator referenzieren.
Eine komplexere Formel kann eine Kombination aus Funktionen, Operatoren und Klammern verwenden. Sie können alle in Auslöser-Ausdrücken unterstützten Funktionen und Operatoren verwenden. Die Logik und die Operator- Priorität 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 in der Formel des berechneten Datenpunkts durch History-Funktionen verwiesen wird, müssen vorhanden sein und Daten sammeln. 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
Verwendungsbeispiele
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 die umfangreiche Verwendung von berechneten Datenpunkten mit langen Zeiträumen die Leistung des Zabbix Server 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 Aggregatberechnungen