我需要监视使用AngularJS构build的单个页面应用程序,该应用程序在内部使用ui-view根据应用程序状态dynamic构build内容。
在最基本的状态下,应用程序显示欢迎页面,但显着 – 只有在AngularJS已经引导并设置适当的视图。 在此之前,DOM没有相关内容,只有占位符才会最终被ui-view所取代。
由Zabbix GET请求返回的响应仅包含占位符,而不是我需要检查的内容,所以即使应用程序按预期工作,Zabbix也不会看到内容。
我假设Zabbix没有处理Javascript并且构buildDOM的表示。 我已经设置了UAstring到一个实际的浏览器,以防万一这会强迫它来处理JS,但无济于事。
这可能使用Zabbix?
不,我不知道任何其他监控系统。 他们只需下载一个URL并检查特定的标题或内容。 他们不支持JavaScript。
这是单纯在JavaScript中使用AngularJS等构build单页应用程序的许多不利方面之一。 这也是为什么您的网页排名不佳或在Google中显示您想要的结果的原因。
在你的应用程序中有多种处理方法,所有这些方法都涉及渲染服务器端的内容 。 你会想要select这样的方法并实现它。 (当然,这并不关心停用JavaScript的用户 ,这是一个越来越多的后斯诺登,你唯一能做的就是扔掉你写的所有东西,然后再试一次。)
这是不可能的。 Zabbix只使用标准的curl库,它不支持JavaScript。 你将需要整合Zabbix与一些软件,可以使用JavaScript,例如:Selenium,HtmlUnit,crawljax,PhantomJS,…
Zabbix本身不支持。 您可以集成一些QA工具 – 例如, Selenium将使用浏览器引擎呈现页面。
不过,这需要build立Selenium并将其与Zabbix集成。 Zabbix trapper项目可能是完成整合的一个好方法。