目录: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. 加入到java后台开发

    下载java环境安装包 http://www.oracle.com/technetwork/java/javase/overview/index.html 下载eclipse j2ee版本 http: ...

  2. three levels of abstraction

    DATABASESYSTEM CONCEPTS SIXTH EDITION Abraham Silberschatz Yale University Henry F. KorthLehigh Univ ...

  3. Implicit declaration of function 'BMKCoordinateForMapPoint' is invalid in C99

    少一个头文件  #import <BaiduMapAPI_Utils/BMKGeometry.h> 加上这个就好了 <HPHalfScreenTopBar: 0x103570bb0; ...

  4. CentOS7.2配置vsftpd

    环境 CentOS7.2 (安装镜像CentOS-7-x86_64-DVD-1611) 本文默认使用root用户操作 目标 实现CentOS7.2上安装vsftpd,使用新创建的ftpuser用户便可 ...

  5. Django中配置用Redis做缓存和session

    django-redis文档: http://django-redis-chs.readthedocs.io/zh_CN/latest/# 一.在Django中配置 # Django的缓存配置 CAC ...

  6. html+css小总结

    html+css小总结 1.块级元素 <div> <h1> <hr /> <p> <pre> <ol> <ul> & ...

  7. win10 问题:你没有权限在此位置中保存文件。请与管理员联系以获得相应权限。

    https://jingyan.baidu.com/album/b24f6c8207f09886bee5da4a.html?picindex=2 归根结底就是通过点击文件夹的属性,在安全选项处,修改操 ...

  8. 3.对神经网络训练中Epoch的理解

    代表的是迭代的次数,如果过少会欠拟合,反之过多会过拟合 EPOCHS 当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一个 epoch.   然而,当一个 epoch 对于计算机而言太 ...

  9. C#在splitContainer1控件和panel控件中显示窗体

    现在有两个窗体 Form1 和Form2 Form1中有控件splitContainer1 和panel .控件.我们希望Form2在splitContainer1或者panel控件中显示 1:首先看 ...

  10. Summary: Java中函数参数的传递

    函数调用参数传递类型(java)的用法介绍. java方法中传值和传引用的问题是个基本问题,但是也有很多人一时弄不清. (一)基本数据类型:传值,方法不会改变实参的值. public class Te ...