3.1 QQ邮件告警平台
3.1.1 安装sendmail(上文有所有包)
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
yum -y install perl-Net-SSLeay perl-IO-Socket-SSL
tar xf sendEmail-v1.56.tar.gz -C /usr/local/
cd /usr/local/sendEmail-v1.56/
/bin/cp -ra sendEmail /usr/local/bin/
chmod +x /usr/local/bin/sendEmail
which sendmail
3.1.2 sendmail命令使用说明
3.1.3 调整QQ邮箱设置
开启后生成的码保存一下,测试邮件的时候需要用到
测试邮件发送
sendEmail -f 1123400300@qq.com -t 1123400300@qq.com -u "zabbix_server" -s smtp.qq.com -o message-content-type=html -o message-charset=utf8 -xu 1123400300@qq.com -xp lrvtvcgwvsmtijic -m "邮件发送成功"
3.1.4 编写QQ邮件平台报警脚本
cd /usr/local/zabbix/share/zabbix/alertscripts
pwd
vim sendmail.sh
chmod +x sendmail.sh
chown zabbix.zabbix sendmail.sh
cat sendmail.sh
#!/bin/bash
#author:Mr.sun
to=$1
subject=$2
body=$3
from=1123400300@qq.com
smtp=smtp.qq.com
passwd=lrvtvcgwvsmtijic
/usr/local/bin/sendEmail -f "$from" -t "$to" -s "$smtp" -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu "$from" -xp"$passwd" -m "$body"
3.1.5 脚本测试
sh sendmail.sh 1123400300@qq.com "hello world" "新的一天"
3.1.6 修改zabbix_server.conf配置文件
cat -n /usr/local/zabbix/etc/zabbix_server.conf | grep "447"
447 AlertScriptsPath=${datadir}/zabbix/alertscripts
将上述内容修改成如下所示
cat -n /usr/local/zabbix/etc/zabbix_server.conf | grep "447"
447 AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
重启zabbix_server服务
/etc/init.d/zabbix_server restart
netstat -antup | grep zabbix_serve
3.1.7 创建报警媒介
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
3.1.8 创建报警动作
步骤1-3也就是从1开始到3结束。一旦发生故障,就是执行sendmail.sh脚本发生报警邮件给zabbix用户。
假如故障持续了1个小时,它也只发送3次,第1-3次(即前3次)邮箱发送给zabbix用户,时间间隔为0秒。
如果改成1-0,0是表示不限制,无限发送。
3.1.9 QQ邮件报警测试
给自定义监控项num_users创建一个触发器,如下
利用Xshell,增加连接数,触发报警并检查邮件
3.3 自定义自动报警的内容
(1)自定义内容样例
如果不修改报警的内容格式,看起来太乱了。我们可以按照如下方式修改
#告警通知格式样例
#题目
A故障:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!
#内容
告警主机: ;{HOSTNAME1}<br/>
告警时间: ;{EVENT.DATE} {EVENT.TIME}<br/>
告警等级: ;{TRIGGER.SEVERITY}<br/>
告警信息: ;{TRIGGER.NAME}<br/>
告警项目: ;{TRIGGER.KEY1}<br/>
问题详情: ;{ITEM.NAME} {ITEM.VALUE}<br/>
当前状态: ;{TRIGGER.STATUS} {ITEM.VALUE1}<br/>
事件ID: ;{EVENT.ID}