3 Niestandardowe skrypty alertów

Przegląd

Jeśli istniejące typy mediów do wysyłania alertów nie spełniają Twoich oczekiwań, istnieje alternatywny sposób realizacji tego zadania. Możesz utworzyć skrypt, który będzie obsługiwał powiadomienia w wybrany przez Ciebie sposób.

Niestandardowe skrypty alertów są wykonywane na serwerze Zabbix. Skrypty te muszą znajdować się w katalogu określonym przez parametr AlertScriptsPath w pliku konfiguracyjnym serwera.

Oto przykład niestandardowego skryptu alertu:

#!/bin/bash

to=$1
subject=$2
body=$3
host=$4
value=$5

cat <<EOF | mail -s "$subject" "$to"
$body

Host: $host
Value: $value
EOF

Zabbix sprawdza kod zakończenia wykonywanych poleceń i skryptów. Każdy kod zakończenia różny od 0 jest traktowany jako błąd wykonania polecenia. W takich przypadkach Zabbix podejmie próbę ponowienia nieudanego wykonania.

Zmienne środowiskowe nie są zachowywane ani tworzone dla skryptu, dlatego należy obsłużyć je jawnie.

Konfiguracja

Aby skonfigurować niestandardowe skrypty alertów jako typ nośnika:

  1. Przejdź do Alerty → Typy nośników.
  2. Kliknij Utwórz typ nośnika.

Zakładka Typ nośnika zawiera ogólne atrybuty typu nośnika:

Wszystkie wymagane pola wejściowe są oznaczone czerwoną gwiazdką.

Następujące parametry są specyficzne dla typu nośnika skryptowego:

Parameter Description
Nazwa skryptu Wprowadź nazwę pliku skryptu (np. notification.sh), który znajduje się w katalogu określonym w parametrze konfiguracji serwera AlertScriptsPath.
Parametry skryptu Dodaj opcjonalne parametry skryptu, które zostaną przekazane do skryptu jako argumenty wiersza poleceń w kolejności, w jakiej zostały zdefiniowane.

Parametry skryptu obsługują makra {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} oraz wszystkie makra obsługiwane w powiadomieniach, a także makra użytkownika.

Szczegółowe informacje o konfiguracji domyślnych wiadomości i opcji przetwarzania alertów można znaleźć w sekcji wspólne parametry typu nośnika.

Nawet jeśli skrypt alertu nie używa domyślnych wiadomości, szablony wiadomości dla typów operacji używanych przez ten typ nośnika nadal muszą być zdefiniowane. W przeciwnym razie powiadomienie nie zostanie wysłane.

Jeśli skonfigurowano więcej niż jeden typ nośnika skryptowego, skrypty te mogą być przetwarzane równolegle przez procesy alertera. Łączna liczba procesów alertera jest ograniczona przez parametr pliku konfiguracyjnego serwera StartAlerters.

Testowanie

Aby przetestować skonfigurowany skryptowy typ nośnika:

  1. Odszukaj odpowiedni skrypt na liście typów nośników.

  2. Kliknij Test w ostatniej kolumnie listy; formularz testowy otworzy się w wyskakującym oknie. Formularz testowy będzie zawierał taką samą liczbę parametrów, jaka jest skonfigurowana dla skryptowego typu nośnika.

  3. W razie potrzeby edytuj wartości parametrów skryptu. Edycja wpływa tylko na procedurę testową; rzeczywiste wartości nie zostaną zmienione.

  4. Kliknij Test.

Podczas testowania skonfigurowanego skryptowego typu nośnika makra {ALERT.SENDTO}, {ALERT.SUBJECT}, {ALERT.MESSAGE} oraz makra użytkownika zostaną rozwinięte do swoich wartości, ale makra powiązane ze zdarzeniami (np. {HOST.HOST}, {ITEM.LASTVALUE} itd.) nie zostaną rozwinięte, ponieważ podczas testu nie ma powiązanego zdarzenia, z którego można pobrać szczegóły. Zwróć uwagę, że makra wewnątrz makr {ALERT.SUBJECT} i {ALERT.MESSAGE} również nie zostaną rozwinięte. Na przykład, jeśli wartość {ALERT.SUBJECT} ma postać "Problem: {EVENT.NAME}", to makro {EVENT.NAME} nie zostanie rozwinięte.

Media użytkownika

Po skonfigurowaniu typu mediów przejdź do sekcji Użytkownicy → Użytkownicy i edytuj profil użytkownika, przypisując temu użytkownikowi ten typ mediów. Kroki konfiguracji mediów użytkownika, wspólne dla wszystkich typów mediów, opisano na stronie Typy mediów.

Należy pamiętać, że podczas definiowania mediów użytkownika pole Wyślij do nie może być puste. Jeśli to pole nie jest używane w skrypcie alertu, wprowadź dowolną kombinację obsługiwanych znaków, aby obejść wymagania walidacji.