1、服务端配置
编写邮件发送脚本
[fieldyang@www alertscripts]$ pwd
/usr/lib/zabbix/alertscripts
[fieldyang@www alertscripts]$ ll
总用量 8
-rwxr-xr-x 1 root root 136 5月 16 23:28 mail.sh
-rwxr-xr-x 1 root root 751 5月 16 23:56 send_mail.py
[fieldyang@www alertscripts]$ cat mail.sh
#!/bin/sh
message=$(echo -e $1 | tr "\r\n" "\n")
subject=$(echo -e $2 | tr "\r\n" "\n")
sendto=
echo "$message" | mail -s "$subject" $3
[fieldyang@www alertscripts]$
[fieldyang@www alertscripts]$ cat send_mail.py
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_host = 'smtp.qq.com'
mail_user = xxx
mail_pass = 'xxxx' à必须是邮箱的授权码,不是密码
mail_postfix = 'qq.com'
def send_mail(to_list,subject,content):
me = "zabbix"+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = subject
msg['From'] = me
msg['to'] = to_list
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me,to_list,msg.as_string())
s.close()
return True
except Exception,e:
print str(e)
return False
if __name__ == "__main__":
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
测试
[fieldyang@www alertscripts]$ python send_mail.py xxxxxxx@qq.com subject 'just test'
[fieldyang@www alertscripts]$
2、zabbix web界面配置
2.1、配置报警媒介
管理 --> 报警媒介类型-->创建媒体类型
注意:类型必须为脚本
2.2、创建测试触发器
配置-->主机-->触发器-->创建触发器
2.3、创建动作
配置-->动作-->创建动作-->动作
配置-->动作-->创建动作-->操作
告警邮件内容:
主题
故障{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}
恢复邮件内容
主题
恢复{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}
2.4、用户添加报警媒介
管理-->用户-->选择用户-->报警媒介
注意 如QQ邮箱 需要 xxx<xxx@qq.com> 格式,否则无法发送
3、测试
下线CMDB系统,可以看到产生问题并下发告警邮件,
上线CMDB,可以看到问题解决,并下发恢复邮件