Назад | Перейти на главную страницу

Мониторинг Nagios с помощью SMS-оповещений через Clickatell

Я пытаюсь настроить Nagios 3 для мониторинга сервера через HTTP путем поиска определенной строки с помощью check_http команду следующим образом.

define command {
    command_name check_http-mysite
    command_line /usr/lib/nagios/plugins/check_http -H mysite.example.com -s "Some text" }

Проверка HTTP для конкретной строки работает нормально после того, как я ее проверил. Я безуспешно пытался настроить уведомление с электронной почты на SMS с помощью Clickatell SMTP API. Как заставить его работать?

Я нашел пример в Доработка - SMS-сообщения Nagios, хотя я, кажется, что-то упускаю.

Редактировать:
Думаю, мое объяснение раньше было очень расплывчатым. Я пытаюсь контролировать веб-сервер таким образом, чтобы искать определенную строку на странице через HTTP. Команда определена в command.cfg следующим образом

    # 'check_http-mysite command definition'
    define command {
        command_name check_http-mysite
        command_line /usr/lib/nagios/plugins/check_http -H mysite.example.com -s "Some text" 
    }

    # 'notify-host-by-sms' command definition
    define command {
        command_name  notify-host-by-sms
        command_line  /usr/bin/send_sms $CONTACTPAGER$ "Nagios - $NOTIFICATIONTYPE$ :Host$HOSTALIAS$ is $HOSTSTATE$ ($OUTPUT$)"
    }

    # 'notify-service-by-sms' command definition
    define command {
        command_name  notify-service-by-sms
        command_line  /usr/bin/send_sms $CONTACTPAGER$ "Nagios - $NOTIFICATIONTYPE$: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ ($OUTPUT$)"
    }

Теперь, если Nagios не находит «Некоторый текст» на главной странице mysite.example.com, Nagios должен уведомить контакт с помощью SMS через HTTP API Clickatell, для которого у меня есть сценарий, который я протестировал и обнаружил, что он работает нормально.

Каждый раз, когда я меняю определение команды для поиска строки, которой нет на странице, и перезапускаю Nagios, я вижу в веб-интерфейсе, что строка не найдена. Я не понимаю, почему уведомление не отправляется, хотя я определил хозяин, группа хостов, контакт, контактная группа, служба и так далее. Что мне не хватает, это мои определения,

host.cfg

define host {
    use              generic-host
    host_name        HAL
    alias            IBM-1
    address          xxx.xxx.xxx.xxx
    check_command    check_http-mysite
}

hostgroups_nagios2.cfg

# my website
define hostgroup{
    hostgroup_name   my-servers
    alias            All My Servers
    members          HAL
}

contacts_nagios2.cfg

define contact {
    contact_name                    colin
    alias                           Colin Y
    service_notification_period     24x7
    host_notification_period        24x7
    service_notification_options    w,u,c,r,f,s
    host_notification_options       d,u,r,f,s
    service_notification_commands   notify-service-by-email,notify-service-by-sms
    host_notification_commands      notify-host-by-email,notify-host-by-sms
    email                           myaccount@mysite.com
    pager                           +254xxxxxxxxx
}

define contactgroup {
    contactgroup_name               site_admin
    alias                           Site Administrator
    members                         colin
}

services_nagios2.cfg

# Check for particular string in page via HTTP.
define service {
    hostgroup_name                  my-servers
    service_description             STRING CHECK
    check_command                   check_http-mysite
    use                             generic-service
    notification_interval           0 ; Set > 0 if you want to be renotified.
    contacts                        colin
    contact_groups                  site_admin
}

Надеюсь, на этот раз я ясно объяснил свою проблему :-)

  1. Запустить /usr/bin/send_sms из командной строки, чтобы убедиться, что Clickatell работает.
  2. Взгляни на nagios.log или /var/log/messages чтобы увидеть, что у тебя есть nagios: SERVICE NOTIFICATION всякий раз, когда у тебя есть "строка не найдена" в веб-интерфейсе.