帮助查询MK livestatus并获得结果
项目描述
- 版本:
- 0.4
以Python列表或字典的形式访问MK Livestatus查询返回的数据。它通过向MK Livestatus UNIX套接字发送查询并解析返回的行来实现。需要UNIX套接字的读写权限。
已知此包与Python 2.7、3.3、3.4、pypy和pypy3兼容。
用法
以下是一个简单的示例,用于获取UP(0)状态下的所有服务器的名称和主机组
>>> from mk_livestatus import Socket >>> s = Socket("/var/lib/icinga/rw/live") >>> q = s.hosts.columns('name', 'groups').filter('state = 0') >>> print q GET hosts Columns: name groups Filter: state = 0>>> q.call() [{'name': 'example.com', 'groups': ['ssh', 'snmp', 'smtp-server', 'ping-server', 'http-server', 'debian-server', 'apache2']}]
s.hosts 返回一个查询Nagios上 hosts 资源的查询。 columns 和 filter 方法修改我们的查询并返回它,因此我们可以链式调用。对 call 方法的调用以字典列表的形式返回行。
如果您使用xinetd将Unix套接字绑定到TCP套接字(如此处所述),您可以创建套接字如下
>>> s = Socket(('192.168.1.1', 6557))
如需更多信息,请访问python-mk-livestatus网站。有关MK Livestatus及其查询语法的信息可在mk-livestatus网站找到。