smokeping 默认用sendmail 发邮件告警,也可以直接调用外部程序进行报警。smokeping的alert设置有点复杂,但是却很好用,设置很灵活,考虑得很周全。
默认情况下sendmail 是不通过163、qq之类的邮件服务器发送的。
我们本次使用调用外部mail程序告警:
"to" 选项,默认是要填入一个email地址的,但是只要在"="后面加上"|",后面再跟你自定义的脚本的路径,就可以调用自己的脚本进行alert了。脚本会读入5或者6个参数:name-of-alert, target, loss-pattern, rtt-pattern, hostname,[raise]。自己选择使用哪些参数alert即可。
配置alert.sh脚本文件
[root@localhost etc]# cat ../bin/alert.sh
#!/bin/sh
echo "图表链接:http://x.x.x.x/smokeping?target=$2
事件规则:$1
IP: $5
$3
$4
hostdown = 对端无响应
--------------------------------
bigloss = 连续3次采样-丢包率超过10%
--------------------------------------------
rttdetect = 连续3次采样延迟增大-超过150ms" |mail -s "smokeping alert $2 - $5" 123@qq.com
然后还需要配置发件人
[root@localhost etc]# tail /etc/mail.rc
# Only include selected header fields when forwarding messages.
fwdretain subject date from to
# For Linux and BSD, this should be set.
set bsdcompat
set from=xx@xx.com smtp=smtp.exmail.qq.com
set smtp-auth-user=xx@xx.com smtp-auth-password=xxxxx
set smtp-auth=login
查看邮件
特定主机发送到特定用户
to 表示接受所有报警的邮箱,如果需要在特定的节点报警发送到特定的邮箱
则在该节点上增加alertee = xxx@qq.com即可
全文完