3 Niestandardowe skrypty alertów
Przegląd
Jeśli nie jesteś zadowolony z istniejących typów mediów do wysyłania alertów, 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 w parametrze 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 inny niż 0 jest uznawany za błąd wykonania polecenia. W takich przypadkach Zabbix spróbuje ponownie wykonać nieudaną operację.
Zmienne środowiskowe nie są zachowywane ani tworzone dla skryptu, więc należy obsługiwać je jawnie.
Konfiguracja
Aby skonfigurować niestandardowe skrypty alertów jako typ mediów:
- Przejdź do Alerts → Media types.
- Kliknij Create media type.
Karta Media type zawiera ogólne atrybuty typu mediów:

Wszystkie obowiązkowe pola wejściowe są oznaczone czerwoną gwiazdką.
Następujące parametry są specyficzne dla typu mediów skryptu:
| Parameter | Description |
|---|---|
| Script name | Wprowadź nazwę pliku skryptu (np. notification.sh), który znajduje się w katalogu określonym w parametrze konfiguracyjnym serwera AlertScriptsPath. |
| Script parameters | 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óły dotyczące konfiguracji domyślnych wiadomości i opcji przetwarzania alertów znajdziesz w sekcji common media type parameters.
Nawet jeśli skrypt alertu nie korzysta z domyślnych wiadomości, szablony wiadomości dla typów operacji używanych przez ten typ mediów nadal muszą być zdefiniowane. W przeciwnym razie powiadomienie nie zostanie wysłane.
Jeśli skonfigurowano więcej niż jeden typ mediów skryptu, skrypty te mogą być przetwarzane równolegle przez procesy alertera.
Łączna liczba procesów alertera jest ograniczona przez parametr StartAlerters w pliku konfiguracyjnym serwera.
Testowanie
Aby przetestować skonfigurowany typ mediów skryptu:
-
Znajdź odpowiedni skrypt na liście typów mediów.
-
Kliknij Test w ostatniej kolumnie listy; w oknie podręcznym zostanie otwarty formularz testowy. Formularz testowy będzie zawierał taką samą liczbę parametrów, jaka została skonfigurowana dla typu mediów skryptu.
-
W razie potrzeby edytuj wartości parametrów skryptu. Edycja wpływa tylko na procedurę testową; rzeczywiste wartości nie zostaną zmienione.
-
Kliknij Test.

Podczas testowania skonfigurowanego typu mediów skryptu {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 testowania nie ma powiązanego zdarzenia, z którego można pobrać szczegóły. Należy pamiętać, że makra wewnątrz makr {ALERT.SUBJECT} i {ALERT.MESSAGE} również nie zostaną rozwinięte. Na przykład, jeśli wartość {ALERT.SUBJECT} jest złożona z "Problem: {EVENT.NAME}", to makro {EVENT.NAME} nie zostanie rozwinięte.
Media użytkownika
Po skonfigurowaniu typu mediów przejdź do sekcji Users → Users i edytuj profil użytkownika, przypisując ten typ mediów do użytkownika. Kroki konfiguracji mediów użytkownika, wspólne dla wszystkich typów mediów, są opisane na stronie Media types.
Należy pamiętać, że podczas definiowania mediów użytkownika pole Send to nie może być puste. Jeśli to pole nie jest używane w skrypcie alertu, wprowadź dowolną kombinację obsługiwanych znaków, aby ominąć wymagania walidacji.