用于交互/废弃ICinga 1 CGI终结点的库
icingap的Python项目详细描述
用于交互/废弃ICinga 1 CGI终结点的库。
完整的文档可以在:https://icingapy.readthedocs.io/
如何设置客户端:
>>> from icingapy import IcingaClient icinga = IcingaClient('icinga.host.com', 'admin', 'Ch@ng3m3!')
icinga客户端目前支持三种方法。摘要,状态,停机
- 摘要
- 查询端点status.cgi并分析表以获取服务列表, 他们的状态和信息。
>>> icinga.summary('testhost') {'Current Load': {'service': 'Current Load', 'status': 'OK', 'info': 'OK - load average: 0.38, 0.33, 0.31'}, 'Current Users': {'service': 'Current Users', 'status': 'OK', 'info': 'USERS OK - 0 users currently logged in'}, 'Disk Space': {'service': 'Disk Space', 'info': 'DISK CRITICAL - free space: / 1423 MB (10% inode=53%): '}, 'HTTP': {'service': 'HTTP', 'status': 'OK', 'info': 'HTTP OK: HTTP/1.1 301 Moved Permanently - 529 bytes in 0.000 second response time'}, 'SSH': {'service': 'SSH', 'info': 'connect to address 127.0.0.1 and port 22: Connection refused'}, 'Total Processes': {'service': 'Total Processes', 'status': 'OK', 'info': 'PROCS OK: 12 processes'}}
- 状态
- 查询exterfo.cgi端点并解析表以获取相同的信息 (加上最后一次检查)作为摘要,但对于单个服务
>>> icinga.status('testhost', 'Current Load') {'service': 'Current Load', 'state': ' OK (for 0d 1h 50m 10s)', 'info': 'OK - load average: 0.38, 0.33, 0.31', 'last-check': '2018-09-29 17:22:07'}
- 停机时间
- 查询cmd.cgi端点以发布特定主机或服务主机的停机时间。返回true/false。 服务、过期日期和消息是可选的。方法的默认时间日期为1小时。 expire\u timedate需要密钥与datetime.timedelta参数匹配的字典。
>>> icinga.downtime(host='localhost', service='Disk Space', expire_timedate={'hours': 1}, msg='until logrotate')) True