报警的方式有很多,邮件,短信,微信,钉钉,最简单的方式这种脚本去发邮件,在此记录一下配置过程。
配置邮件发送
安装mailx
安装好,自己就有软链接了
1 2
| [root@vm03 ~]# ls -l /usr/bin/mail lrwxrwxrwx 1 root root 5 May 6 02:07 /usr/bin/mail -> mailx
|
配置mailx
vim /etc/mail.rc
1 2 3 4 5
| set from=user@aliyun.com set smtp=smtp.aliyun.com set smtp-auth-user=user@aliyun.com set smtp-auth-password='<password>' set smtp-auth=login
|
发送一封测试邮件
1
| echo 'test' |mailx -s 'abc' abc@qq.com
|
修改配置文件
1 2
| vim /etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts
|
发送邮件脚本
vim z_sendmail.sh
1 2 3 4
| #!/bin/bash messages=`echo $3 | tr '\r\n' '\n'` subject=`echo $2 | tr '\r\n' '\n'` echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1
|
使用脚本发送一封测试邮件
1 2 3 4
| chmod +x z_sendmail.sh touch /tmp/sendmail.log chown zabbix.zabbix /tmp/sendmail.log ./z_sendmail.sh user@qq.com "hello" "abc"
|
添加报警类型
创建报警类型z_sendmail
管理-报警媒介类型-创建媒体类型
脚本参数
1 2 3 4 5 6 7
| 名称:z_sendmail 类型:脚本 脚本名称:z_sendmail.sh 添加以下3个参数,分别对应z_sendmail.sh脚本需要的3个参数 收件人地址:{ALERT.SENDTO} 主题:{ALERT.SUBJECT} 详细内容:{ALERT.MESSAGE}
|
设置用户报警媒介
配置触发器告警
修改默认的告警模板
设置为“‘非维护状态’且‘报警值>=警告’”时触发动作
故障操作
ps:这个模板标题不会乱码,其他的标题需要做utf8转码gb2312
1 2 3 4 5 6 7 8 9 10 11
| 默认接收人:故障{TRIGGER.STATUS}:服务器 {HOSTNAME1}:{TRIGGER.NAME} 默认信息: 告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID} 请至Montoring-Events中查看详细情况。
|
恢复操作
1 2 3 4 5 6 7 8 9 10
| 默认接收人:恢复{TRIGGER.STATUS}:服务器{HOSTNAME1}:{TRIGGER.NAME} 默认信息:告警主机:{HOSTNAME1} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID} 报警已恢复,请放松心情。
|
测试告警
关闭zabbix agent,测试邮件
ps:我用qq邮箱+授权码方式测试邮件,手动发送可以,系统提示发送成功,就是收不到,浪费了一天时间,坑好深!使用阿里云邮箱测试顺利!