怎么用smokeping实现钉钉告警功能
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章主要讲解了"怎么用smokeping实现钉钉告警功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么用smokeping实现钉钉告警功能"吧
千家信息网最后更新 2024年11月11日怎么用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安全错误
数据库的锁怎样保障安全
数据库技术在当前社会上的应用
表中引入其他表中的数据库
数据库和视图的关系
计算机网络技术是结合
商城订单系统数据库设计
国三数据库是题库原题
网络安全产品标准
网络技术单招考题
服务器主板能超频不
控制面板管理工具服务器在哪
云数据库的含义
网络安全常见的病毒传播方式
成广平全区网络安全和信息化
java软件开发简历范文
软件开发用哪些语言
web软件开发师交流贴吧
加强网络安全_信息安全建设
贝壳找房软件开发者
河南省鼎信网络安全有限公司
网络安全案例2021重庆渝北
计算机网络技术术语对照
自动化电器软件开发
商城订单系统数据库设计
热场仿真模拟软件开发公司
网络技术单招考题
拉萨旧服务器
成广平全区网络安全和信息化
视频用什么软件开发
网络安全十八大综述
虹口区咨询网络技术服务常见问题