Для отправки SMS уведомлений через GSM-модем мастер-модуля Vutlan из Nagios можно воспользоваться следующими скриптами:
СМС для версий до 2.3.3 и ниже
СМС для версий от 2.4.0 и выше
sendsms_skycontrol
#!/bin/bash # Скрипт отправки SMS для версии 2.4.x системы SkyControl usage() { cat << EOF usage: $0 options OPTIONS: -?,-h Show this message -H Hostname or IP address -u User name -p Password -P Phone for sending -m Message for sending EOF } HOSTIP= USERNAME= PASSWORD= TOPHONE= MESSAGE='Test' while getopts “hH:u:p:P:m:” OPTION do case $OPTION in h) usage exit 1 ;; H) HOSTIP=$OPTARG ;; u) USERNAME=$OPTARG ;; p) PASSWORD=$OPTARG ;; P) TOPHONE=$OPTARG ;; m) MESSAGE=$OPTARG ;; ?) usage exit ;; esac done if [[ -z $HOSTIP ]] || [[ -z $USERNAME ]] || [[ -z $PASSWORD ]] || [[ -z $TOPHONE ]] || [[ -z $MESSAGE ]] then usage exit 1 fi # 1) хеш пароля HASH=`echo -n ${PASSWORD} | openssl dgst -sha1 | awk '{print $NF}'` # 2) авторизация RESPONSE=`curl -s -d "querytype=auth&name=${USERNAME}&h=${HASH}" "${HOSTIP}/engine.htm"` # 3) ключ сессии KEY=`echo -n ${RESPONSE} | awk -F"\"" '{print $4}'` # 4) отправить SMS curl -d "querytype=send_sms_message&k=${KEY}" --data-urlencode "to_phone=${TOPHONE}" --data-urlencode "message=${MESSAGE}" ${HOSTIP}/engine.htm > /dev/null 2>&1
Пример оправки SMS через скрипт:
/etc/nagios/objects/schosts.cfg
./sendsms_skycontrol -H 192.168.0.193 -p secret -P +777 -m 'This is a text'
где 192.168.0.193 - адрес мастер-модуля с установленным GSM-модемом;
secret - пароль пользователя для мастер-модуля с установленным GSM-модемом;
+777 - номер телефона для отправки сообщения;
'This is a text' - текст пересылаемого сообщения;
Для того, чтобы привязать текущий скрипт к Nagios, необходимо создать команды отправки уведомлений в файле конфигурации Nagios:
/etc/nagios/objects/commands.cfg
define command{ command_name notify-service-by-sms command_line $USER1$/sendsms_skycontrol -H 192.168.1.190 -p guest -P $CONTACTPAGER$ -m "Nagios – $NOTIFICATIONTYPE$ : $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" } define command{ command_name notify-host-by-sms command_line $USER1$/sendsms_skycontrol -H 192.168.1.190 -p guest -P $CONTACTPAGER$ -m "Nagios – $NOTIFICATIONTYPE$ : Host $HOSTALIAS$ is $HOSTSTATE$" }
Также необходимо создать, либо отредактировать контакт Nagios:
/etc/nagios/objects/contacts.cfg
define contact{ contact_name nagiosadmin ; Short name of user use generic-contact ; Inherit default values from generic-contact template (defined above) alias Nagios Admin ; Full name of user service_notification_options w,u,c,r host_notification_options d,u,r service_notification_commands notify-service-by-email,notify-service-by-sms host_notification_commands notify-host-by-email,notify-host-by-sms email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** pager +329999999999 ; <<***** CHANGE THIS TO YOUR PHONE NUMBER ****** }
Пример доставленных уведомлений:
Уведомление 1
Nagios – PROBLEM : Local EMS/Vutlan Element Service is WARNING
Уведомление 2
Nagios – PROBLEM : Local EMS/Vutlan Table of Elements Service is CRITICAL