我在 Icinga 中有一个条件规则来执行检查 cas 身份验证的脚本。该脚本使用 URL 并在返回的页面中 grep 字符串。URL 和字符串被赋予脚本的属性。
这是主机的定义:
object Host "m" {
address = "1xx.xx7.25"
import "linux-server"
display_name = "m"
vars.curl_casURL = "http://xxx.html"
vars.curl_casGREP = "Returned String"
}
这是服务的代码,它仅在主机中定义了两个变量 curl_casURL 和 curl_casGREP 时执行:
apply Service "cas" {
import "generic-service"
check_command = "cas"
assign where (host.vars.curl_casURL && host.vars.curl_casGREP)
}
在web界面中,没关系,我看到脚本是为服务器“m”执行的。
这是命令:
object CheckCommand "cas" {
import "plugin-check-command"
command = [ PluginDir + "/icinga-curl_cas.sh" ]
command +=[ vars.curl_casURL + vars.curl_casGREP ]
}
但是由于脚本的第一行,脚本从不接收参数并回显临界状态:
if [ ! $1 ]
then
echo "GIVE ME AN URL, PLEASE!"
exit $STATE_CRITICAL
fi
我没有在文档中找到答案。有人可以帮我吗?谢谢!!