0

我已经在 Linux 服务器中安装了 Nagios(Nagios® Core™ 版本 4.2.2)。我已经使用 check_http 为 HTTPS url 编写了一个 JIRA URL 检查。

它应该得到响应 200,但它给出响应 HTTP CODE 302。

[demuc1dv48:/pkg/vdcrz/Nagios/libexec][orarz]# ./check_http -I xx.xx.xx  -u https://xxx.xxx.xxx.com/secure/Dashboard.jspa -S CONNECT
SSL Version: TLSv1
HTTP OK: HTTP/1.1 302 Found - 296 bytes in 0.134 second response time |time=0.134254s;;;0.000000 size=296B;;;

所以我在nagios的配置文件中也进行了同样的配置。

define command{
        command_name    check_https_jira_prod
        command_line    $USER1$/check_http -I xxx.xxx.xxx.com  -u https://xxx.xxx.xxx.com/secure/Dashboard.jspa -S CONNECT -e 'HTTP/1.1 302'
}

现在我的 JIRA 服务器已关闭,但它没有反映在 nagios 检查中。nagios 响应仍然只显示 HTTP 代码 302。

如何解决这个问题?

4

2 回答 2

1

follow除非您在 chech_http 脚本中设置参数,否则您无法获得代码 200 。

我建议你使用这样的东西:

./check_http -I jira-ex.telefonica.de  -u https://xxx.xxx.xxx.com/secure/Dashboard.jspa -S -f follow

对于您的用例,这-f follow是强制性的。

于 2018-02-14T21:59:36.090 回答
1

您没有指定,但我假设您在 Nagios 中央服务器commands.cfg配置文件中定义了您的命令,但您还需要在services.cfg服务使用命令运行脚本时定义一个服务。

如果您check_http从另一台服务器运行检查,您还需要nrpe.cfg在该远程计算机上的配置文件中定义它,然后重新启动nrpe

作为旁注,从您共享的输出中,我相信您没有使用check_httpNagios 插件正确支持的标志。从你的帖子:

check_http -I xxx.xxx.xxx.com  -u https://xxx.xxx.xxx.com/secure/Dashboard.jspa -S CONNECT -e 'HTTP/1.1 302'

来自./check_http -h

-I, --IP-address=ADDRESS
    IP address or name (use numeric address if possible to bypass DNS lookup).

您正在使用主机名 (xxx.xxx.xxx.com )

-S, --ssl=VERSION
    Connect via SSL. Port defaults to 443. VERSION is optional, and prevents auto-negotiation (1 = TLSv1, 2 = SSLv2, 3 = SSLv3).

你指定CONNECT

于 2018-02-14T12:44:52.333 回答