14 Berechneter Datenpunkt

Übersicht

Mit einem berechneten Datenpunkt können Sie eine Berechnung auf Grundlage der Werte vorhandener Datenpunkte erstellen. Beispielsweise können Sie den stündlichen Durchschnitt eines Datenpunktwerts oder den Gesamtwert einer Gruppe von Datenpunkten berechnen. Dafür werden berechnete Datenpunkte verwendet.

Berechnungen können Folgendes verwenden:

  • einzelne Werte einzelner Datenpunkte
  • einen komplexen Filter zur Auswahl mehrerer Datenpunkte für eine Aggregation (siehe Aggregatberechnungen für weitere Informationen)

Berechnete Datenpunkte ermöglichen das Erstellen virtueller Datenquellen. 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 Gleitkommawert ist, wird es auf eine Ganzzahl gekürzt, wenn der Informationstyp 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 einer Woche in die Vergangenheit zurück, um historische Werte aus der Datenbank abzufragen.

Berechnete Datenpunkte verwenden dieselbe Syntax wie Ausdrücke von Auslösern. Der Vergleich mit Zeichenfolgen ist bei berechneten Datenpunkten zulässig. Berechnete Datenpunkte können wie jeder andere Datenpunkttyp von Makros oder anderen Entitäten referenziert werden.

Um berechnete Datenpunkte zu verwenden, wählen Sie den Datenpunkttyp Berechnet.

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