使用 cURL,我可以通过传递 --cookies 成功登录我想要 Nagios 测试的网站。
像这样: curl --cookie“user=4reqrerqwr;userlogin=123adsfjlk324”http://mysite.com/home/index.aspx-v | grep 欢迎
我知道它成功了,因为:1,我可以直观地看到呈现的代码;2,只有在身份验证成功的情况下,才会看到对 Welcome 的 grep 搜索。
我尝试在 Nagios 中使用 check_http 来模仿这一点,如下所示:
./check_http -H mysite.com -u http://mysite.com/home/index.aspx -f follow
-s Welcome -k 'Cookie: user=4reqrerqwr;userlogin=123adsfjlk324' -v
我看到的一个很大的区别是,在 cURL 中 cookie 设置在 1 行上,但 check_http 的详细响应显示 cookie 在两行上。
Cookie: user=4reqrerqwr;userlogin=123adsfjlk324
对阵
Cookie: user=4reqrerqwr
userlogin=123adsfjlk324
我愿意听取建议,当然还有替代方案。我检查过 WebInject,但这似乎太接近了,我不想放弃它。
最后,我尝试了 check_curl,并扩展了它以支持 cookies。这确实有效,但我得到的响应是 (null),并且无论返回的结果是否有效,grep 都不会导致 Nagios 失败。
答案1
尝试通过
check_http ... -k "Cookie: user=4reqrerqwr" -k "Cookie: userlogin=123adsfjlk324"