尝试
check_http -H www.example.com -f follow -p 8080 -u /hello/#/world -s "content"
结果
HTTP WARNING: HTTP/1.1 404 Not Found - X bytes in 0.00X second response time |time=0.00XYZ
分析
虽然已经有多个源文件被读取[ 1,2,3,4 ]和一个Wget,即wget www.example.com:8080/hello/#/world
返回OK,但是check_http
是否不起作用还不清楚。
也许#
是造成一个问题。 根据这个文档 , #
是一个锚,这意味着如果var x
表示x
是#/world
,但是这无助于解决问题。
使用wget下载www.example.com
,随后检查world
button,指示此button与JavaScript源相关联。 这个发现也没有帮助解决这个问题。
尝试两个
check_http -H www.example.com -f follow -p 8080 -u /hello/\#/world -v
结果二
GET /hello/#/world HTTP/1.1 User-Agent: check_http/vX (nagios-plugins X) Connection: close Host: www.example.com:8080 http://www.example.com:8080/hello/#/world is X characters STATUS: HTTP/1.1 404 Not Found **** HEADER **** Server: Apache-Coyote/X Content-Type: text/html;charset=utf-8 Content-Length: X Date: Thu, Day Month Year Time GMT Connection: close **** CONTENT **** <html><head><title>ApplicationServer - Error report</title><style></style> </head><body><h1>HTTP Status 404 - /hello/#/world</h1><p><b>type</b> Status report</p><p><b>message</b> <u>/hello/#/world</u></p><p><b>description</b> <u>The requested resource (/hello/#/world) is not available.</u></p><h3>ApplicationServer</h3></body></html> HTTP WARNING: HTTP/1.1 404 Not Found - X bytes in 0.00X second response time |time=0.00Xs;;;0.000000 size=XB;;;0
分析二
实用
如果想要查看http://www.example.com:8080/hello/#/world ,则必须导航到http://www.example.com:8080/hello并点击world
button。 一旦button被点击,内容可以使用萤火虫查看和检查。
技术
该URL使用Wget下载。 该页面包含多个表示button的JavaScript源代码,例如:
<script src="button.js"></script> <script src="world.js"></script>
function和技术观点之间存在差异。 在使用Wget下载的页面中省略了使用Firebug可以查看和检查的内容。
check_http
插件只会看到wget / curl显示了什么,所以它不能检查你想要检查的东西。
如果你想要一个可以真正运行客户端JavaScript的检查,你需要用check_webinject , Selenium和check_selenium (如本文所讨论的 ),或者Sahi和Sakuli来看看WebInject 。
#
是锚定的,这是正确的。 这些是由客户端解释,而不是服务器。 锚点是网站的一部分,所以必须加载整个网站并在其中search锚点。
您应该使用以下检查:
check_http -H www.example.com -f follow -p 8080 -u /hello/
稍后,您可以添加-s world
来searchHTML内容中的“世界”(如果它在那里,而不是通过另一层JavaScript添加的话)。