用PHP构建一个简易监视引擎
<logger>emailme</logger> </loggers> </service> <service> <class>HTTP_ServiceCheck</class> <params> <description>Home Page HTTP Check</description> <url>http://www.schlossnagle.org/~george</url> <timeout>30</timeout> <frequency>3600</frequency> </params> <loggers> <logger>errorlog</logger> </loggers> </service> </services> </config> 当传递这个XML文件时,ServiceCheckRunner的构造器对于每一个指定的日志实例化一个日志记录程序。然后,它相应于每一个指定的服务实例化一个ServiceCheck对象。 注意 该构造器使用Reflection_Class类来实现该服务和日志类的内在检查-在你试图实例化它们之前。尽管这是不必要的,但是它很好地演示了PHP 5中新的反射(Reflection)API的使用。除了这些类以外,反射API还提供一些类来实现对PHP中几乎任何内部实体(类,方法或函数)的内在检查。 为了使用你构建的引擎,你仍然需要一些包装代码。监视程序应该会禁止你试图两次启动它-你不需要对每一个事件建立两份消息。当然,该监视程序还应该接收包括下列选项在内的一些选项: 选项 描述 下面是最终的监视程序脚本,它分析选项,保证排它性并且运行服务检查: require_once "Service.inc"; 注意,这个示例使用了定制的getOptions()函数。 在编写一个适当的配置文件后,你可以按如下方式启动该脚本: > ./monitor.php -f /etc/monitor.xml 这可以保护并继续监视直到机器被关掉或该脚本被杀死。 这个脚本相当复杂,但是仍然存在一些容易改进的地方,这些只好留给读者作为练习之用: · 添加一个重新分析配置文件的SIGHUP处理器以便你能够在不启动服务器的情况下改变配置。 · 编写一个能够登录到一个数据库的ServiceLogger以用于存储查询数据。 · 编写一个Web前端程序以为整个监视系统提供一种良好的GUI。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |