码迷,mamicode.com
首页 > Windows程序 > 详细

利用Zabbix API 获取各个分组下的服务器列表以及详细信息

时间:2015-11-17 07:09:44      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:权限   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字段是定义 选中分组下边的主机的信息显示选项 具体包括下边的内容


PropertyTypeDescription
hostidstring(readonly) ID of the host.
host
(required)
stringTechnical name of the host.
availableinteger(readonly) Availability of Zabbix agent.

Possible values are:
0 - (default) unknown;
1 - available;
2 - unavailable.
disable_untiltimestamp(readonly) The next polling time of an unavailable Zabbix agent.
errorstring(readonly) Error text if Zabbix agent is unavailable.
errors_fromtimestamp(readonly) Time when Zabbix agent became unavailable.
flagsinteger(readonly) Origin of the host.

Possible values:
0 - a plain host;
4 - a discovered host.
ipmi_authtypeintegerIPMI authentication algorithm.

Possible values are:
-1 - (default) default;
0 - none;
1 - MD2;
2 - MD5
4 - straight;
5 - OEM;
6 - RMCP+.
ipmi_availableinteger(readonly) Availability of IPMI agent.

Possible values are:
0 - (default) unknown;
1 - available;
2 - unavailable.
ipmi_disable_untiltimestamp(readonly) The next polling time of an unavailable IPMI agent.
ipmi_errorstring(readonly) Error text if IPMI agent is unavailable.
ipmi_errors_fromtimestamp(readonly) Time when IPMI agent became unavailable.
ipmi_passwordstringIPMI password.
ipmi_privilegeintegerIPMI privilege level.

Possible values are:
1 - callback;
2 - (default) user;
3 - operator;
4 - admin;
5 - OEM.
ipmi_usernamestringIPMI username.
jmx_availableinteger(readonly) Availability of JMX agent.

Possible values are:
0 - (default) unknown;
1 - available;
2 - unavailable.
jmx_disable_untiltimestamp(readonly) The next polling time of an unavailable JMX agent.
jmx_errorstring(readonly) Error text if JMX agent is unavailable.
jmx_errors_fromtimestamp(readonly) Time when JMX agent became unavailable.
maintenance_fromtimestamp(readonly) Starting time of the effective maintenance.
maintenance_statusinteger(readonly) Effective maintenance status.

Possible values are:
0 - (default) no maintenance;
1 - maintenance in effect.
maintenance_typeinteger(readonly) Effective maintenance type.

Possible values are:
0 - (default) maintenance with data collection;
1 - maintenance without data collection.
maintenanceidstring(readonly) ID of the maintenance that is currently in effect on the host.
namestringVisible name of the host.  

Default: host property value.
proxy_hostidstringID of the proxy that is used to monitor the host.
snmp_availableinteger(readonly) Availability of SNMP agent.

Possible values are:
0 - (default) unknown;
1 - available;
2 - unavailable.
snmp_disable_untiltimestamp(readonly) The next polling time of an unavailable SNMP agent.
snmp_errorstring(readonly) Error text if SNMP agent is unavailable.
snmp_errors_fromtimestamp(readonly) Time when SNMP agent became unavailable.
statusintegerStatus 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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!