18 Skript-Datenpunkte

Übersicht

Script-Datenpunkte können verwendet werden, um Daten zu erfassen, indem benutzerdefinierter JavaScript-Code ausgeführt wird, mit der Möglichkeit, Daten über HTTP/HTTPS abzurufen. Zusätzlich zum Script können eine optionale Liste von Parametern (Name-Wert-Paare) sowie ein Timeout angegeben werden.

Dieser Datenpunkttyp kann in Datenerfassungsszenarien nützlich sein, die mehrere Schritte oder eine komplexe Logik erfordern. Beispielsweise kann ein Script-Datenpunkt so konfiguriert werden, dass er einen HTTP-Aufruf ausführt, dann die im ersten Schritt empfangenen Daten auf irgendeine Weise verarbeitet und den transformierten Wert an den zweiten HTTP-Aufruf übergibt.

Script-Datenpunkte werden von Pollern des Zabbix Server oder Proxy verarbeitet.

Konfiguration

Wählen Sie im Feld Typ des Datenpunkt-Konfigurationsformulars die Option Skript und füllen Sie dann die erforderlichen Felder aus.

script\_item.png

Alle obligatorischen Eingabefelder sind mit einem roten Sternchen markiert.

Die Felder, für die bei Skript-Datenpunkten spezifische Informationen erforderlich sind, sind:

Feld Beschreibung
Schlüssel Geben Sie einen eindeutigen Schlüssel ein, der zur Identifizierung des Datenpunkts verwendet wird.
Parameter Geben Sie die Variablen an, die als Attribut-Wert-Paare an das Skript übergeben werden sollen.
Benutzermakros werden unterstützt. Um zu sehen, welche integrierten Makros unterstützt werden, suchen Sie in der Tabelle unterstützte Makros nach „Script-type item“.
Skript Geben Sie JavaScript-Code im modalen Editor ein, der geöffnet wird, wenn Sie in das Parameterfeld klicken oder auf das Stiftsymbol daneben.
Dieser Code muss die Logik zur Rückgabe des Metrikwerts bereitstellen.
Der Code hat Zugriff auf alle Parameter und alle von Zabbix hinzugefügten zusätzlichen JavaScript-Objekte.
Siehe auch: JavaScript Guide.
Zeitüberschreitung Zeitlimit für die JavaScript-Ausführung (1–600 s; bei Überschreitung wird ein Fehler zurückgegeben).
Beachten Sie, dass es je nach Skript länger dauern kann, bis die Zeitüberschreitung ausgelöst wird.
Weitere Informationen zum Parameter Timeout finden Sie unter allgemeine Datenpunktattribute.

Beispiele

Einfache Datenerfassung

Erfassen Sie den Inhalt von https://www.example.com/release\_notes:

  • Erstellen Sie einen Datenpunkt vom Typ „Script“.
  • Geben Sie im Feld Script Folgendes ein:
var request = new HttpRequest();
return request.get("https://www.example.com/release_notes");
Datenerfassung mit Parametern

Erfassen Sie den Inhalt einer bestimmten Seite und verwenden Sie dabei Parameter:

  • Erstellen Sie einen Datenpunkt vom Typ „Script“ mit zwei Parametern:
    • url : {$DOMAIN} (das Benutzermakro {$DOMAIN} sollte definiert sein, vorzugsweise auf Host-Ebene)
    • subpage : /release_notes

  • Geben Sie im Feld Script Folgendes ein:
var obj = JSON.parse(value);
var url = obj.url;
var subpage = obj.subpage;
var request = new HttpRequest();
return request.get(url + subpage);
Mehrere HTTP-Anfragen

Erfassen Sie den Inhalt von https://www.example.com und https://www.example.com/release\_notes:

  • Erstellen Sie einen Datenpunkt vom Typ „Script“.
  • Geben Sie im Feld Script Folgendes ein:
var request = new HttpRequest();
return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
Protokollierung

Fügen Sie den Eintrag „Log test“ zum Zabbix-Serverprotokoll hinzu und erhalten Sie den Datenpunktwert „1“ als Rückgabewert:

  • Erstellen Sie einen Datenpunkt vom Typ „Script“.
  • Geben Sie im Feld Script Folgendes ein:
Zabbix.log(3, 'Log test');
return 1;