目录:zabbix其他篇

01: 安装zabbix server

02:zabbix-agent安装配置 及 web界面管理

03: zabbix API接口 对 主机、主机组、模板、应用集、监控项、触发器等增删改查

04:获取zabbix监控信息

05:zabbix 监控配置

目录:

1.1 检索警报返回顶部

  参考官网:https://www.zabbix.com/documentation/3.4/zh/manual/api/reference/alert/get

  1、通过触发器trigger获取所有报警信息

#! /usr/bin/env python
# -*- coding: utf-8 -*
import urllib2
import json url = 'http://1.1.1.5/zabbix/api_jsonrpc.php'
username = 'Admin'
password = '' ################################ 一:登陆脚本 login.py ###########################
#1、定义通过HTTP方式访问API地址的函数,后面每次请求API的各个方法都会调用这个函数
def requestJson(url,values):
data = json.dumps(values)
req = urllib2.Request(url, data, {'Content-Type': 'application/json-rpc'})
response = urllib2.urlopen(req, data)
output = json.loads(response.read())
try:
message = output['result']
except:
message = output['error']['data']
print message
quit()
return output['result'] #2、API接口认证的函数,登录成功会返回一个Token
def authenticate(url, username, password):
values = {'jsonrpc': '2.0',
'method': 'user.login',
'params': {
'user': username,
'password': password
},
'id': ''
}
idvalue = requestJson(url,values)
return idvalue # 结果是一个token值:cc75ed2a314906a835ac0786266468ac

zabbix认证和请求函数

# 获取所有触发器中报警信息,如果不报警则不会获取到
def trigger_get_alarm(auth):
values = {
"jsonrpc": "2.0",
"method": "trigger.get",
"params": {
"output": [
"host",
"description",
"triggerid",
"eventid",
"templateids"
],
"selectGroups": [
"name"
],
"selectHosts": [
"name",
"host"
],
"selectItems": [
"name",
"lastvalue",
"units"
],
"filter": {
"value": 1
},
"monitored": 1,
"selectLastEvent": "extend",
"expandComment": 1,
"expandDescription": 1,
"sortfield": "priority",
"sortorder": "DESC",
"withLastEventUnacknowledged": 1
},
"auth": auth,
"id": 1
} output = requestJson(url, values)
return output auth = authenticate(url, username, password)
print json.dumps( trigger_get_alarm(auth) ) # 获取的报警信息如下
'''
[{
"description": "User_Login", # 这里是报警信息的具体内容
"items": [{
"itemid": "28439",
"units": "",
"lastvalue": "59",
"name": "login_user"
}],
"lastEvent": {
"eventid": "73",
"objectid": "15601",
"clock": "1528266869",
"object": "0",
"acknowledged": "0",
"value": "1",
"source": "0",
"ns": "387320307"
},
"triggerid": "15601",
"hosts": [{
"host": "zabbix_agent_1.1.1.3",
"hostid": "10264",
"name": "zabbix_agent_1.1.1.3"
}],
"groups": [{
"groupid": "19",
"name": "New Create Group"
}, {
"groupid": "20",
"name": "New Group 02"
}]
}]
'''

获取所有触发器中报警信息,如果不报警则不会获取到

1.2 历史数据返回顶部

  参考官网:https://www.zabbix.com/documentation/3.4/zh/manual/api/reference/history/get

#1、只返回给定 监控项 的历史记录
def get_historys_by_item(auth):
values = {
"jsonrpc": "2.0",
"method": "history.get",
"params": {
"output": "extend",
"history": 3, # 要返回的历史对象类型
# 0 - numeric float;数字浮点数;1 - character;字符 ;2 - log; 日志;3 - numeric unsigned; 数字符号;4 - text.文本
"itemids": [""],
"sortfield": "clock",
"sortorder": "DESC",
"limit": 2 # 显示两条数据
},
"auth": auth,
"id": 1
} output = requestJson(url, values)
return output auth = authenticate(url, username, password)
print json.dumps( get_historys_by_item(auth) )
'''
[{
"itemid": "28439",
"ns": "244866385",
"value": "4",
"clock": "1528274369"
}, {
"itemid": "28439",
"ns": "197647992",
"value": "4",
"clock": "1528274339"
}]
'''

1、只返回给定 监控项 的历史记录

#2、只返回给定 主机 的历史记录
def get_historys_by_host(auth):
values = {
"jsonrpc": "2.0",
"method": "history.get",
"params": {
"output": "extend",
"history": 3, # 要返回的历史对象类型
# 0 - numeric float;数字浮点数;1 - character;字符 ;2 - log; 日志;3 - numeric unsigned; 数字符号;4 - text.文本
"hostids": "",
"sortfield": "clock",
"sortorder": "DESC",
"limit": 2 # 显示两条数据
},
"auth": auth,
"id": 1
} output = requestJson(url, values)
return output auth = authenticate(url, username, password)
print json.dumps( get_historys_by_host(auth) )
'''
[{
"itemid": "28439",
"ns": "244866385",
"value": "4",
"clock": "1528274369"
}, {
"itemid": "28439",
"ns": "197647992",
"value": "4",
"clock": "1528274339"
}]

2、只返回给定 主机 的历史记录

04:获取zabbix监控信息的更多相关文章

  1. Python3对接华三CAS平台Api获取虚拟机监控信息-渐入佳境

    --时间:2021年2月3日 --作者:飞翔的小胖猪 说明 使用python对接华三CAS虚拟化平台,通过厂商提供的api接口获取每个集群下所有虚拟机的监控信息,并保存数据在本地的mariadb数据库 ...

  2. PHP通过Zabbix API获取服务器监控信息

    开源监控系统Zabbix提供了丰富的API,供第三方系统调用. 基本步骤如下: 1.获取合法认证:连接对应Zabbix URL,并提供用户名和密码,HTTP方法为"POST",HT ...

  3. 05: zabbix 监控配置

    目录:zabbix其他篇 01: 安装zabbix server 02:zabbix-agent安装配置 及 web界面管理 03: zabbix API接口 对 主机.主机组.模板.应用集.监控项. ...

  4. 04.ZabbixWEB网站监控

    1.Web场景监测概述 1.Web网站中什么是动态网站,什么是静态网站 静态网站:纯静态网站就是服务器的源代码和客户端的源代码一致. 动态网站:比如: <?php phpinfo()?> ...

  5. zabbix监控路由器所有接口信息

    zabbix监控路由器所有接口信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1.首先在服务器端安装snmp工具 [root@bogon yinzhengjie]# yum - ...

  6. zabbix 监控交换机文本/日志信息

    简介 公司有台路由设备,需要每天去核对用户量,查看信息等.为了避免重复的工作量,就通过zabbix来完成这个重复性的工作. 先说下思路,首先要创建一个脚本,能从zabbix-server 或者zabb ...

  7. zabbix 监控web网站性能

    一直在纠结用什么实例来给大家演示呢?想来想去还是官方的好,那我们怎么用zabbix监控web性能和可用性呢?我们这边分为几个步骤:打开网站.登陆.登陆验证.退出,一共4个小step,看实例. 检测流程 ...

  8. Zabbix 监控 Nginx(四)

    简介: 如何使用 Zabbix 监控 Nginx 状态 ? 1.获取 Nginx 状态( HTTP Stub Status ) [root@localhost ~]# /apps/product/ng ...

  9. zabbix监控Oracle

    可监控项 使用zabbix监控oracle数据库需要借助第三方的插件,目前使用较多的是orabbix.目前维护到了1.2.3版本.关于oracle自带的监控项目有以下几个: DB Version (i ...

随机推荐

  1. HDU 1281 - 棋盘游戏 - [二分图最大匹配]

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1281 Time Limit: 2000/1000 MS (Java/Others) Mem ...

  2. Oracle管理监控之sqlplus实现上下翻页设置

    环境: 操作系统:red hat 5.8 OS 数据库:oracle 11g 11.2.0.1 安装软件:IO-Tty-1.07.tar. Term-ReadLine-Gnu-1.16.tar.uni ...

  3. are not called implicitly

    php.net <?php class BaseClass{ function __construct() { print "In BaseClass constructor<b ...

  4. 【python+opencv】直线检测+圆检测

     Python+OpenCV图像处理—— 直线检测 直线检测理论知识: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进 ...

  5. 爱上 SQLAlchemy 的 10 个理由(转)

    原文:http://python.jobbole.com/82453/ 本文由 伯乐在线 - Namco 翻译,唐尤华 校稿.未经许可,禁止转载!英文出处:Paul Johnston.欢迎加入翻译组. ...

  6. display:table和display:table-cell结合使用

    .GoodList{ display :table; height :54px; width :56px; line-height: 14px                 padding: 0 1 ...

  7. 神经网络前向后向传播(理论推导+代码) 单层神经网络相当于logistic regression

    建立神经网络的主要步骤是: 1. 定义模型结构(例如输入特征的数量) 2. 初始化模型的参数 3. 循环: # 3.1 计算当前损失(正向传播) # 3.2 计算当前梯度(反向传播) # 3.3 更新 ...

  8. EXTJS 4:在renderer中如何控制一个CheckColumn的行为,如显示,只读等属性

    在编写grid下的column时,大家肯定会经常用到renderer这个方法来改变文字的呈现形式,那么如果该column是一个特殊的column,比如CheckColumn时,该方法应该怎样写呢?官方 ...

  9. APPIUM Android 定位方式

    原文地址https://www.cnblogs.com/sundalian/p/5629500.html 1.定位元素应用元素 1.1通过id定位元素 Android里面定位的id一般为resrouc ...

  10. virtualBox虚拟机联网

    1. 2. 3. 4. 5. 6. 7. 8. 9. 10.