Nagios 没有使用 check_http 进行重定向

Bra*_*don 5 nagios

目前为了测试,我将服务检查设置如下:

define service{
use     generic-service 
host_name       <host>
service_description HTTP
check_command   check_http!-s "blablabla" -f follow
}
Run Code Online (Sandbox Code Playgroud)

请注意,页面上不存在字符串“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
Run Code Online (Sandbox Code Playgroud)

但是,如果我直接运行 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
Run Code Online (Sandbox Code Playgroud)

Kha*_*led 6

您确定要使用相同的参数调用相同的插件吗?在我看来,您没有正确定义服务。通常,参数在没有选项的情况下传递,例如:

check_command   check_http!blablabla!follow
Run Code Online (Sandbox Code Playgroud)

他们被!. 在命令定义中,您可以指定 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$'
        }
Run Code Online (Sandbox Code Playgroud)

参数$ARG1$$ARG2$将替换为您在服务定义中指定的实际值。