更新和查询xymon服务器上的状态
Xymon的Python项目详细描述
这个库允许直接从python脚本与xymon服务器进行基本通信。它与Python2.6、2.7和3一起工作。它可以在未安装xymon客户端的系统上使用。
这里给出了一些基本的例子。有关详细信息,请参见help(Xymon)。
安装
$ pip install Xymon
开始
获取Xymon类的实例以与服务器对话。
>>> fromxymonimportXymon>>> server=Xymon('xymon.domain.tld',1984)
服务器名称和端口号是可选的。如果脚本由xymon客户机运行,则服务器名将默认为$XYMSRV环境变量,如果未设置该变量,则服务器名将默认为localhost。端口默认为1984。
报告
向服务器报告状态:
>>> server.report('webserver01','https','yellow','slow HTTP response')
查询
正在获取状态数据:
>>> server.appfeed(host='ldap.*',test='ldaps'){'ldap01': {'ldaps': {'status': 'green', 'changed': 1396294952, 'time': 1396462829, 'url': 'https://xymon.domain.tld/xymon-cgi/svcstatus.sh?HOST=ldap01&SERVICE=ldaps', 'summary': 'green Wed Apr 2 14:19:56 2014 ldaps ok '} }, 'ldap02': {'ldaps': {'status': 'green', 'changed': 1396294952, 'time': 1396462829, 'url': 'https://xymon.domain.tld/xymon-cgi/svcstatus.sh?HOST=ldap02&SERVICE=ldaps', 'summary': 'green Wed Apr 2 14:19:56 2014 ldaps ok '} } }
这将使用服务器的appfeed.cgi接口与服务器通信。如果调用时没有参数,appfeed()将返回所有主机上所有测试的数据。结果可以受主机、测试、页面和颜色的限制。
注意host可以是Xymon’s documentation中描述的模式。
要将单个主机上单个服务的状态作为字符串获取,请使用status():
>>> server.status('ldap01','ldaps')'green'
如果您需要多个主机/测试的数据,那么使用appfeed()获取所有数据并提取出所需的内容可能更有效。