任务内容:
获取Zabbix各用户告警媒介分钟级统计,形成趋势图,便于观察各用户在每分钟收到的告警数量,在后续处理中,可以根据用户在某时间段内(例如3分钟内)收到的邮件总数,来判断是否有告警洪水的现象,以便于我们及时对相关现象做出处理。注释掉短信告警语句,然后产生一次电话告警事件。
任务分析:
查阅完相关资料之后,没有办法直接从zabbix现有的配置中获取到相关的统计值。就只能从zabbix的数据库中获取,毕竟太阳底下无新鲜事,收到的这些告警邮件,也是需要相关底层数据库支撑着。从数据库中找到zabbix.alerts表符合我们收集数据的基本要求。

从alerts中,可以知道到收件人(sendto),触发器时间(Trigger DATE),主题(subject),从这三项数据,经过加工就可以获取zabbix各用户在每分钟收到的告警事件数量。注意:触发器时间(Trigger DATE),这项数据不是独立的mysql字段,而是message字段里面的数据。经过分析该message数据的来源模板是在zabbix的动作里面设置的。如下图

因此:要想正确获取到相关的时间统计,就必须在动作模板里面包含有标题:{TRIGGER.STATUS},消息内容:{Trigger.DATE}
邮件事件统计脚本内容:
[root@zabbix scripts]# cat userEmailAlertCount.py
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#此脚本用于从zabbxi数据库中获取各个用户的告警媒介,并统计上一分钟告警条数为了获取数据的准确性,只能获取上一分钟告警事件的统计值`
#2018.08.31
#jmucai
import time
import datetime
import sys
import MySQLdb
#获取当前日期
day = time.strftime("%Y.%m.%d", time.localtime())
#获取当前时间的上一分钟时间
min = (datetime.datetime.now()+datetime.timedelta(minutes=-1)).strftime("%H:%M")
#获取脚本传入的参数
userAlertType=sys.argv[1]
if "邮件" in userAlertType:
userName = userAlertType.split("邮件")[0]
userEmail = userAlertType.split("邮件")[1]
sqlPattern = "select alertid from alerts where message like" + \
' "%' + day + "%" + min + ':%"' + " and sendto = " + '"' + userEmail + '"' + " and subject like " + '"PROBLEM:%"'
#print sqlPattern
# 打开数据库连接
db = MySQLdb.connect("localhost", "zabbix", "hskj", "zabbix", charset='utf8' )
 
# 使用cursor()方法获取操作游标
cursor = db.cursor()
 
# 使用execute方法执行SQL语句
userEmailAlertCount = cursor.execute(sqlPattern)
print userEmailAlertCount
# 关闭数据库连接
db.close()
else:
print "传入错误的告警媒介参数"
 
zabbix配置参数:

#邮件告警统计
UserParameter=userEmailAlertCount[*],/usr/local/zabbix/scripts/userEmailAlertCount.py $1
 

以邮件告警为例
名称:自定义监控项目名称
键值:userEmailAlertCount["名字A邮件zabbix@qq.com"]:这里主要是key值的组成,这里的名字A是我们zabbix用户管理里面的别名(alias),zabbix@qq.com邮箱是我们在用户里面定义的邮件告警媒介。”邮件“是作为我们脚本里面的分隔符。
最终图像展示效果

搜索

复制

