python通过zabbix api获取主机

yipeiwu_com6年前Python基础

zabbix强大地方在于有强大的api,zabbix 的api可以拿到zabbix大部分数据,目前我所需的数据基本可以通过api获取,以下是通过zabbix api获取的主机信息python代码,其他数据也如此类推,api使用方法可参见官网文档

#!/usr/bin/env python
#-*- coding: utf-8 -*-
import json
import urllib2
from urllib2 import URLError
from login import zabbix_login
t=zabbix_login()
def hostid_get():
 data = json.dumps(
  {
   "jsonrpc": "2.0",
   "method": "host.get",
   "params": {
      "output": "extend",
      "groupids":14,
      "filter":{"flags": "4" },
      },
   "auth":t.user_login(),
   "id": 1,
  })
 request = urllib2.Request(t.url, data)
 for key in t.header:
  request.add_header(key, t.header[key])
 try:
  result = urllib2.urlopen(request)
 except URLError as e:
  if hasattr(e, 'reason'):
   print 'zabbix server is faile'
   print 'Reason: ', e.reason
  elif hasattr(e, 'code'):
   print 'zabbix server not request.'
   print 'Error code: ', e.code
 else:
  response = json.loads(result.read())
  result.close()
  hostid=[]
  hostname=[]
  for host in response['result']:
   hostid.append(host['hostid'])
   hostname.append(host['name'])
  return hostid,hostname
 
if __name__ == "__main__":
 a,b=hostid_get()
 i=0
 n=len(b)
 for i in range(n):
  print a[i],b[i]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python函数的万能参数传参详解

python函数的万能参数传参详解

我们通过一个简单的事例来展示一下函数的万能参数,我们先写一个最简单的函数 def test(*args,**kwargs): print(args,kwargs) 然后定义两个变量...

使用TensorFlow实现SVM

使用TensorFlow实现SVM

较基础的SVM,后续会加上多分类以及高斯核,供大家参考。 Talk is cheap, show me the code import tensorflow as tf from s...

Mac在python3环境下安装virtualwrapper遇到的问题及解决方法

前言 我在使用mac安装virtualwrapper的时候遇到了问题,搞了好长时间,才弄好,在这里总结一下分享出来,供遇到相同的问题的朋友使用,少走些弯路。 问题说明: Mac默认系...

python BeautifulSoup设置页面编码的方法

在用BeautifulSoup进行抓取页面的时候,会各种各样的编码错误。 可以通过在beautifulsoup中指定字符编码,解决问题。 复制代码 代码如下: import urllib...

Python装饰器实现几类验证功能做法实例

最近新需求来了,要给系统增加几个资源权限。尽量减少代码的改动和程序的复杂程度。所以还是使用装饰器比较科学 之前用了一些登录验证的现成装饰器模块。然后仿写一些用户管理部分的权限装饰器。 比...