最近决定将夜班值班人员取消,夜里告警采用机器人电话通知。总结一下这么几个情况,有问题还请指出,希望也能给大家多一个思路。

V1做的太糙了,预计年初上V2

一、用谁家的服务

费用我没有太关注,主要就是看了哪个简单一些。

国内:

问了几家国内云平台的客服,他们都需要公司的营业执照,我直接就选择了放弃

国外:

Nexmo,这是我们现在用的,第一次成功打出电话用的就是他,后来直接选择他了。网上对他的介绍也很多,大家可以去看看,直接调用,不需要向他们提供多余的信息,付款也是支持paypal,所以很方便

二、思路

1、zabbix端:

将符合告警条件的内容,通过Action下发到服务器中日志。

2、内容处理

将告警的内容进行文本化,最后以curl的形式,访问电话url

3、判断接口

一个中间接口,这个接口会对发过来的内容进行判断,在30分钟内,相同主机组的主机,将不会被进行二次告警,因为如果是大规模的告警,很有可能打爆你的电话

三、具体的优化和操作

1、zabbix端:

在zabbix的action对需要告警的内容做一个划分,我们这里只对“High”级别才会触发下发内容

其中的"Default message"很关键,他可以有效的帮助我简化对文本的操作

2、内容处理

将下发的内容进行格式化,将多余的空格清理掉;

cat ${logs_path}ss.log | awk -vstart=$start_time -vend=$end_time -F'^' 'start<=$1 && $1<=end {print $0}' | awk '{gsub(/\r[[:blank:]]|[[:blank:]]/,"")}1'  > ${alertlogs_path}format$(date +"%Y%m%d%H%M").log

通过切割后的日志,查看triggerid,从zabbix的数据库中提出groupid;

for triggerid in $(awk -F ^ '{print $2}' /usr/local/zabbix_ora/alertscripts/alertshell_dir/alertlog_dir/format$(date +"%Y%m%d%H%M").log )
do
su - oracle <<!
sqlplus  -S user/passwd@$IP:1521/zabbix << EOF
set heading off
set feedback off
set pagesize 0
set verify off
set termout off
spool ${alertlogs_path}groupid$(date +"%Y%m%d%H%M").log append
select '${triggerid}^'||groupid from hosts_groups where hostid = (select hostid from items where itemid =  (select itemid from functions where triggerid = $triggerid));
spool off
EOF
exit
!
done

将处理的文本和group中的trigger相同的行输出;

awk -F '^' 'NR==FNR{a[$2]=$0;next}{print a[$1]"^"$2}' ${path}format$(date +"%Y%m%d%H%m").log ${path}groupid$(date +"%Y%m%d%H%M").log | awk '{gsub(/[[:blank:]]/,"",$0);print $0}' > ${path}formatmethod.log

将log转换为可执行的语句,并执行

cat /dev/null > transitionkey.sh
for line in `cat ${path}formatmethod.log`
       do
               echo "${line}" | awk -F ^ '{print "curl '\''$URL="$2"&alertGroupNumber="$6"&alertSummary="$4"&alertDetail="$5"&alertAction=T'\''"}' >> transitionkey.sh
       done

 
 

