Home / Integracje i pluginy / Prometheus Alertmanager SMS & voice call notifications
Prometheus logo, a plus sign, and the SMS Eagle logo indicating a collaboration between Prometheus and SMS Eagle.

Powiadomienia SMS i głosowe z Prometheus Alertmanager.

Połącz silnik alertów Prometheus i Alertmanager z niezawodnością sprzętowej bramki SMSEagle. Zadbaj, by właściwa osoba dowiedziała się o krytycznym incydencie, nawet gdy awarii ulega sieć, od której zależy cały system monitoringu.

Flow diagram: Prometheus → Alertmanager → SMSEagle Webhook Adapter in a server/VM → API v2 → SMSEagle device → user (SMS/Voice).

Alertowanie niezależne od internetu

Prometheus i Alertmanager wykrywają anomalię, ale dostarczenie alertu zwykle zależy od łącza internetowego, przekaźnika SMTP lub chmurowego dostawcy SMS. Jeśli któryś z tych elementów zawiedzie, powiadomienie nie dotrze. SMSEagle wysyła alerty bezpośrednio przez sieć komórkową, więc docierają one nawet wtedy, gdy łącze internetowe nie działa.

Samodzielne urządzenie sprzętowe

Prometheus, Alertmanager i monitorowane przez nie systemy często działają w tym samym klastrze, a nierzadko właśnie w tym klastrze Kubernetes, którego dotyczy alert. Jeśli ta platforma przestanie działać, razem z nią może paść alertowanie. SMSEagle to dedykowane urządzenie z własnym połączeniem komórkowym, dzięki czemu bramka alertów nie dzieli losu otaczającej infrastruktury.

Bez chmury, z pełną kontrolą nad danymi

SMSEagle działa lokalnie (on-premises). Nie jest wymagane połączenie z zewnętrznym systemem firm trzecich: powiadomienia są generowane na miejscu i wysyłane bezpośrednio do sieci komórkowej, co sprawdza się również w bezpiecznych, odizolowanych instalacjach bez dostępu do internetu.

Jak to działa?

1

Zdarzenie wyzwalające

Reguła Prometheusa przekracza próg i zostaje uruchomiona, a Alertmanager odbiera, grupuje i deduplikuje alert jak zwykle.

2

Komunikacja

Odbiornik webhook Alertmanagera wysyła grupę alertów (schemat v4) do smseagle-adapter, lekkiego, oficjalnego adaptera open source, który mapuje ładunek na wywołanie SMSEagle APIv2.

3

Alert

SMSEagle wysyła SMS-a lub, dla krytycznych poziomów ważności, realizuje połączenie głosowe z syntezą mowy (TTS) do odbiorców ustalonych dla danego alertu.

Diagram of a monitored IT infrastructure showing servers, applications, databases, logs, and network devices; Prometheus alert rules feed Alertmanager and an SMS Eagle device for SMS alerts to on-call staff via cellular network.

Integracja w około 15 minut

Alertmanager nie ma natywnego kanału SMS. Standardowym rozwiązaniem dla wszystkiego, co wykracza poza jego wbudowane integracje, jest webhook_config wskazujący na lekkie proxy. smseagle-adapter jest dokładnie takim rozwiązaniem: darmowym, oficjalnym adapterem open source, który uruchamiasz jednym poleceniem docker compose up. Dodaj jeden odbiornik do istniejącego pliku alertmanager.yml, a dotychczasowe reguły routingu alertów zaczną docierać na telefony przez SMS i połączenia głosowe, bez zmian w regułach Prometheusa.

Monitoring to dopiero początek.
Przejmij pełną kontrolę nad alertami i automatyzacją.

Routing według poziomu ważności i dla pojedynczych alertów

Nie każdy alert powinien trafiać do tej samej osoby i nie każdy zasługuje na telefon. Przypisz poziomy ważności do odbiorców raz (SMSEAGLE_ROUTES=critical=+48…,oncall-group;warning=noc-group), a każda reguła z pasującą etykietą severity będzie kierowana automatycznie, bez konfiguracji pojedynczych reguł. Potrzebujesz wyjątku? Dodaj etykietę “smseagle_to” do wybranej reguły Prometheusa, a nadpisze ona routing według ważności wyłącznie dla tego alertu.

