В настоящее время для тестирования я установил проверку службы следующим образом:
define service{
use generic-service
host_name <host>
service_description HTTP
check_command check_http!-s "blablabla" -f follow
}
Обратите внимание, что на странице нет строки «blablabla», это просто для тестирования.
Nagios сообщает
HTTP OK: HTTP/1.1 301 Moved Permanently - 294 bytes in 6.607 second response time
Performance Data: time=6.606636s;;;0.000000 size=294B;;;0
Однако, если я запускаю плагин check_http напрямую, я получаю следующее:
<user>@<nagiosbox>:/usr/lib/nagios/plugins# ./check_http -H <host> -s "blablabla" -f follow
HTTP CRITICAL: HTTP/1.1 200 OK - string 'blablabla' not found on 'http://<host>:80/' - 92654 bytes in 3.984 second response time |time=3.983636s;;;0.000000 size=92654B;;;0
Вы уверены, что вызываете один и тот же плагин с теми же аргументами? Мне кажется, вы неправильно определили сервис. Обычно аргументы передаются без таких опций, как:
check_command check_http!blablabla!follow
Они пронизаны !
. В определении команды вы можете указать правильные параметры плагина check_http, например:
# 'check_http' command definition
define command{
command_name check_http
command_line /usr/lib/nagios/plugins/check_http -H '$HOSTADDRESS$' -s '$ARG1$' -f '$ARG2$'
}
Аргументы $ARG1$
и $ARG2$
будут заменены реальными значениями, которые вы указали в определении службы.