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

Определения уведомлений 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 не находит «Some text» на домашней странице mysite.example.com, nagios должен уведомить контакт через sms через http API Clickatell, у меня есть сценарий для этого, который я протестировал и обнаружил, что он работает нормально .

Всякий раз, когда я меняю определение команды для поиска строки, которой нет на странице, и перезапускаю nagios, я вижу в веб-интерфейсе, что строка не найдена. Я не понимаю, почему уведомление не отправляется, хотя я определил хост, группу хостов, контакт, контактную группу, службу и т. Д. То, что мне не хватает, это мои определения. В моем веб-доступе через cgi я вижу, что у меня есть уведомления, которые были определены и включены, хотя я не получаю уведомления по электронной почте и sms во время жесткого изменения статуса.

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
}

Может ли кто-нибудь сказать мне, где я ошибаюсь.

Вот определения generic-host и generic-service

generic-service_nagios2.cfg

# generic service template definition
define service{
        name                            generic-service ; The 'name' of this service template
        active_checks_enabled           1       ; Active service checks are enabled
        passive_checks_enabled          1       ; Passive service checks are enabled/accepted
        parallelize_check               1       ; Active service checks should be parallelized (disabling this can lead to major performance problems)
        obsess_over_service             1       ; We should obsess over this service (if necessary)
        check_freshness                 0       ; Default is to NOT check service 'freshness'
        notifications_enabled           1       ; Service notifications are enabled
        event_handler_enabled           1       ; Service event handler is enabled
        flap_detection_enabled          1       ; Flap detection is enabled
        failure_prediction_enabled      1       ; Failure prediction is enabled
        process_perf_data               1       ; Process performance data
        retain_status_information       1       ; Retain status information across program restarts
        retain_nonstatus_information    1       ; Retain non-status information across program restarts
                notification_interval           0               ; Only send notifications on status change by default.
                is_volatile                     0
                check_period                    24x7
                normal_check_interval           5
                retry_check_interval            1
                max_check_attempts              4
                notification_period             24x7
                notification_options            w,u,c,r
                contact_groups                  site_admin
        register                        0       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
}

generic-host_nagios2.cfg

define host{
        name                            generic-host    ; The name of this host template
        notifications_enabled           1       ; Host notifications are enabled
        event_handler_enabled           1       ; Host event handler is enabled
        flap_detection_enabled          1       ; Flap detection is enabled
        failure_prediction_enabled      1       ; Failure prediction is enabled
        process_perf_data               1       ; Process performance data
        retain_status_information       1       ; Retain status information across program restarts
        retain_nonstatus_information    1       ; Retain non-status information across program restarts
                max_check_attempts              10
                notification_interval           0
                notification_period             24x7
                notification_options            d,u,r
                contact_groups                  site_admin 
        register                        1       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
}

Я понял это, на самом деле конфигурации были в порядке, проблема заключалась в том, что nagios запускает сценарий SMS от имени пользователя nagios, у которого нет прав на запись в файлы журнала в / tmp /. Но это не объясняется ни в одном из прочитанных мной блогов о настройке уведомлений nagios через SMS. Я вроде как должен был это выяснить самому, у меня чуть не взорвалась голова.