Home / Integracje i pluginy / Icinga SMS Integration

Wysyłka SMS, MMS z Icinga dzięki SMSEagle - instrukcja intregracji​

Poniżej znajdziesz opis jak zintegrować Icinga z urządzeniem SMSEagle, w celu obsługi SMS/MMS. Proces integracji jest prosty i powinien zająć nie więcej niż 10 minut.
(Tutorial dostępny jest także na stronie Nagios Exchange).

SMSEagle to sprzętowa bramka SMS. Działa bez dostępu do internetu. Dzięki temu nie jest wymagane połączenie z zewnętrznymi usługodawcami. Wszystkie alerty i powiadomienia generowane są lokalnie i wysyłane bezpośrednio przez sieć komórkową. Urządzenia SMSEagle są wykorzystywane przede wszystkim, gdy istnieje konieczność zachowania wysokiego poziomu bezpieczeństwa, oraz w środowiskach izolowanych.

Konfiguracja SMSEagle

  1. Utwórz nowego użytkownika dla tego skryptu w SMSEagle webGUI > menu Użytkownicy.

  2. Po zapisaniu użytkownika edytuj jego uprawnienia klikając Dostęp do API:
    a) zaznacz APIv1
    b) kliknij wygeneruj nowy token
    To wygeneruje nowy API access token dla Twojego SMSEagle. Token ten w dalszej części będzie oznaczany jako SMSEAGLEAPITOKEN – zamień go w skryptach na swoją wartość.

  3. W tym samym menu dodaj uprawnienia dla metod APIv1:

    • send_sms → sms

    • ring_call → ring

    • tts_call → tts

    • tts_adv_call → tts_adv

Konfiguracja Icinga

  1. Pobierz najnowszą wersję skryptu notify_eagle_sms.pl z repozytorium:
    https://github.com/smseagle/smseagle-nagios
    Umieść plugin w katalogu pluginów Icinga.

  2. Utwórz komendy powiadomień SMS (zazwyczaj w pliku commands.cfg).

  3. Zamień:

    • SMSEAGLEURL → adres URL Twojego urządzenia SMSEagle (np. http://192.168.50.150)

    • SMSEAGLEAPITOKEN → Twój token API z SMSEagle (np. NZg2yNmWYb5Q7I3Y3Ifnk5E)

    • (opcjonalnie) dodaj parametr -duration z czasem trwania połączenia (w sekundach, np. -duration 15) – dotyczy call.

    • (dla TTS Advanced) zamień SMSEAGLEVOICE na ID modelu głosu z menu Calls > TTS Voice models w SMSEagle.


Przykładowe komendy

 
define command { command_name notify-by-sms command_line $USER1$/notify_eagle_sms.pl -s SMSEAGLEURL -a SMSEAGLEAPITOKEN -dstaddr $CONTACTPAGER$ -t "$NOTIFICATIONTYPE$ $SERVICESTATE$ $SERVICEDESC$ Host($HOSTNAME$) Info($SERVICEOUTPUT$) Date($SHORTDATETIME$)" } define command { command_name host-notify-by-sms command_line $USER1$/notify_eagle_sms.pl -s SMSEAGLEURL -a SMSEAGLEAPITOKEN -dstaddr $CONTACTPAGER$ -t "$NOTIFICATIONTYPE$ $HOSTSTATE$ Host($HOSTALIAS$) Info($HOSTOUTPUT$) Time($SHORTDATETIME$)" } define command { command_name notify-by-ring-call command_line $USER1$/notify_eagle_sms.pl -s SMSEAGLEURL -a SMSEAGLEAPITOKEN -c ring -dstaddr $CONTACTPAGER$ -t "$NOTIFICATIONTYPE$ $SERVICESTATE$ $SERVICEDESC$ Host($HOSTNAME$) Info($HOSTOUTPUT$) Time($SHORTDATETIME$)" } define command { command_name host-notify-by-ring-call command_line $USER1$/notify_eagle_sms.pl -s SMSEAGLEURL -a SMSEAGLEAPITOKEN -c ring -dstaddr $CONTACTPAGER$ -t "$NOTIFICATIONTYPE$ $HOSTSTATE$ Host($HOSTALIAS$) Info($HOSTOUTPUT$) Time($SHORTDATETIME$)" } define command { command_name notify-by-tts-call command_line $USER1$/notify_eagle_sms.pl -s SMSEAGLEURL -a SMSEAGLEAPITOKEN -c tts -dstaddr $CONTACTPAGER$ -t "$NOTIFICATIONTYPE$ $SERVICESTATE$ $SERVICEDESC$ Host($HOSTALIAS$) Info($HOSTOUTPUT$) Time($SHORTDATETIME$)" } define command { command_name host-notify-by-tts-call command_line $USER1$/notify_eagle_sms.pl -s SMSEAGLEURL -a SMSEAGLEAPITOKEN -c tts -dstaddr $CONTACTPAGER$ -t "$NOTIFICATIONTYPE$ $HOSTSTATE$ Host($HOSTALIAS$) Info($HOSTOUTPUT$) Time($SHORTDATETIME$)" } define command { command_name notify-by-tts-adv-call command_line $USER1$/notify_eagle_sms.pl -s SMSEAGLEURL -a SMSEAGLEAPITOKEN -c tts_adv -dstaddr $CONTACTPAGER$ -voiceid SMSEAGLEVOICE -t "$NOTIFICATIONTYPE$ $SERVICESTATE$ $SERVICEDESC$ Host($HOSTALIAS$) Info($HOSTOUTPUT$) Time($SHORTDATETIME$)" } define command { command_name host-notify-by-tts-adv-call command_line $USER1$/notify_eagle_sms.pl -s SMSEAGLEURL -a SMSEAGLEAPITOKEN -c tts_adv -dstaddr $CONTACTPAGER$ -voiceid SMSEAGLEVOICE -t "$NOTIFICATIONTYPE$ $HOSTSTATE$ Host($HOSTALIAS$) Info($HOSTOUTPUT$) Time($SHORTDATETIME$)" }

 

Konfiguracja kontaktów

W pliku contacts.cfg dodaj kontakt.
Pole pager powinno zawierać numer telefonu w pełnym międzynarodowym formacie, bez znaku + (np. 48xxxxxxxxx).
Jeśli operator wymaga znaku „+”, należy go zastąpić 00.

 
define contact { contact_name engineer alias Support Engineer service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r host_notification_options d,u,r service_notification_commands notify-by-email,notify-by-sms host_notification_commands host-notify-by-email,host-notify-by-sms email engineer@somedomain.com pager 48xxxxxxxx }

Konfiguracja Icinga (alternatywna metoda)

Na Icinga Exchange dostępny jest także pakiet skryptów, które mogą służyć do komunikacji ze SMSEagle:

  • notify_smseagle – wysyła SMS przez urządzenie SMSEagle,

  • check_smseagle – sprawdza siłę sygnału GSM/3G/4G,

  • smseagle_ack.cgi – skrypt dla funkcji callback url w SMSEagle, analizuje przychodzące SMS i potwierdza problemy hostów/usług, jeśli taka dyspozycja przyjdzie SMS-em.

Czym jest sprzętowa
bramka SMS?

Dowiedz się więcej o
funkcjach SMSEagle

Poznaj urządzenie demo SMSEagle

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

Po zarejestrowaniu się w wersji demonstracyjnej otrzymasz zdalny dostęp do naszego fizycznego urządzenia NXS-9750.

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