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, offline bramka SMS. Nie wymaga zewnętrznego połączenia z systemami firm trzecich. Wszystkie powiadomienia generowane są lokalnie (on-premise) i wysyłane bezpośrednio do sieci komórkowej. Rozwiązanie to może być stosowane w instalacjach o podwyższonym poziomie bezpieczeństwa, bez dostępu do Internetu.

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