Zabbix中获取各用户告警媒介分钟级统计的更多相关文章

  1. SpringBoot中获取微信用户信息从未如此简单!

    前言 不知道你是否参加过拼多多上邀请微信好友砍价功能,这个功能实现首先需要考虑的就是获取微信用户的信息.获取用户信息就是获取公众号下微信用户的信息,今天我就来讲讲如何从公众号下获取微信用户信息. 需要 ...

  2. Python 操作Zabbix API 获取ERROR级别告警信息并打印

    1.需求:有一个语音合成播报项目,要实时获取zabbix的ERROR级别以上告警信息,将该信息合成语音播报出去.(合成语音及播报已经完成) 2.现实:整理zabbix告警级别,将不太重要的告警放到ER ...

  3. 日志监控文件中获取ip,每一分钟统计一次,超过200次的计入黑名单

    一.日志文件access.log #.要从日志里面找到1分钟之内访问超过200次的 #.每分钟都运行一次 #.读取文件内容,获取到ip地址 #.把每个ip地址存起来{} #.判断ip访问的次数是否超过 ...

  4. 从session中获取当前用户的工具类

    package cn.crmx.crm.util; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Ht ...

  5. SAP中获取当前用户相关信息的两个函数

    函数名:TH_USER_LIST作用:可以得到SM04界面显示样式的表. 函数名:TH_USER_INFO作用:可以得到当前特定用户的机器名.当前活动窗口数.IP地址等信息

  6. SpringSecurity如何在代码中获取认证用户信息

    ⒈ public Object getCurrentUser(){ return SecurityContextHolder.getContext().getAuthentication(); } ⒉ ...

  7. 分布式系统监视zabbix讲解三之用户和用户组--技术流ken

    概述 Zabbix 中的所有用户都通过 Web 前端去访问 Zabbix 应用程序.并为每个用户分配唯一的登陆名和密码. 所有用户的密码都被加密并储存于 Zabbix 数据库中.用户不能使用其用户名和 ...

  8. 分布式系统监视zabbix讲解三之用户和用户组

    概述 Zabbix 中的所有用户都通过 Web 前端去访问 Zabbix 应用程序.并为每个用户分配唯一的登陆名和密码. 所有用户的密码都被加密并储存于 Zabbix 数据库中.用户不能使用其用户名和 ...

  9. java程序中获取kerberos登陆hadoop

    本文由作者周梁伟授权网易云社区发布. 一般我们在使用kbs登陆hadoop服务时都直接在shell中调用kinit命令来获取凭证,这种方式简单直接,只要获取一次凭证之后都可以在该会话过程中重复访问.但 ...

随机推荐

  1. SPFA求最短路——Bellman-Ford算法的优化

    SPFA 算法是 Bellman-Ford算法 的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环.SPFA 最坏情况下复杂度和朴素 Bellman-Ford 相同,为 O(VE), ...

  2. P1438 无聊的数列 (差分+线段树)

    题目 P1438 无聊的数列 解析: 先考虑修改,用差分的基本思想,左端点加上首项\(k\),修改区间\((l,r]\)内每个数的差分数组都加上公差\(d\),最后的\(r+1\)再减去\(k+(r- ...

  3. 使用ubuntu做为dotnet core开发环境

    一.安装google浏览器 1.下载安装包(传送门:http://www.google.cn/intl/zh-CN/chrome/browser/desktop/index.html) 2.使用sud ...

  4. 洛谷P3159 交换棋子 神奇的网络流

    神奇的建模...原题链接 如果你真的把交换看成交换,就\(GG\)了.首先我们要把交换看成是白棋的移动. 然后,很容易的就想到建模的大致思路:建立超级源点S和超级汇点T,从S向初始局面每个白棋所在的格 ...

  5. python第十一天

    今日内容 1. 函数的参数 2. 函数对象 -- 函数名  * * * *重点! 3. 函数 的嵌套调用 1. 形参与实参: 函数介绍: 1.1  函数为什么要有参数: 因为内部的函数体需要外部的数据 ...

  6. Vue(四)组件

    组件的复用 这里的工程和上一节的一样 先建立一个组件 MyButton.vue <template> <button @click="count++">Yo ...

  7. Spring Security 访问控制 源码解析

    上篇 Spring Security 登录校验 源码解析  分析了使用Spring Security时用户登录时验证并返回token过程,本篇分析下用户带token访问时,如何验证用户登录状态及权限问 ...

  8. Vue学习笔记一:初识Vue

    目录 什么是Vue? 为什么要学习前端框架? MVC,MVP 和 MVVM 最简单的入门小案例 下载Vue.js 新建文件结构 写一个html 运行 可笑的小报错 Vue和MVVM 什么是Vue? V ...

  9. Redies安装,修配置,设置密码,

    Redies下载路径:https://github.com/MicrosoftArchive/redis/releases 我下的是Redis-x64-3.2.100.msi 下载后安装,一步一步操作 ...

  10. 【Unity游戏开发】tolua之wrap文件的原理与使用

    本文内容转载自:https://www.cnblogs.com/blueberryzzz/p/9672342.html .非常感谢原作者慷慨地授权转载,比心!@blueberryzzz 是位大神,欢迎 ...