当前位置: 首页 > news >正文

python 调用 zabbixApi

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

#!/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"})


转载于:https://my.oschina.net/MrYx3en/blog/498589

相关文章:

  • less 转栏
  • 行列式计算的两种方法
  • Android源码解析--超好看的下拉刷新动画
  • ES6核心内容精讲--快速实践ES6(二)
  • C++——编程常见错误
  • linux -硬盘分区
  • [8-27]正则表达式、扩展表达式以及相关实战
  • django 名词解释
  • CSS 样式显示为小手
  • javascript exec match 区别
  • python的sorted函数
  • 老程序员总结的15+条经验教训
  • 使用PullToRefresh实现下拉刷新和上拉加载
  • 本地apt
  • [路径规划] VFF和VFH
  • 时间复杂度分析经典问题——最大子序列和
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • codis proxy处理流程
  • ES6系列(二)变量的解构赋值
  • GitUp, 你不可错过的秀外慧中的git工具
  • Hexo+码云+git快速搭建免费的静态Blog
  • JS基础之数据类型、对象、原型、原型链、继承
  • JS字符串转数字方法总结
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • passportjs 源码分析
  • php ci框架整合银盛支付
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • rc-form之最单纯情况
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Vim Clutch | 面向脚踏板编程……
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 前端面试之CSS3新特性
  • 前端知识点整理(待续)
  • 日剧·日综资源集合(建议收藏)
  • 三栏布局总结
  • 微信小程序开发问题汇总
  • 正则表达式
  • python最赚钱的4个方向,你最心动的是哪个?
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ${factoryList }后面有空格不影响
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (python)数据结构---字典
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (南京观海微电子)——COF介绍
  • (四)Controller接口控制器详解(三)
  • (原)本想说脏话,奈何已放下
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)jQuery 基础
  • (转)负载均衡,回话保持,cookie
  • **PHP分步表单提交思路(分页表单提交)