zabbix电话告警V1的更多相关文章

  1. Zabbix全方位告警接入-电话/微信/短信都支持

    百度告警平台地址: http://gaojing.baidu.com 联系我们: 邮箱:gaojing@baidu.com 电话:13924600771 QQ群:183806029 对于使用zabbi ...

  2. Zabbix实现电话告警通知的配置方法分享

    如果要讨论下当下热门的监控系统,我想zabbix应该能够占有自己的一席之地,拥有不小的话语权吧.然而身为一名苦逼的运维,为了不错过重大的告警信息,就需要配置个[电话告警]来进行最快速的通知. zabb ...

  3. zabbix 告警实践分享 一键实现zabbix 电话、邮件、微信告警

    众所周知Zabbix 是一款用来监控IT基础设施的监控套件,同时也具有很多方便运维人员使用的优秀功能,如:支持多条件告警,支持多种告警方式,支持多组模板.支持模板继承,因此在众多的开源运维监控软件中独 ...

  4. zabbix邮件告警

    Zabbix邮件告警看了很多文档,写的那叫一个蛋疼,明明没有发出去邮件,硬要糊弄观众,我也跟着被糊弄. 操作系统环境: CentOS 5.5 x84_64位 Zabbix版本2.2.3 Web服务器: ...

  5. zabbix 语音告警

    之前的文章中已经实现了zabbix 邮件告警和微信告警,生产环境上测试出消息抵达很及时,但是!万一服务器在大半夜突发故障微信.邮件这些通知都是废物了,大晚上还能听到微信通知吗?显然不可能(我的某朋友就 ...

  6. 通过python为zabbix发送告警邮件

    最近部署ZABBIX的邮件告警时,用刚学的python来写告警邮件脚本. 由于时间有限,我只对关键步骤做截图,对zabbix的基本配置略过. python代码如下 1 #!/usr/bin/pytho ...

  7. zabbix监控告警Received empty response from Zabbix Agent Assuming that agent dropped connection

    zabbix监控告警Received empty response from Zabbix Agent Assuming that agent dropped connection错误 查看zabbi ...

  8. zabbix邮件告警之 通过shell脚本发送告警

    说明:本文讲如何通过shell脚本实现zabbix发送告警邮件,共有5步1.设置mailx账号:是配置mailx的发信账号2.zabbix服务器端编写邮件发送脚本:是增加zabbix的告警方式,增加通 ...

  9. zabbix:告警、恢复消息次数

    之前zabbix配置告警,存在告警信息发送多次并且恢复信息也跟着发送多次了,导致企业微信流量不够用,没有找到恢复信息单独的设置项 动作中的步骤我个人理解为:1-5的意思是发送5条告警消息      3 ...

随机推荐

  1. DataSnap与FireDAC三层

    相交资料: http://blog.csdn.net/shuaihj/article/details/6129131http://www.cnblogs.com/hnxxcxg/p/4007876.h ...

  2. C C++实现创建目录

    下面代码是C.C++可以使用的创建目录的函数及头文件,这是引用的opencv,haartraining中的一种方式. #include <direct.h> //不同系统可能不一样,这是在 ...

  3. Ecshop 学习之路一 2016年6月30日

    以前下载ecshop 都是在ecshop官网上下载,前后台模板都很难看.功能也不太齐全,这次在模板堂下载了ecshop 模板 仿小米的.做一个简单的电商网站. 页面结构还是挺简单的.功能也齐全.用ec ...

  4. 命令行创建maven模块工程

    上一边文章,借助外部eclipse来创建模块项目,本文直接使用maven命令来创建 mvn archetype:generate -DgroupId=com.mycompany.demo -Darti ...

  5. Volley使用指南第四回(来自developer.android)

    Volley网络请求的第四篇,废话不多说,开始. 这一篇文章将会教你怎样在Volley支持的范围内定制一个请求. 第一步:写一个通用请求: 大多数请求都有已经写好的接口供你调用,如果你的请求是Stri ...

  6. UVA1395

    // UVa1395 Slim Span // Rujia Liu #include<cstdio> #include<cmath> #include<cstring&g ...

  7. update更新两个字段

    update更新两个字段时的sql语句: update tj_record set is_recycle_reprint_guide='1' , recycle__guide_date=now() w ...

  8. linux下的shell命令的编写,以及java怎样调用linux的shell命令(java怎样获取linux上的网卡的ip信息)

    程序猿都非常懒,你懂的! 近期在开发中,须要用到server的ip和mac信息.可是server是架设在linux系统上的,对于多网口,在获取ip时就产生了非常大的问题.以下是在windows系统上, ...

  9. 【WebForm】Repeater 序列号 在翻页情况下自增

    asp.net Repeater控件分页时,序号列翻页重新从1开始计数问题的解决思路及方法: 一般情况下,使用 <%# Container.ItemIndex + 1% > 给序号列来自增 ...

  10. 数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes

    贝叶斯分类器 贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类.眼下研究较多的贝叶斯分类器主要有四种, ...