Определения уведомлений 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 должен уведомить контакт через смс через 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 [email protected]
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
родовое-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!
}
родовое-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!
}
1 ответ
Я понял это, на самом деле конфигурации были в порядке, проблема была в том, что nagios выполняет сценарий SMS как пользователь 'nagios', у которого нет прав на запись в файлы журнала в /tmp/. Но это не объясняется ни в одном из блогов, которые я читаю по настройке уведомлений nagios через SMS. Я вроде как должен был это выяснить сам, почти заставил мою голову взорваться.