zabbix告警邮件、短信发送错误快速排查方法

背景

zabbix告警邮件、短信经常有同事反馈发送错误的情况,这个问题排查的角度很多,那么最快捷的角度是什么呢?

在我看来,最快的角度就是判断这个告警邮件或者短信是从从哪个触发器触发的,找到对应的触发器自然很容易定位是否是告警规则设置的问题。

数据库alerts表

这个之前也介绍过alerts 表,记录了zabbix系统中所有的告警发送记录,即理论上任何一个告警短信、邮件均会在该表留下记录的。

mysql> desc alerts;
+-------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+-------+
| alertid | bigint(20) unsigned | NO | PRI | 0 | |
| actionid | bigint(20) unsigned | NO | MUL | 0 | |
| eventid | bigint(20) unsigned | NO | MUL | 0 | |
| userid | bigint(20) unsigned | NO | MUL | 0 | |
| clock | int(11) | NO | PRI | 0 | |
| mediatypeid | bigint(20) unsigned | NO | MUL | 0 | |
| sendto | varchar(100) | NO | | | |
| subject | varchar(255) | NO | | | |
| message | blob | NO | | NULL | |
| status | int(11) | NO | MUL | 0 | |
| retries | int(11) | NO | | 0 | |
| error | varchar(128) | NO | | | |
| nextcheck | int(11) | NO | | 0 | |
| esc_step | int(11) | NO | | 0 | |
| alerttype | int(11) | NO | | 0 | |
+-------------+---------------------+------+-----+---------+-------+

如何利用alerts表?

熟悉了表结构其他的就很简单了,直接使用sql查询对应的告警邮件、短信的时间(unix时间戳)和邮箱(或者手机号)等即可查询这个时间范围内的匹配告警。

例如我这里的sql就是查询这一段时间内所有发送给张同学的告警邮件。

 mysqll> select * from alerts where clock >=1403851879 and clock < = 1403851895 and sendto='zhangs**zhi@letv.com' \G

结果中有两个使我们比较关心的,userid和actionid。

userid指的是users表中对应的用户ID,根据用户ID我们可以查询对应的用户名。而actionid则是可以查询到对应的动作组。

我们先查询下userid看下是不是正确的:

根据用户userid查询对应的用户

查询结果如下:

可以看得出来,对应的227的userid确实是张同学的帐号。

根据actionid查询对应的动作组

我们再看下这个告警邮件究竟是由那个动作(action)触发的呢?

查询到的结果就是因为那个动作触发的这个告警,这里显示的是在邮件告警-李*这个动作组,那么肯定是张同学在对应的组,才会有告警邮件的发送的。

前台确认

在zabbix系统前台查询对应的告警组:

发现张同学确实是在这个组,而且设置了对应的规则。

将他从这个组中删除掉,问题就解决了。

总结

利用数据库alerts表,我们可以快速定位到某个告警短信是匹配到具体的那个动作组才触发的,从而可以快速的定位到对应的动作规则是不是有异常。

