1)、通过Linux自带的mail发送告警邮件
2)、通过第三方邮箱发送(如QQ邮箱、163邮箱等)告警邮件
1、修改 zabbx_server.conf 文件,指定脚本路径,没有则添加
[root@centos1 ~]# vim /usr/local/zabbix/etc/zabbix_server.conf AlertScriptsPath=/usr/local/zabbix/alertscripts
2、在/usr/local/zabbix/alertscripts 下创建发送邮件脚本
(1)、通过Linux自带的mail发送邮件的脚本
[root@centos1 alertscripts]# cat mailx.sh #!/bin/bash #to=$1 #subject=$2 #Dbody=$3 #export.UTF-8 echo "$3" | sed s/'\r'//g | mail -s "$2" $1
(2)、通过第三方邮箱(QQ邮箱)发送邮件的脚本
[root@centos1 alertscripts]# cat e-mail.py #!/usr/bin/python #coding: utf-8 import smtplib import sys from email.mime.text import MIMEText _user = "QQ邮箱" _pwd = "QQ邮箱中POP3/SMTP的服务密码" _to = "发送到哪个邮箱" def send_mail(to,subject,contain): msg = MIMEText(contain) msg["Subject"] = subject msg["From"] = _user msg["To"] = to try: s = smtplib.SMTP_SSL("smtp.qq.com", 465) s.login(_user, _pwd) s.sendmail(_user, to, msg.as_string()) s.quit() with open('/tmp/zabbix.log', 'w') as f: f.write("%s\n%s\n%s\n"%(to,subject,contain)) # print "Success!" except smtplib.SMTPException,e: print "Falied,%s"%e if __name__ == "__main__": send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
注:
记得给脚本执行权限和重启zabbix相关服务,同时还要先测试一下脚本是否能够成功发送邮件(这里就不做测试了)。
3、在zabbix页面配置(注:)
(1)、创建报警媒介,如图1所示
图1
注:
名称:zabbix_mail (名称可以随意指定,后期调用)
类型:脚本
脚本名称:e-mail.py
添加脚本参数(在 3.0 版本之前默认传值不用添加):
{ALERT.SENDTO} ####发送地址
{ALERT.SUBJECT} ###主题
{ALERT.MESSAGE} ###发送内容
##这里只配置第三方邮箱发送邮件,使用Linux自带的mail也是一样的配置
(2)、添加用户操作命令,什么时候发送邮件,发送给谁,如图2所示
图2
注:类型选择刚刚创建的报警媒介的名称
(3)、创建动作操作,如图3和图4所示,配置恢复操作,如图5所示
图3
图4
图5
注:默认信息里的主机和ip地址是自己添加的,因为如果某台被监控的服务器出现问题了,默认发送的告警信息是没有主机名和ip地址的,需要我们自己登陆到zabbix监控页面查看究竟是哪台服务器出现问题。
(4)、创建触发器,如图6所示
这里以被监控的主机centos2为例,如果主机centos2的登陆用户数超过3个就发送邮件告警
图6
(5)、创建图形,如图7所示
图7
(6)、查看监控页面,如图8所示
图8
(7)、测试,当用户登录数大于设定值时,会发送告警邮件
查看用户登录数,如图9所示
图9
查看动作日志,如图10所示
图10
查看邮件,如图11所示
图11
(8)、当用户登陆数减少到设定的值以下时,会发送恢复通知
查看监控页面,如图12所示
图12
注:由于之前忘了重启zabbix相关服务,导致一开始邮件发送失败,试了好几次才发现,所以
查看动作日志,如图13所示
图13
查看邮件,如图14所示
图14
至此,zabbix邮件告警就配置完成了。
原文地址:http://blog.51cto.com/3381847248/2054018