18 Skripta vienumi

Pārskats

Skripta vienumus var izmantot datu vākšanai, izpildot lietotāja definētu JavaScript kodu ar iespēju iegūt datus, izmantojot HTTP/HTTPS. Papildus skriptam var norādīt neobligātu parametru sarakstu (nosaukuma un vērtības pārus) un noildzi.

Šis vienuma tips var būt noderīgs datu vākšanas scenārijos, kuros nepieciešami vairāki soļi vai sarežģīta loģika. Piemēram, skripta vienumu var konfigurēt tā, lai tas veiktu HTTP izsaukumu, pēc tam kaut kādā veidā apstrādātu pirmajā solī saņemtos datus un nodotu pārveidoto vērtību otrajam HTTP izsaukumam.

Skripta vienumus apstrādā Zabbix servera vai starpniekservera aptaujātāji.

Konfigurācija

Laukā Type vienuma konfigurācijas veidlapā atlasiet Script, pēc tam aizpildiet obligātos laukus.

script\_item.png

Visi obligātie ievades lauki ir atzīmēti ar sarkanu zvaigznīti.

Lauki, kuros Script vienumiem ir jānorāda specifiska informācija, ir šādi:

Lauks Apraksts
Key Ievadiet unikālu atslēgu, kas tiks izmantota vienuma identificēšanai.
Parameters Norādiet mainīgos, kas tiks nodoti skriptam kā atribūta un vērtības pāri.
Tiek atbalstīti lietotāja makrosi. Lai redzētu, kuri iebūvētie makrosi tiek atbalstīti, meklējiet "Script-type item" tabulā supported macro.
Script Ievadiet JavaScript kodu modālajā redaktorā, kas tiek atvērts, noklikšķinot parametra laukā vai uz zīmuļa ikonas blakus tam. Šim kodam jānodrošina loģika metrikas vērtības atgriešanai.
Kodam ir piekļuve visiem parametriem un visiem papildu JavaScript objektiem, ko pievieno Zabbix.
Skatiet arī: JavaScript Guide.
Timeout JavaScript izpildes noildze (1-600s; tās pārsniegšana atgriezīs kļūdu).
Ņemiet vērā, ka atkarībā no skripta var būt nepieciešams ilgāks laiks, līdz noildze nostrādā.
Papildinformāciju par parametru Timeout skatiet sadaļā general item attributes.

Piemēri

Vienkārša datu vākšana

Savāciet https://www.example.com/release\_notes saturu:

  • Izveidojiet vienumu ar tipu "Script".
  • Laukā Script ievadiet:
var request = new HttpRequest();
return request.get("https://www.example.com/release_notes");
Datu vākšana ar parametriem

Savāciet konkrētas lapas saturu un izmantojiet parametrus:

  • Izveidojiet vienumu ar tipu "Script" un diviem parametriem:
    • url : {$DOMAIN} (lietotāja makro {$DOMAIN} ir jābūt definētam, vēlams hosta līmenī)
    • subpage : /release_notes

  • Laukā Script ievadiet:
var obj = JSON.parse(value);
var url = obj.url;
var subpage = obj.subpage;
var request = new HttpRequest();
return request.get(url + subpage);
Vairāki HTTP pieprasījumi

Savāciet saturu gan no https://www.example.com, gan no https://www.example.com/release\_notes:

  • Izveidojiet vienumu ar tipu "Script".
  • Laukā Script ievadiet:
var request = new HttpRequest();
return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
Žurnalēšana

Pievienojiet Zabbix servera žurnālam ierakstu "Log test" un saņemiet atpakaļ vienuma vērtību "1":

  • Izveidojiet vienumu ar tipu "Script".
  • Laukā Script ievadiet:
Zabbix.log(3, 'Log test');
return 1;