进程监视http/xml
nomit的Python项目详细描述
nomit是一个小库,可用于处理http/xml post 来自Monit实例的请求。虽然这是一个相对微不足道的适应 在python的BaseHTTPRequestHandler中,多个 其他项目。因此,nomit注册为自己的 项目。
Monit是用于管理unix系统的免费实用程序。多重监视器 实例可以由其姊妹项目monbit集中管理。 monit通过http/xml post请求与monit通信。
监视程序类
nomit提供一个类 BaseHTTPRequestHandler。monithandler是子类 本身。
它提供两种方法:
- handle_unparsed()用http/xml post请求的原始xml调用。
- handle_parsed()在xml被lxml.objectify.fromstring()解析后调用。
这些方法的默认实现什么也不做。任何派生类都必须 根据需要实现这些方法。
示例
下面的示例实现handle_unparsed()以将原始XML打印为 由monit代理发布,并使用handle\u parsed()显示数据 由lxml.objectify.fromstring()返回的结构
import BaseHTTPServer import xml.dom.minidom import lxml.objectify import nomit class ExampleHandler(nomit.MonitXmlHandler): def handle_unparsed(self, s): print xml.dom.minidom.parseString(s).toprettyxml() def handle_parsed(self, o): print lxml.objectify.dump(o) server = BaseHTTPServer.HTTPServer(("127.0.0.1", 2811), ExampleHandler) server.serve_forever()
监控配置
必须告诉monit代理将状态信息发布到python 上面的脚本。从代理的角度来看,脚本很简单(另一个[1]。) 普通服务器。
monit.conf:
set mmonit http://monit:monit@mmonit.example.com:8080/collector http://localhost:2811/
[1]指令set mmonit接受多个url。