博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zabbix电话告警V1
阅读量:5224 次
发布时间:2019-06-14

本文共 1882 字,大约阅读时间需要 6 分钟。

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

 

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

 
 

转载于:https://www.cnblogs.com/milanin9/p/4968519.html

你可能感兴趣的文章
do break的妙用
查看>>
团队-爬取豆瓣电影Top250-项目总结
查看>>
Linux入门(二)Shell基本命令
查看>>
Win7开发NIOS 编译问题(转帖)
查看>>
css height
查看>>
仿制视频播放滚动条效果(加左右控制按钮)
查看>>
对择业的几点思考:重走青春路?难!
查看>>
本地视频播放-ios
查看>>
Java堆分析
查看>>
vue2.0开发时导入组件时出错
查看>>
设计模式系列一——数据库常用模式(2009-12-31)
查看>>
鸡啄米vc++2010系列29(树形控件Tree Control 上)
查看>>
SQL分区
查看>>
SQLServer之删除触发器
查看>>
Oracle 11g安装教程
查看>>
打造自己的博客园页面
查看>>
浅入深出Vue:前言
查看>>
Linux下SVN账户密码保存设置
查看>>
如何比较两个xml 的异同
查看>>
管理工具推荐
查看>>