zabbix告警邮件、短信发送错误快速排查方法的更多相关文章

  1. 自定义smokeping告警(邮件+短信)

    前段时间接到公司IT同事需求,帮助其配置smokeping的告警功能,之前配置的姿势有些问题,告警有些问题,现在调试OK,在此将关键配置点简单记录下. 关键的配置项主要有: 定义告警规则并配置将告警信 ...

  2. Zabbix告警脚本-短信

    [root@iot-svndata02 bin]# cat zbsms.sh #!/bin/sh #curl http://221.179.180.137:8080/smsaServer/lkSend ...

  3. C# 短信发送 邮件发送

    兴趣是最好的老师. --爱因斯坦 一.实现短信发送 1.使用短信mao的方式进行短信发送,前提要购买硬件设备,这里就不考虑展示了: 2.使用中国网建提供的短信平台,但是用几次后要收费: 我们这里主要介 ...

  4. PhpSms 稳定可靠的php短信发送库

    可能是目前最聪明.优雅的PHP短信发送库了.从此不再为各种原因造成的个别短信发送失败而烦忧! phpsms的任务均衡调度功能由toplan/task-balancer提供. GitHub地址:http ...

  5. ABP集成短信发送模块

    ABPZero并没有手机短信发送功能,现在我们来集成一个,为后面注册.登录作铺垫. 阿里云短信服务 首先需要在阿里云开通短信服务,连接地址 开通后,在签名管理中添加一个签名 在模板管理中添加一个模板, ...

  6. java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况

    java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况 邮件短信微服务 spring boot 微服务 接收json格式参数 验证参数合 ...

  7. zabbix告警邮件美化

    为了更好的用户体验,我们需要尽量美化我们的输出内容,尽量做到整齐划一,让人看了会有很舒服的感觉, 这个好像和苹果的产品一样,给人一种美感让人感觉非常享受. 一般我们的zabbix告警邮件就是纯文字,建 ...

  8. Laravel实现大型商城网站之用户注册短信发送项目实战功能开发

    确定短信运营商 我这里采用的云片,不过大家使用其它的也可以. 首先自己注册一个帐号,然后找到这个 点击开始接入,完成新手引导过程. 第二部的签名和模板必须填写,类似我下面填写的这样 值得注意的是这个模 ...

  9. Java版阿里云通信短信发送API接口实例(新)

    阿里云通信(原名阿里大于)的短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等. 完美支撑双11期间2亿用户,发送6亿短信 ...

随机推荐

  1. Com组件介绍

    COM组件简介 面向对象的思想难以适应这种分布式软件模型,于是组件化程序设计思想得到了迅速的发展. 按照组件化的程序设计的思想,复杂的应用程序被设计成一些小的,功能单一的组件模块,这些组件模块可以运行 ...

  2. 【旧文章搬运】分析了一下360安全卫士的HOOK

    原文发表于百度空间及看雪论坛,2009-10-08 看雪论坛地址:https://bbs.pediy.com/thread-99128.htm 看时间,09年的国庆节基本上就搞这玩意儿了...==== ...

  3. hdu5829 Rikka with Subset

    首先考虑本题的$O(n^2)$做法. $Part1$ 对原序列从大到小排序后,考虑每个数字对最终答案的贡献,有第x个数字对答案的贡献十分难以计算,所以考虑计算数字x是集合第K大的方案数,作为数字x对$ ...

  4. Codechef SEPT17

    Codechef SEPT17 比赛链接:https://www.codechef.com/SEPT17 CHEFSUM code给定数组 a[1..n] ,求最小的下标 i ,使得 prefixsu ...

  5. 网络爬虫之Selenium模块和Xpath表达式+Lxml解析库的使用

    实际生产环境下,我们一般使用lxml的xpath来解析出我们想要的数据,本篇博客将重点整理Selenium和Xpath表达式,关于CSS选择器,将另外再整理一篇! 一.介绍: selenium最初是一 ...

  6. C++笔试题(四)

    华为从事通信网络技术与产品的研究.开发.生产与销售,是中国电信市场的主要供应商之一,并已成功进入全球电信市场.每年华为都要在各大高校招聘大批的应界生,特别是华中科技大学.公司网址是:http://ww ...

  7. spoj SUBST1 - New Distinct Substrings【SAM||SA】

    SAM里的转台不会有重复串,所以答案就是每个right集合所代表的串个数的和 #include<iostream> #include<cstdio> #include<c ...

  8. LuoguP1268树的重量【构造/思维】By cellur925

    题目传送门 Description 给你一个矩阵$M$,$M(i,j)$表示$i$到$j$的最短距离.定义树的重量为树上各边权之和,对于任意给出的合法矩阵$M$,已知它所能表示树的重量是唯一确定的.给 ...

  9. TensorFlow多线程输入数据处理框架(二)——输入文件队列

    参考书 <TensorFlow:实战Google深度学习框架>(第2版) 一个简单的程序来生成样例数据. #!/usr/bin/env python # -*- coding: UTF-8 ...

  10. hdu1863 畅通工程 基础最小生成树

    #include <iostream> #include <cstdio> #include <algorithm> #define N 110 #define M ...