Answers:
我尝试使用check_http,但是即使将网站重定向到错误页面也能成功
这可以用解决check_http --expect
。这是来自check_http --help的文档:
-e,--expect = STRING以逗号分隔的字符串列表,在服务器响应的第一行(状态)中应至少包含一个(默认值:HTTP / 1。)如果指定,则跳过所有其他状态行逻辑(例如:3xx,4xx,5xx处理)
以下示例将为200 OK HTTP响应代码返回“ OK” ,但对于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"
您可以使用Cucumber-Nagios创建更复杂的检查(本着行为驱动开发/监视的精神)。
check_http
插件支持该-s string
选项,该选项使您能够查找HTTP响应中的某些字符串。如果页面成功打印特定字符串,则可以对其进行检查以区别于错误。