Я пытаюсь использовать Icinga для отслеживания определенной строки на веб-сайте. Когда я запускаю плагин из командной строки, кажется, что он работает нормально, но в Icinga-Web он всегда отображается как успешный, независимо от того, что я ввожу для строки.
#Doesn't Work - always returns ok
define service {
host_name mywebserver
service_description Check Website
servicegroups Websites
check_command check_http!-s "no such string" -H www.mysite.com -u /apath/ -t 7
use generic-service
notification_interval 60 ; set > 0 if you want to be renotified
}
Странно то, что если я запускаю плагин, расположенный в / usr / lib / nagios / plugins / check_http, как показано ниже, он дает мне то, что я ожидал:
./check_http -H www.mysite.com -u "/apath/" -s "no such string"
HTTP CRITICAL: HTTP/1.1 200 OK - string 'no such string' not found on...
Почему это могло быть?
Очевидно, что ваш ручной тест и ваша конфигурация Icinga отличаются.
Найдите свое определение для команды check_http. Он почти наверняка не обрабатывает ARG, которые вы ему передаете, по крайней мере, не так, как вы думаете.
Я предполагаю, что вы используете Ubuntu или Debian, судя по пути к плагину. Иди загляни в /etc/nagios-plugins/config/http.cfg
, и вы, вероятно, найдете что-то вроде этого:
# 'check_http' command definition
define command {
command_name check_http
command_line /usr/lib/nagios/plugins/check_http -H '$HOSTADDRESS$' -I '$HOSTADDRESS$' -f follow
}
Обратите внимание, что он не использует ни один из ARG1, ARG2 и т. Д., Поэтому полностью игнорирует все -s "no such string" -H www.mysite.com -u /apath/ -t 7
Вы должны написать новую команду, которая принимает аргументы, которые вы хотите использовать, а затем изменить вашу check_command на что-то вроде check_http_path_expect!/apath/!"no such string"
, Например.
Чтение страницы документации Понимание макросов и их работы поможет.