Odporność na lawiny alertów

Niestabilny klaster potrafi wygenerować dziesiątki alertów w kilka sekund, a nikt nie chce dziesiątek SMS-ów o jednym incydencie. Przełącz “MESSAGE_MODE” na summary i ustaw próg “MAX_INDIVIDUAL_ALERTS”, a adapter automatycznie zwinie lawinę alertów w jednego, czytelnego SMS-a zamiast zalewać odbiorcę wiadomościami. 

Eskalacja głosowa dla alertów krytycznych

Ustaw “ESCALATE_CALL_SEVERITIES=critical” a każdy aktywny alert o tym poziomie ważności automatycznie uruchomi, oprócz SMS-a, połączenie głosowe TTS Advanced. Trudniej je przespać niż cichą wiadomość, a nie wymaga to żadnej dodatkowej konfiguracji reguł. Długość połączenia i model głosu są konfigurowalne (TTS_CALL_DURATION, TTS_VOICE_ID), dzięki czemu połączenie eskalacyjne można dopasować do preferencji zespołu. 

Grupy odbiorców i eskalacji

Nie każdy alert powinien trafiać do wszystkich, a pominięty alert nie może zniknąć bez śladu. Grupy książki telefonicznej (Phonebook) SMSEagle pozwalają, by jedna trasa obejmowała cały zespół, a grupy eskalacji gwarantują, że jeśli pierwsza osoba nie potwierdzi alertu, trafi on do kolejnego dyżurnego. W połączeniu z harmonogramami dyżurów powiadomienia podążają za rzeczywistym grafikiem.

Monitoruj samego Prometheusa i Alertmanagera

Kto pilnuje stróża? Jeśli sam Alertmanager przestanie działać, nie dostarczy już ani jednego alertu, a możesz się o tym dowiedzieć dopiero wtedy, gdy będzie za późno. Dzięki wbudowanej w SMSEagle funkcji Network Monitoring bramka niezależnie sprawdza hosty Prometheusa i Alertmanagera i wysyła SMS-a lub wykonuje połączenie głosowe, gdy tylko któryś z nich przestanie odpowiadać.

.

Konfiguracja SMSEagle

Zanim zaczniesz: Alertmanager musi mieć możliwość połączenia z adapterem przez sieć, a adapter z urządzeniem SMSEagle. Ponieważ stosy Prometheus/Alertmanager są zwykle już hostowane we własnym zakresie, sprowadza się to najczęściej do umieszczenia kontenera w tej samej sieci. Nie ma tu zastrzeżeń związanych z chmurą.

  • Utwórz nowego użytkownika w SMSEagle (menu System > Users, poziom dostępu użytkownika: „User”).
  • Nadaj utworzonemu użytkownikowi dostęp do API: przejdź do Settings > Global settings > API i otwórz stronę API v2.
  • Kliknij Create API key, wypełnij pole Key name i wybierz utworzonego wyżej użytkownika jako Owner.
  • Kliknij Create key. Token dostępu jest wyświetlany tylko raz, zaraz po zapisaniu.
  • Dla wiadomości tekstowych dodaj uprawnienia w sekcji Messages: Send SMS, Send MMS.
  • Dla alertów głosowych dodaj uprawnienia w sekcji Calls: Make a TTS Advanced call.
  • Zapisz ustawienia
 
 

Wdróż adapter

