标签:权限 python 开源软件 zabbix 服务器列表
现在越来越多的公司选择使用开源软件Zabbix来做服务器业务监控,其高逼格的用户管理是个亮点,所以可以通过调用它的接口将权限管理应用到很多地方,比如说堡垒机权限。以下是用python简单写了个小脚本,通过定义分组名便可以得到分组下的服务器信息。
#coding=utf-8 __author__ = ‘Perling‘ from urllib import urlencode import urllib2 import json def post(post_data): api_url = ‘http://monitor.zabbix.com/api_jsonrpc.php‘ #api url req = urllib2.Request(api_url,json.dumps(post_data)) req.add_header("Content-Type","application/json") resp = urllib2.urlopen(req) re = json.loads(resp.read()) return re def get_sessionid(): login_post_data = {"jsonrpc": "2.0", "method": "user.login", "params": {"user": "admin", "password": "pass" }, "id": "1", } re = post(login_post_data) if re.has_key("result"): return re["result"] else: return re exit(1,"login_error") def hostget(): hostget_post_json = { "jsonrpc": "2.0", "method": "hostgroup.get", "params": { "output": "extend", "filter": { "name": [ "Zabbix servers", ##要获取主机列表的分组名称 ] }, "selectHosts": [‘hostid‘,‘host‘], }, "auth": get_sessionid(), "id": 1 } return post(hostget_post_json) print hostget()
selectHosts字段是定义 选中分组下边的主机的信息显示选项 具体包括下边的内容
Property | Type | Description |
---|---|---|
hostid | string | (readonly) ID of the host. |
host (required) | string | Technical name of the host. |
available | integer | (readonly) Availability of Zabbix agent. Possible values are: 0 - (default) unknown; 1 - available; 2 - unavailable. |
disable_until | timestamp | (readonly) The next polling time of an unavailable Zabbix agent. |
error | string | (readonly) Error text if Zabbix agent is unavailable. |
errors_from | timestamp | (readonly) Time when Zabbix agent became unavailable. |
flags | integer | (readonly) Origin of the host. Possible values: 0 - a plain host; 4 - a discovered host. |
ipmi_authtype | integer | IPMI authentication algorithm. Possible values are: -1 - (default) default; 0 - none; 1 - MD2; 2 - MD5 4 - straight; 5 - OEM; 6 - RMCP+. |
ipmi_available | integer | (readonly) Availability of IPMI agent. Possible values are: 0 - (default) unknown; 1 - available; 2 - unavailable. |
ipmi_disable_until | timestamp | (readonly) The next polling time of an unavailable IPMI agent. |
ipmi_error | string | (readonly) Error text if IPMI agent is unavailable. |
ipmi_errors_from | timestamp | (readonly) Time when IPMI agent became unavailable. |
ipmi_password | string | IPMI password. |
ipmi_privilege | integer | IPMI privilege level. Possible values are: 1 - callback; 2 - (default) user; 3 - operator; 4 - admin; 5 - OEM. |
ipmi_username | string | IPMI username. |
jmx_available | integer | (readonly) Availability of JMX agent. Possible values are: 0 - (default) unknown; 1 - available; 2 - unavailable. |
jmx_disable_until | timestamp | (readonly) The next polling time of an unavailable JMX agent. |
jmx_error | string | (readonly) Error text if JMX agent is unavailable. |
jmx_errors_from | timestamp | (readonly) Time when JMX agent became unavailable. |
maintenance_from | timestamp | (readonly) Starting time of the effective maintenance. |
maintenance_status | integer | (readonly) Effective maintenance status. Possible values are: 0 - (default) no maintenance; 1 - maintenance in effect. |
maintenance_type | integer | (readonly) Effective maintenance type. Possible values are: 0 - (default) maintenance with data collection; 1 - maintenance without data collection. |
maintenanceid | string | (readonly) ID of the maintenance that is currently in effect on the host. |
name | string | Visible name of the host. Default: host property value. |
proxy_hostid | string | ID of the proxy that is used to monitor the host. |
snmp_available | integer | (readonly) Availability of SNMP agent. Possible values are: 0 - (default) unknown; 1 - available; 2 - unavailable. |
snmp_disable_until | timestamp | (readonly) The next polling time of an unavailable SNMP agent. |
snmp_error | string | (readonly) Error text if SNMP agent is unavailable. |
snmp_errors_from | timestamp | (readonly) Time when SNMP agent became unavailable. |
status | integer | Status and function of the host. Possible values are: 0 - (default) monitored host; 1 - unmonitored host. |
本文出自 “perling” 博客,请务必保留此出处http://zhaolin.blog.51cto.com/9397923/1713188
利用Zabbix API 获取各个分组下的服务器列表以及详细信息
标签:权限 python 开源软件 zabbix 服务器列表
原文地址:http://zhaolin.blog.51cto.com/9397923/1713188