18 Pozycje skryptowe
Przegląd
Pozycje skryptowe mogą być używane do zbierania danych przez wykonywanie zdefiniowanego przez użytkownika kodu JavaScript z możliwością pobierania danych przez HTTP/HTTPS. Oprócz skryptu można określić opcjonalną listę parametrów (par nazw i wartości) oraz limit czasu.
Ten typ pozycji może być przydatny w scenariuszach zbierania danych, które wymagają wielu kroków lub złożonej logiki. Na przykład pozycja skryptowa może być skonfigurowana tak, aby wykonać wywołanie HTTP, następnie w pewien sposób przetworzyć dane otrzymane w pierwszym kroku i przekazać przekształconą wartość do drugiego wywołania HTTP.
Pozycje skryptowe są przetwarzane przez pollery serwera lub proxy Zabbix.
Konfiguracja
W polu Typ formularza konfiguracji pozycji wybierz Script, a następnie wypełnij wymagane pola.

Wszystkie obowiązkowe pola wejściowe są oznaczone czerwoną gwiazdką.
Pola wymagające określonych informacji dla pozycji typu Script to:
| Pole | Opis |
|---|---|
| Key | Wprowadź unikalny klucz, który będzie używany do identyfikacji pozycji. |
| Parameters | Określ zmienne przekazywane do skryptu jako pary atrybut-wartość. Obsługiwane są makra użytkownika. Aby sprawdzić, które wbudowane makra są obsługiwane, wyszukaj „Script-type item” w tabeli obsługiwanych makr. |
| Script | Wprowadź kod JavaScript w modalnym edytorze, który otwiera się po kliknięciu w pole parametru lub ikonę ołówka obok niego. Kod ten musi zawierać logikę zwracania wartości metryki. Kod ma dostęp do wszystkich parametrów oraz wszystkich dodatkowych obiektów JavaScript dodanych przez Zabbix. Zobacz także: Przewodnik po JavaScript. |
| Timeout | Limit czasu wykonywania JavaScript (1-600 s; jego przekroczenie spowoduje zwrócenie błędu). Pamiętaj, że w zależności od skryptu wyzwolenie limitu czasu może potrwać dłużej. Więcej informacji o parametrze Timeout znajdziesz w sekcji ogólnych atrybutów pozycji. |
Przykłady
Proste zbieranie danych
Pobierz zawartość https://www.example.com/release\_notes:
- Utwórz pozycję typu „Script”.
- W polu Script wprowadź:
var request = new HttpRequest();
return request.get("https://www.example.com/release_notes");
Zbieranie danych z użyciem parametrów
Pobierz zawartość określonej strony i wykorzystaj parametry:
- Utwórz pozycję typu "Script" z dwoma parametrami:
- url : {$DOMAIN} (makro użytkownika {$DOMAIN} powinno być zdefiniowane, najlepiej na poziomie hosta)
- subpage : /release_notes

- W polu Script wprowadź:
var obj = JSON.parse(value);
var url = obj.url;
var subpage = obj.subpage;
var request = new HttpRequest();
return request.get(url + subpage);
Wiele żądań HTTP
Pobierz zawartość zarówno https://www.example.com, jak i https://www.example.com/release\_notes:
- Utwórz pozycję typu „Script”.
- W polu Script wprowadź:
var request = new HttpRequest();
return request.get("https://www.example.com") + request.get("https://www.example.com/release_notes");
Logowanie
Dodaj wpis „Log test” do logu serwera Zabbix i w odpowiedzi odbierz wartość pozycji „1”:
- Utwórz pozycję typu „Script”.
- W polu Script wprowadź:
Zabbix.log(3, 'Log test');
return 1;