Home / Integracje i pluginy / Nagios SMS Integration

Wysyłka SMS, MMS i wykonywanie połączeń głosowych z Nagios dzięki SMSEagle - instrukcja intregracji

Poniżej znajdziesz opis jak zintegrować Nagios z urządzeniem SMSEagle, w celu obsługi SMS/MMS. Proces integracji jest prosty i powinien zająć nie więcej niż 10 minut.

Ten poradnik jest także dostępny 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 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ść.

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

    • send_sms → sms

    • ring_call → ring

    • tts_call → tts

    • tts_adv_call → tts_adv

Konfiguracja Nagios

  1. Utwórz komendy powiadomień SMS w pliku commands.cfg.
  2. Zastąp SMSEAGLEURL adresem URL Twojego urządzenia SMSEagle, np. https://192.168.50.150
  3. Zastąp SMSEAGLEAPITOKEN swoim tokenem API, np. NZg2yNmWYb5Q7I3Y3Ifnk5E
    Parametr opcjonalny dla połączeń, domyślnie 10: dodaj -duration z czasem połączenia w sekundach, np. -duration 15
    Dla TTS Advanced wymagane: zastąp SMSEAGLEVOICE identyfikatorem modelu głosu z menu SMSEagle, Calls > TTS Voice models

Zdefiniuj poniższe 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$)" 
}
 
  1. W kontaktach Nagios, zwykle w pliku contacts.cfg, dodaj kontakt.
    Pole pager powinno zawierać numer telefonu w pełnym formacie międzynarodowym, np. 48xxxxxxxxx

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 }

Jeśli chcesz użyć znaku nowej linii w wiadomości, użyj ciągu: “$’\n'”.

Przykład: 

$USER1$/notify_eagle_sms.pl -s SMSEAGLEURL -a SMSEAGLEAPITOKEN -d $CONTACTPAGER$ -t "$NOTIFICATIONTYPE$"$'\n'"$HOSTSTATE$"$'\n'"Host($HOSTALIAS$)"$'\n'"Info($HOSTOUTPUT$)"$'\n'"Time($SHORTDATETIME$)"

Uwaga dla użytkowników Nagios XI:
Jeśli pojawia się błąd perla, dodaj na początku komendy pełną ścieżkę do interpretera perl w konfiguracji Nagios.

Jeśli podczas działania skryptu pojawia się błąd:
“Message sending error: LWP will support https URLs if the LWP::Protocol::https module is installed.”
zainstaluj pakiet liblwp-protocol-https-perl w swoim systemie.

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