IDC网络质量分析工具之(四)如何实现smokeping的外部邮件(163邮箱)报警

安装邮件发送工具,并配置发送账户信息

#第一:在smokeping主机上安装mailx
    yum install mailx -y

#第二:备份并编辑mailx的配置文件,设置发送邮件账户
    cp /etc/mail.rc{,.bak}
    vim /etc/mail.rc

#先清空里面的内容,然后填入以下信息
      set from=11111@163.com
      set smtp=smtp.163.com
      set smtp-auth-user=111111
      #拿163邮箱来说这个不是密码,而是授权码
      set smtp-auth-password=111111
      set smtp-auth=login

#第三:发送测试邮件,验证mailx是否设置正确
    echo  " nishi wo de " | mail -s " this is email" 123456789@qq.com

注意:这里额外介绍如何让mailx使用smtps(适用于某些屏蔽对外部25端口访问的机房--阿里云机房)
      set nss-config-dir=/etc/pki/nssdb/
      set smtp-user-starttls                      #要点
      set ssl-verify=ignore
      set from=1234567@163.com
      set smtp=smtps://smtp.163.com:465            #要点1
      set smtp-auth-user=1234567@163.com
      set smtp-auth-password=1234567
      set smtp-auth=login

配置smokeping调用外部脚本进行邮件报警

    vim /opt/smokeping/etc/config

*** Alerts ***
#to = 8ds@wsdfsk.com
to = |/opt/smokeping/bin/mailx_alert.sh     # 使用|接脚本路径,调用外部脚本
from = smokealert@company.xy

#注意:smokeping在告警的时候会发送5个参数到告警接收媒介(这里也就是我们自定义的alert脚本),参数按照顺序分别为:name-of-alert, target, loss-pattern, rtt-pattern, hostname,对应下面报警脚本的$1-$5

编写邮件报警脚本

    vim /opt/smokeping/bin/mailx_alert.sh

#!/bin/bash
#########################################################
# Script to email a ping report on alert from Smokeping #
#########################################################
# 解析变量
zhuti="临空IDC-网络质量监测报警"
alertname=$1
target=$2
losspattern=$3
rtt=$4
hostname=$5
DATE=$( date '+%Y-%m-%d %H:%M:%S' )

#根据报警目标,将其与smokeping配置文件中目标的中文标题进行匹配
case "$target" in
  yw.sw.sw-I16)
    target=白水湖3F-I16交换机-yw.sw.sw-I16;;
  yw.sw.sw-H161)
    target=白水湖4F-H16高防核心上联一口-yw.sw.sw-H161;;
  yw.sw.sw-H162)
    target=白水湖4F-H16高防核心上联二口-yw.sw.sw-H162;;
  yw.sw.sw-H17)
    target=白水湖4F-H17-汇聚交换机-yw.sw.sw-H17;;
  yw.sw.sw-H17-10)
    target=白水湖4F-H17-防火墙管理机-yw.sw.sw-H17-10;;
  yw.sw.sw-I17)
    target=白水湖3F-I17交换机-yw.sw.sw-I17;;
  yw.sw.sw-I18)
    target=白水湖3F-I18交换机-yw.sw.sw-I18;;
  yw.sw.sw-I19)
    target=白水湖3F-I19核心交换机-yw.sw.sw-I19;;
  yw.sw.sw-I20)
    target=白水湖3F-I20交换机-yw.sw.sw-I20;;
  yw.sw.sw-shuya)
    target=白水湖3F-I16束亚交换机-yw.sw.sw-shuya;;
  esac

#messages=`echo -e " Name of Alert: \t $alertname \n Target: \t $target \n Loss Pattern: \t $losspattern  \n RTT Pattern: \t $rtt \n Hostname: \t$hostname"`
messages=`echo -e " 报警策略名: \t $alertname \n 报警目标: \t $target \n 丢包率: \t $losspattern  \n 延迟时间: \t $rtt \n 主机地址: \t$hostname \n 报警时间: \t$DATE "`

email="8dsd8@dsdsfnk.com"
echo "$DATE -- $alertname -- $target -- $losspattern -- $rtt -- $hostname" >> /tmp/smokeping-baojin
echo "$messages" | mail -s "$zhuti" $email >>/tmp/mailx.log 2>&1

为邮件报警脚本赋予执行权限

    chmod +x /opt/smokeping/bin/mailx_alert.sh 

编写报警策略

    vim /opt/smokeping/etc/config

*** Alerts ***
#to = alertee@address.somewhere
to = |/opt/smokeping/bin/mailx_alert.sh
from = smokealert@company.xy
# 定义各种告警规则,有两种类型,(延时|丢包)
+hostdown
type = loss
# in percent
pattern = ==0%,==0%,==0%, ==U
comment = 对端无响应

+hight-loss
type = loss
# in percent
pattern = ==0%,==0%,==0%,==0%,>15%,>15%,>15%
comment = 连续3次采样-丢包率超过15%

+some-loss
type = loss
# in percent
pattern = >0%,*12*,>0%,*12*,>0%
comment = 间断性丢包

+enlarge-rtt
type = rtt
# in milli seconds
pattern = <100,<100,<100,<100,<100,<150,>150,>150,>150
comment = 连续3次采样延迟增大-超过150ms

应用告警策略

如你所了解的,smokeping的配置文件里面通过"+"号的个数来定义层级关系,因此你可以在不同的层级里面调用告警规则,上级的定义可以被下级继承和覆盖(内层的优先级更高)

#配置语法
#  alerts = 告警规则1,告警规则2,告警规则3

    vim /opt/smokeping/etc/config

*** Targets ***
+ Other
menu = 全国DNS网络监控
title = 全国DNS网络监控

++ dx
menu = 电信
title = 电信网络监控列表
#合理应用多个策略,能减少误报
alerts = hostdown,hight-loss
host = /Other/dx/dx-jx  /Other/dx/dx-sh 

+++ dx-jx
menu = 江西电信
title = 江西电信
alerts = hostdown,some-loss
host = 202.101.22.98

+++ dx-sh
menu = 上海电信
title = 上海电信
slaves = tengxunyun
host = 202.96.209.133

最后:重启相关服务

声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/352.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2022/12/11作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录