Я пытаюсь настроить 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
}
Надеюсь, на этот раз я ясно объяснил свою проблему :-)
/usr/bin/send_sms
из командной строки, чтобы убедиться, что Clickatell работает.nagios.log
или /var/log/messages
чтобы увидеть, что у тебя есть nagios: SERVICE NOTIFICATION
всякий раз, когда у тебя есть "строка не найдена" в веб-интерфейсе.