我想创建一个 nagios 检查我的安全网站。检查需要做的就是使用我传递给脚本的登录详细信息登录网站。
有谁知道可以让我做到这一点的插件或脚本吗?
我曾尝试使用check_http
,但即使网站被重定向到错误页面,我也能成功。
答案1
我尝试使用 check_http,但即使网站重定向到错误页面,我也能成功
这可以用 来解决check_http --expect
。以下是来自check_http --help:
-e, --expect=STRING 以逗号分隔的字符串列表,其中至少有一个字符串应出现在服务器响应的第一个(状态)行中(默认值:HTTP/1)。如果指定,则跳过所有其他状态行逻辑(例如:3xx、4xx、5xx 处理)
以下示例将返回“OK”200 正常HTTP 响应代码,但对于 302 重定向将出现严重错误。
host % check_http --expect=200
HTTP CRITICAL - Invalid HTTP response received from host: HTTP/1.0 301 OK
对于安全的网站(通过 SSL)和身份验证,还请检查 check_http--ssl
和--authorization
标志。
-S, --ssl 通过 SSL 连接。端口默认为 443
-a, --authorization=AUTH_PAIR 在具有基本身份验证的网站上使用用户名:密码
或者,也许您实际上并不想登录系统,而只是想确保页面需要用户名/密码,因为该用户名/密码可能会引起安全问题。在这种情况下,请尝试以下操作/401
是“未授权”或“需要授权”的 HTTP 响应代码 - 是401
必需的,之后的文本字符串是可选的,可能会显示几种不同的内容之一,因此我只需告诉 Nagios 期望即可401
。
check_http --expect="401"
答案2
您可以使用以下方式创建更复杂的检查(本着行为驱动开发/监控的精神)Cucumber-Nagios。