使用zope 2启用zc.monitor
five.z2monitor的Python项目详细描述
Introduction
这个包允许从命令行监视zope 2实例。它在zope 2中插入zc.monitor(http://pypi.python.org/pypi/zc.monitor)和zc.z3 monitor(http://pypi.python.org/pypi/zc.z3monitor)。 monitor使用zc.ngi服务器并定义另一个线程来处理监视。这样,即使 HTTPServer正在挂起
Zope config
将此添加到您的zope.conf中,以便在端口8888上的环回接口上启用zc.ngi服务器:
<product-config five.z2monitor> bind 127.0.0.1:8888 </product-config>
Probes
此软件包已使用来自不同软件包的探针进行了测试:
- zc.z3monitor
- Products.ZNagios
- zc.monitorcache
- zc.monitorlogstats
- ztfy.monitor
要注册自己的探测,只需定义一个提供zc.z3monitor.interfaces.IZ3MonitorPlugin接口的新实用程序像这样:
<utility component=".zc_uptime" provides="zc.z3monitor.interfaces.IZ3MonitorPlugin" name="uptime" />
组件应该如下所示:
def zc_uptime(connection, database='main'): """uptime of the zope instance in seconds""" app = App() elapsed = time.time() - app.Control_Panel.process_start print >> connection, elapsed app._p_jar.close()
zodb连接始终是第一个参数。之后可以添加自己的参数
一旦启动实例,您将看到如下内容:
INFO zc.ngi.async.server listening on ('127.0.0.1', 8888)
ngi服务器已启动,您可以使用netcat查找值,例如:
echo 'uptime' | nc -i 1 localhost 8888
plone.recipe.zope2instance
如果使用buildout和plone.recipe.zope2instance recipe(http://pypi.python.org/pypi/plone.recipe.zope2instance)配置zope实例。 要定义zc.z2monitor主机和端口,请使用zope-conf-additional选项,如下所示:
[client1] recipe = plone.recipe.zope2instance http-address = 8080 user = admin:admin eggs = ${buildout:eggs} zcml = ${buildout:zcml} zope-conf-additional = <product-config five.z2monitor> bind 127.0.0.1:8888 </product-config>
实例运行后,您将能够从 命令行使用:
bin/instance monitor dbinfo main
相当于:
echo 'dbinfo main' | nc -i 1 <zc.monitor host> <zc.monitor port>
要了解已注册的探测器,请使用以下命令:
bin/instance monitor help