我想创build一个nagios检查,testing某个文件在公共网站上是否可用,以及该文件是否包含某行文本。
从命令行我一直在执行:
./check_http -H 192.168.1.2 -u http://192.168.1.2/index.html -t 5 -s“公司名称”
如果我删除文件或更改正在查找的文本,则通过确定并失败。
现在我想把它纳入我的nagiosconfiguration文件。
我创build一个具有上述IP地址的主机,并创build一个服务如下。
check_command check_http!-u /index.html -t 5 -s“公司名称”
但是,如果我更改文件名,它正在检查或正在检查的文本仍然通过,即使我知道他们不存在于网站上。
我在做什么错我觉得我必须testing一个不同的文件或东西,它总是通过。
当你手动执行命令时,你正在调用/ usr / lib / nagios / plugins / check_http是否正确?
当您从nagiosconfiguration调用check_http时 ,它会查看/etc/nagios-plugins/config/http.cfg以确定check_http命令参数。
你需要做的是创build一个自定义检查,如:
define command { command_name check_web_content command_line $USER1$/check_http -H $HOSTADDRESS$ -t 60 -w 15 -c 45 -u $ARG1$ -s $ARG2$
}
然后在你的服务configuration你的check_command应该是这样的:
check_command check_web_content!http://www.domain.com/index.html!"Text on site"
首先你需要定义一个命令:
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"
您可以在Nagiosconfiguration中设置以下内容:查看实际执行的命令(请参阅完整命令的扩展):
debug_level=-1 debug_verbosity=2 debug_file=/usr/local/nagios/var/nagios.debug