0
点赞
收藏
分享

微信扫一扫

zabbix 使用python3获取告警

zabbix 使用python3来获取到告警

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# File : t1.py
# Author: HuXianyong
# Date : 2022/6/30

import requests,json

zbx_url = 'http://10.10.251.64/api_jsonrpc.php'
zbx_user = 'Admin'
zbx_pwd = 'zabbix'
post_header = {'Content-Type': 'application/json'}

class zabbixApi():
# 调用zabbix api需要身份令牌auth
def get_token(self):
post_data = {
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": zbx_user,
"password": zbx_pwd
},
"id": "1"
}

ret = requests.post(zbx_url, data=json.dumps(post_data), headers=post_header)
zbx_ret = json.loads(ret.text)
try:
self.token = zbx_ret.get('result')
except Exception as e:
print('''zabbix登录错误,请检查登录信息是否正确!
本次登录退出!
zbx_url: %s
zbx_user: %s
zbx_pwd: %s
错误信息: %s'''%(zbx_url,zbx_user,zbx_pwd,e))

def getResponse(self,dataJson):
# print(dataJson)
resDataJson = requests.post(zbx_url, data=json.dumps(dataJson), headers=post_header)
try:
responseData = resDataJson.json()['result']
return responseData
except Exception as e:
print('获取API接口失败!,%s'%e)
def getAlerts(self):
# 通过组名取货去到组的ID,返回给下个调用函数
reqHostJson = {
"jsonrpc": "2.0",
"method": "alert.get",
"params": {
"output": "extend",
},
"auth": self.token,
"id": 1
}
alertsInfo = self.getResponse(reqHostJson)
return alertsInfo

if __name__ == '__main__':
zabbixApi = zabbixApi()
zabbixApi.get_token()
getAlerts = zabbixApi.getAlerts()
for alert in getAlerts:
print(alert)
举报

相关推荐

0 条评论