怎么用smokeping实现钉钉告警功能
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要讲解了"怎么用smokeping实现钉钉告警功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么用smokeping实现钉钉告警功能"吧
千家信息网最后更新 2024年11月22日怎么用smokeping实现钉钉告警功能
这篇文章主要讲解了"怎么用smokeping实现钉钉告警功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么用smokeping实现钉钉告警功能"吧!
第一:钉钉机器人API获取方式
钉钉开放平台
第二:配置smokeping调用外部 脚本进行邮件报警
vim /opt/smokeping/etc/config*** Alerts ***#to = 88@wsfnk.comto = |/opt/smokeping/bin/mailx_alert.sh # 使用|接脚本路径,调用外部脚本from = smokealert@company.xy#注意:smokeping在告警的时候会发送5个参数到告警接收媒介(这里也就是我们自定义的alert脚本),参数按照顺序分别为:name-of-alert, target, loss-pattern, rtt-pattern, hostname,对应下面报警脚本的$1-$5
第三:编写报警脚本,并附报警效果图
如下是报警效果
cat /opt/smokeping/bin/mailx_alert.sh
#!/bin/bash########################################################## Script to email a ping report on alert from Smokeping ########################################################### 解析变量Alertname=$1Target=$2Losspattern=$3Rtt=$4Hostname=$5Date=$( date '+%Y-%m-%d %H:%M:%S' )#这是smokeping报警会创出的$1-$5值的类型#A1=hightloss#B2="HK.HK-9S.9s-3 [from template]"#C3="loss: 0%, 0%, 0%, 0%, 15%, 45%, 40%"#D4="rtt: 29ms, 29ms, 29ms, 29ms, 33ms, 33ms, 33ms"#E5="1.1.1.1"# 注意:为钉钉机器人告警,重新处理变量,因为钉钉机器人告警里(变量的内容不能包含空格)#A=`echo $1 | sed 's/ //g'` case "$Alertname" in hightloss) A=hightloss-高丢包;; hostdown) A=hostdown-DOWN;; rtt-1) A=rtt-1-高延时;; esac#处理变量BB=`echo $2 | sed 's/ //g'`B=`echo $B | sed 's/\[fromSH_youfu_CT_Proxy\]//g'`B=`echo $B | sed 's/\[fromtemplate\]//g'`# 这里为了报警的内容的美观,顺带将rtt:和loss:抹去了C=`echo $3 | sed 's/ //g'`C=`echo $C | sed 's/loss://g'`D=`echo $4 | sed 's/ //g'`D=`echo $D | sed 's/rtt://g'`E=`echo $5 | sed 's/ //g'`F=`echo $Date |sed 's/ /_/g'`G=未知类别#定义"目标分类的函数"Mubiao() { H=/opt/smokeping/etc/targets P=`cat -n "$H"-"$X" |grep "host = $E$" | cut -f 1 ` PP=`expr $P - 2` G=`sed -n "s/menu = //g;$PP p" $H-$X `}#设置报警值的A端Z端,这里默认设置为 "AEND=深圳阿里云,ZEND=DNS"#根据报警的target判断那个机房出现报警 if [ `echo "$Target" |grep SGP | wc -l` -ne 0 ];then ZEND='新加坡' X=SGP Mubiao elif [ `echo "$Target" |grep PHI | wc -l` -ne 0 ];then ZEND='菲律宾' X=PHI Mubiao elif [ `echo "$Target" |grep HK | wc -l` -ne 0 ];then ZEND='香港' X=HK Mubiao elif [ `echo "$Target" |grep LA | wc -l` -ne 0 ];then ZEND='洛杉矶' X=LA Mubiao elif [ `echo "$Target" |grep JP | wc -l` -ne 0 ];then ZEND='日本' X=JP Mubiao elif [ `echo "$Target" |grep KOR | wc -l` -ne 0 ];then ZEND='韩国' X=KOR Mubiao elif [ `echo "$Target" |grep CD-PBS | wc -l` -ne 0 ];then ZEND='成都鹏博士' X=TG Mubiao elif [ `echo "$Target" |grep BJ-SJQ | wc -l` -ne 0 ];then ZEND='北京四季青' X=TG Mubiao elif [ `echo "$Target" |grep SH-YF | wc -l` -ne 0 ];then ZEND='有孚双线' X=TG Mubiao elif [ `echo "$Target" |grep SZ-YX | wc -l` -ne 0 ];then ZEND='深圳易信' X=TG Mubiao elif [ `echo "$Target" |grep SZ-PBS | wc -l` -ne 0 ];then ZEND='深圳鹏博士' X=TG Mubiao elif [ `echo "$Target" |grep TG-YN | wc -l` -ne 0 ];then ZEND='越南' X=TG Mubiao else [ `echo "$Target" |grep DNS | wc -l` -ne 0 ] ZEND='DNS' X=DNS Mubiao fi#根据报警的target判断是否报警源位置(smokeping_salve的主机名) if [ `echo "$Target" |grep SH_youfu | wc -l` -ne 0 ];then AEND='有孚双线' elif [ `echo "$Target" |grep template | wc -l` -ne 0 ];then AEND='陕西联通' else AEND='深圳阿里云'# mtr -r -n $Hostname >> /tmp/mtr.txt# echo '++++++++++++' >> /tmp/mtr.txt fi#钉钉二号机器人API#https://oapi.dingtalk.com/robot/send?access_token=6c1712241129c425e5385d7d164ffe1ed4d4663b0651c4e#钉钉三号机器人API#https://oapi.dingtalk.com/robot/send?access_token=98ce2cf2925eb0b960745b449ee63a9917571a650f6e7ca4b323f73c7####################钉钉机器人告警执行部分######################## 注意:为钉钉机器人告警,重新处理变量,因为钉钉机器人告警里(变量的内容不能包含空格)curl 'https://oapi.dingtalk.com/robot/send?access_token=6c1712241129c425e5385d7d164ffe1ed4d4663b065b50bf' \ -H 'Content-Type: application/json' \ -d '{ "msgtype": "text", "text": {"content":"('$AEND'-'$ZEND')网络告警告警策略:'$A'目标类别:'$G'目标名称:'$B'丢包率:'$C'延 迟:'$D'目标地址:'$E'故障时间:'$F'" }, "at": { "atMobiles": [ "182****8240" ], "isAtAll": false }}'#>> /tmp/dingding-alert.log 2>&1#####################邮件告警调用执行部分,这里暂不使用,只记录到日志文件########################zhuti="打码 ($AEND-$ZEND) 网络质量告警"#messages=`echo -e " 报警策略名: \t $Alertname \n 报警目标: \t $Target \n 丢包率: \t $Losspattern \n 延迟时间: \t $Rtt \n 主机地址: \t$Hostname \n 报警时间: \t$Date "`#email="zhsd@www.com"echo "$Date -- $Alertname -- $Target -- $Losspattern -- $Rtt -- $Hostname" >> /tmp/smokeping-baojin#echo "$messages" | mail -s "$zhuti" $email >>/tmp/mailx.log 2>&1
感谢各位的阅读,以上就是"怎么用smokeping实现钉钉告警功能"的内容了,经过本文的学习后,相信大家对怎么用smokeping实现钉钉告警功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
报警
机器
机器人
变量
内容
目标
脚本
功能
深圳
时间
处理
学习
主机
博士
参数
地址
效果
空格
策略
类别
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
工信部网络安全年会
企业路由器服务器设置
软件开发和管理有区别吗
数据库加密函数作用
常州源昇软件开发
重庆智慧景区软件开发
谷歌账户提示无法连接服务器
软件开发程序员负责什么意思
朗新科技有什么互联网平台
数据库怎么设置日期验证规则
原神B站服务器换绑
上海工业软件开发零售价
网络安全宣传的重要性
网络安全知识分享视频
网络安全事件的报告义务
管理软件开发增值税率
图像识别服务器
plsql 数据库填什么
数据库连接池是长连接
公司叫天象网络技术有限公司
网络技术专业就业方向广州
华为杭州软件开发工程师
晴隆im即时通讯软件开发
教育局网络安全攻击演练
金仓数据库试用版
网络安全年度自查工作总结
2021软件开发工具下载
华为鲲鹏服务器CpU是什么
网络安全要审查多久
北京应用软件开发大概要多少钱