git clone https://github.com/smseagle/alertmanager-sms-calls.git
cd alertmanager-sms-callsenv 
Uzupełnij docker-compose.yml:
Zmienna Opis
SMSEAGLE_URL adres urządzenia, np. https://192.168.1.101
SMSEAGLE_TOKEN token APIv2 z sekcji konfiguracji SMSEagle
SMSEAGLE_VERIFY_TLS true/false (urządzenia SMSEagle często używają certyfikatu samopodpisanego)
ADAPTER_WEBHOOK_TOKEN token bearer chroniący przychodzący endpoint adaptera (wymagany)
SMSEAGLE_DEFAULT_RECIPIENTS domyślni odbiorcy: numer lub grupa z książki telefonicznej (Phonebook)
SMSEAGLE_ROUTES routing według ważności, np. critical=+48...,oncall-group;warning=noc-group
MESSAGE_MODE one_per_alert lub summary
MAX_INDIVIDUAL_ALERTS próg, po którego przekroczeniu adapter przełącza się na pojedynczego SMS-a podsumowującego
ESCALATE_CALL_SEVERITIES poziomy ważności, które dodatkowo uruchamiają połączenie TTS Advanced
TTS_CALL_DURATION czas połączenia w sekundach (domyślnie 20)
TTS_VOICE_ID identyfikator modelu głosu dla połączenia TTS Advanced (domyślnie 2; dostępne identyfikatory sprawdzisz w Web-GUI swojego urządzenia)
Zbuduj i uruchom kontener:
docker compose up -d --build

3. Skonfiguruj Alertmanager

Dodaj odbiornik wskazujący na adapter do istniejącego pliku alertmanager.yml (gotowy do dostosowania fragment znajdziesz w examples/alertmanager-example.yml):

    • Ustaw url na adres, pod którym adapter jest osiągalny z Alertmanagera, np. http://smseagle-adapter:8080/alert w tej samej sieci Docker Compose.
    • Ustaw http_config.authorization.credentials na tę samą wartość co ADAPTER_WEBHOOK_TOKEN: Alertmanager wysyła go jako Authorization: Bearer <token>, czego wymaga adapter.
    • Zostaw send_resolved: true, jeśli chcesz też otrzymywać powiadomienia [RESOLVED] oraz max_alerts: 0, aby Alertmanager nie obcinał dużych grup alertów, zanim dotrą do adaptera. Obsługa lawin alertów to zadanie adaptera (MESSAGE_MODE/MAX_INDIVIDUAL_ALERTS), nie Alertmanagera.
    • Użyj matchers/routes do wysyłania do odbiornika smseagle tylko wybranych alertów albo kieruj alerty wyłącznie według ważności wewnątrz adaptera przez SMSEAGLE_ROUTES. Oba wzorce znajdziesz w pliku przykładowym.

Zwaliduj konfigurację i przeładuj ją:

amtool check-config alertmanager.yml
# następnie przeładuj/zrestartuj Alertmanager albo wyślij SIGHUP / POST /-/reload

4. Przetestuj całość od początku do końca

Wywołaj prawdziwy alert i sprawdź w logach adaptera wpisy SMS -> ... / TTS call -> ... oraz na stronie Status Alertmanagera ostatnią próbę powiadomienia odbiorcy.

Warto wiedzieć

  • Odbiorcą jest numer telefonu (+48...) albo nazwa grupy z książki telefonicznej (Phonebook). To to samo pole, dwa zastosowania.
  • smseagle_to w konkretnej regule Prometheusa zawsze nadpisuje routing według ważności dla tego alertu.
  • Adapter odmawia uruchomienia bez ADAPTER_WEBHOOK_TOKEN (jego przychodzący endpoint /alert wymaga tego tokenu bearer). Można to wyłączyć wyłącznie przez ALLOW_UNAUTHENTICATED_WEBHOOK=true w całkowicie odizolowanej, zaufanej sieci.
  • Oficjalnie tworzony i utrzymywany przez zespół SMSEagle, na licencji MIT, z automatycznym zestawem testów: github.com/smseagle/alertmanager-sms-calls

Poznaj urządzenie demo SMSEagle

SMSEagle to rozwiązanie sprzętowo-programowe, które gwarantuje szybkie dostarczanie wiadomości do wskazanych odbiorców, niezależnie od tego, czy chodzi o powiadomienia, alerty czy ważne komunikaty.

Po rejestracji na demo otrzymujesz zdalny dostęp do fizycznego urządzenia NXS-9750.

  • 14-dniowy bezpłatny okres próbny
  • Dostęp do ponad 20 funkcji

Czym jest sprzętowa
bramka SMS?

Poznaj więcej
funkcji SMSEagle