1、Zabbix邮件告警

说明:

Zabbix监控服务端、客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常。

实现目的:

Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱

 

 

首先在配置文件里修改AlertScriptsPath

[root@cml alertscripts]# vim /usr/local/zabbix/etc/zabbix_server.conf

AlertScriptsPath=/usr/local/zabbix/alertscripts

 

qq邮箱里面生成一个授权码作为给脚本授权帮你发邮件使用

Zabbix邮件告警_邮件 

 

编写一个发邮件的Python脚本

[root@cml alertscripts]# cd /usr/local/zabbix/alertscripts/

[root@cml alertscripts]# ls

linkedsee.sh  weixin.py  zabbix_mail.py

[root@cml alertscripts]# cat zabbix_mail.py

#!/usr/bin/python

#coding: utf-8

import smtplib

import sys

from email.mime.text import MIMEText

_user = "406552227@qq.com"    ##填写作为邮件报警发送端

_pwd  = "zpys"       ###填写刚刚邮箱里面生成的授权码

#_to   = "13926109782@163.com"

 

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])

 

[root@cml alertscripts]#

 

zabbix配置  管理-->报警媒介类型-->创建报警媒介类型(类型需要选择脚本,脚本名称与编写的脚本名字一样,下面三个参数代表发送给那个邮件、标题是什么、内容是什么。 )

Zabbix邮件告警_Zabbix_02 

在用户配置报警媒介 需要填写收件人的邮箱和类型

Zabbix邮件告警_告警_03Zabbix邮件告警_告警_04 

然后配置-->动作-->创建动作--操作-->恢复操作

Zabbix邮件告警_告警_05Zabbix邮件告警_告警_06Zabbix邮件告警_邮件_07 

Zabbix邮件告警_告警_08 

触发报警:

Zabbix邮件告警_Zabbix_09 

解决报警后

Zabbix邮件告警_告警_10 

成功演示了服务器报警后自动发生邮件给我的邮箱