Integracje Zabbiksa - webhooki i Grafana
Czwarta część serii o Zabbiksie (wcześniej: wprowadzenie, własne szablony, web monitoring). W pierwszym wpisie podpięliśmy powiadomienia pod e-mail. Działa, ale ma wady: mail można przeoczyć w zalewie innych wiadomości, nie ma wątków ani szybkiej reakcji “widziałem, zajmuję się”. Dziś podepniemy Zabbiksa pod webhook — a przy okazji pokażę, jak wpuścić jego dane do Grafany.
Webhook jako media type
Zabbix od kilku lat ma wbudowany typ medium Webhook — zamiast wysyłać maila, wykonuje skrypt JavaScript (uruchamiany po stronie serwera Zabbiksa), który sam decyduje, jak sformatować i gdzie wysłać powiadomienie. Zaletą jest to, że dla popularnych usług nie musisz pisać tego skryptu sam — Zabbix ma wbudowaną galerię gotowych integracji.
Alerts → Media types — na liście, oprócz Email, znajdziesz gotowe
wpisy dla m.in. Telegrama, Slacka i Discorda. Wystarczy jeden włączyć i
uzupełnić parametry, zamiast pisać integrację od zera.
Przykład: Telegram
- Załóż bota przez @BotFather na Telegramie —
komenda
/newbot, ustaw nazwę, na końcu dostaniesz token w formacie123456789:AAExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. - Napisz do swojego nowego bota cokolwiek (Telegram wymaga, żeby to
użytkownik pierwszy zainicjował rozmowę), a potem odpytaj:
W odpowiedzi znajdzieszhttps://api.telegram.org/bot<TOKEN>/getUpdateschat.id— to Twój prywatny identyfikator czatu. - W Zabbiksie: Alerts → Media types → Telegram, wklej token bota w
parametrze
Bot token, zapisz. - Users, wybierz swojego użytkownika, zakładka Media → Add, typ
Telegram, w polu “Send to” wklejchat.idz kroku 2.
Action wykorzystujący webhook
Podobnie jak przy e-mailu w pierwszym wpisie serii: Alerts → Actions →
Trigger actions → Create action, warunek np. Severity >= Warning,
operacja Send message to User <Twój user> using media Telegram. Od teraz
powiadomienia o problemach lądują na Telegramie, praktycznie bez opóźnienia.
Zabbix jako źródło danych w Grafanie
Powiadomienia to jedno, ale czasem chcesz po prostu ładnie zwizualizować dane, które Zabbix już zbiera — zamiast budować od zera dashboardy w samym Zabbiksie. Grafana ma w swoim katalogu wtyczek gotowy Zabbix data source, który odpytuje Zabbix API i pozwala budować panele na bazie zebranych metryk i zdarzeń.
Zanim podepniesz Grafanę:
- W Zabbiksie stwórz osobnego użytkownika przeznaczonego wyłącznie do odczytu (rola z uprawnieniami “Read only” do interesujących Cię grup hostów) — nie warto podpinać pod to konta administracyjnego.
- W Grafanie: Connections → Add new connection, znajdź w katalogu
wtyczkę Zabbiksa, zainstaluj i skonfiguruj adres API Zabbiksa (zwykle
https://twoj-zabbix/api_jsonrpc.php) razem z danymi logowania użytkownika z punktu 1. - Po zapisaniu źródła danych możesz budować panele odpytujące konkretne
itemy albo zdarzenia (problemy) z Zabbiksa — dokładnie te same dane, które
widzisz w
Monitoring → Latest data, tylko w dashboardzie, który zestawisz obok innych źródeł danych.
Podsumowanie
Zabbix sam w sobie potrafi ładnie powiadamiać i wizualizować, ale jego siła w większej infrastrukturze to właśnie łatwość integracji — powiadomienia tam, gdzie faktycznie je zauważysz, i dane tam, gdzie już masz inne dashboardy. W ostatniej części serii wracamy do samego Zabbiksa — do automatycznego wykrywania hostów w sieci, żeby nie trzeba było dodawać ich ręcznie, jednego po drugim.
Comments powered by Talkyard.