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 ich obsługi. Możesz utworzyć skrypt, który będzie obsługiwał powiadomienie 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 konfiguracji 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 wykonanych 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 ponowić nieudaną próbę wykonania.

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

Konfiguracja

Aby skonfigurować niestandardowe skrypty alertów jako typ mediów:

  1. Przejdź do Alerts → Media types.
  2. Kliknij Create media type.

Karta Media type zawiera ogólne atrybuty typu mediów:

Wszystkie wymagane 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 przez parametr konfiguracji 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.

Zobacz common media type parameters, aby uzyskać szczegółowe informacje o tym, jak skonfigurować domyślne komunikaty i opcje przetwarzania alertów.

Nawet jeśli skrypt alertu nie używa domyślnych komunikatów, szablony komunikatów 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:

  1. Znajdź odpowiedni skrypt na liście typów mediów.

  2. Kliknij Test w ostatniej kolumnie listy; formularz testowy zostanie otwarty w oknie podręcznym. Formularz testowy będzie zawierał taką samą liczbę parametrów, jaka została skonfigurowana dla typu mediów skryptu.

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

  4. 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 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.