Nagios 检查网站上的文件

Nagios 检查网站上的文件

我想创建一个 nagios 检查,测试某个文件是否在公共网站上可用,以及该文件是否包含某行文本。

从我一直在执行的命令行:

./check_http -H 192.168.1.2 -u http://192.168.1.2/index.html -t 5 -s "公司名称"

如果我删除文件或者更改它正在寻找的文本,则它会通过并且会失败。

现在我想将其合并到我的 nagios 配置文件中。

我创建一个具有上述 IP 地址的主机,并创建一个服务,如下所示。

check_command check_http!-u /index.html -t 5 -s "公司名称"

但是,如果我更改它正在检查的文件名或正在检查的文本,它仍然会通过,即使我知道它们不存在于网站上。

我做错了什么,我想我必须测试一个不同的文件或某些东西才能让它总是通过。

答案1

当您手动执行命令时,您正在调用/usr/lib/nagios/插件/check_http正确的?

当你打电话时检查http从 nagios 配置来看/etc/nagios-plugins/config/http.cfg确定检查http命令参数。

您需要做的是创建一个自定义检查,例如:

define command {
    command_name                   check_web_content
    command_line                   $USER1$/check_http -H $HOSTADDRESS$ -t 60 -w 15 -c 45 -u $ARG1$ -s $ARG2$

}

然后在您的服务配置中您的 check_command 应该是这样的:

check_command check_web_content!http://www.domain.com/index.html!"Text on site"

答案2

首先需要定义一个命令:

define command {
    command_name    check_http
    command_line    $USER1$/check_http -H $HOSTADDRESS$ \
                    -u $ARG1$ -t $ARG2$ -s $ARG3$
}

然后为您的主机条目定义 check_command 如下:

check_command    check_http!/index.html!5!"Company Name"

答案3

您也可以在 Nagios 配置中设置以下内容,查看实际执行的命令(查看完整命令的扩展):

debug_level=-1
debug_verbosity=2
debug_file=/usr/local/nagios/var/nagios.debug

相关内容