文档章节

python 调用 zabbixApi

MrYx3en
 MrYx3en
发布于 2015/08/28 12:17
字数 146
阅读 20
收藏 0
#!/usr/bin/env python
import json
import urllib2

class ZabbixApi:
    def __init__(self,api_info):
        self.api_info = api_info
        self.header = {"Content-Type": "application/json"}
        self.api_data = {
                'jsonrpc':'2.0',
                'method':'',
                'params':'',
                'id':0
                }
        self._set_auth_session()
        
    def _set_auth_session(self):
        self.api_data['method'] = 'user.login'
        self.api_data['params']= {
                          'user':self.api_info['user'],
                          'password':self.api_info['password']
                        }
        response = self._request()
        self.api_data['auth'] = response['result']
        self.api_data['id'] = 1
        
    def _request(self):
        post_data = json.dumps(self.api_data)
        req = urllib2.Request(self.api_info['url'],post_data)
        for k,v in self.header.items():
            req.add_header(k,v)
        
        try:
            result = urllib2.urlopen(req)
        except urllib2.URLError as e:
            print e.code
        else:
            response = json.loads(result.read())
            result.close()
            return response
        
    def get_data(self,method,params):
        self.api_data['method'] = method
        self.api_data['params']= params
        return self._request()

if __name__ == "__main__":
    api_info = {
            'url': 'http://site/api_jsonrpc.php',
            'user':'user',
            'password':'password'
    }
    zbx = ZabbixApi(api_info)
   
    #获取主机列表
    print zbx.get_data("host.get",{'output':"extend"})
    
    #获取Group列表
    print zbx.get_data("hostgroup.get",{'output':"extend"})


本文转载自:http://blog.eimine.com/archives/post-251.html

MrYx3en
粉丝 10
博文 131
码字总数 30542
作品 0
宝鸡
系统管理员
私信 提问
基于zabbix API添加监控主机

由于zabbix监控的主机虽为同一个业务,但是由于其跨机房并且网络为为16位,两个机房导致zabbix的自动添加扫描的主机数量就差不多有12w多个,严重影响其效率和性能. 使用zabbix API的基本步骤如下...

vdm12315
2018/06/27
0
0
一个python基于hostname关联zabbix模版的自动化脚本

最近在考虑做一套基于zabbix日常操作的python脚本: 所以最近需求zabbix监控基于主机hostname关联模版,后来看了zabbixapi官网 (https://www.zabbix.com/documentation/2.0/manual/appendi...

legehappy
2018/04/13
0
0
SinaMSRE zabbixApi

github地址: python 调用Zabbix Api zabbixitemadd.py使用示例: (1)添加单个 item,指定 item name 和 item key (需要指定application): 0> python2.6 zabbixitemadd.py -s http://10......

MrYx3en
2015/08/28
48
0
zabbixAPI的包装pyzabbix

pyzabbix是zabbixAPI的第三方python包装。从网上莫名其妙地搞到了一份源码,看了一下之后发现实现方法还蛮巧妙的,感觉挺好的就记下来了。那些个源码本身其实也是一个个单独操作的脚本,可以...

阿遥在发呆
2017/07/29
0
0
当同时安装Python2和Python3后,如何兼容并切换使用详解(比如pip使用)

由于历史原因,Python有两个大的版本分支,Python2和Python3,又由于一些库只支持某个版本分支,所以需要在电脑上同时安装Python2和Python3,因此如何让两个版本的Python兼容,如何让脚本在对...

短短的歼击机
07/02
28
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
2.4K
15
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
41
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
61
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部