zabbix系列之邮件告警

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix系列之邮件告警相关的知识,希望对你有一定的参考价值。

设置邮件告警有两种方式:

1)、通过Linux自带的mail发送告警邮件

2)、通过第三方邮箱发送(如QQ邮箱、163邮箱等)告警邮件


1、修改 zabbx_server.conf 文件,指定脚本路径,没有则添加

[[email protected] ~]# vim /usr/local/zabbix/etc/zabbix_server.conf 
AlertScriptsPath=/usr/local/zabbix/alertscripts


2、在/usr/local/zabbix/alertscripts 下创建发送邮件脚本 

(1)、通过Linux自带的mail发送邮件的脚本

[[email protected] 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邮箱)发送邮件的脚本

[[email protected] 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邮件告警就配置完成了。



以上是关于zabbix系列之邮件告警的主要内容,如果未能解决你的问题,请参考以下文章

zabbix入门之配置邮件告警

Zabbix邮件告警配置(zabbix4.4)

Zabbix实战之故障处理篇Zabbix的告警邮件发送失败问题处理

青蛙学Linux—Zabbix Web使用之模板④基于触发器的动作和告警媒介

通过python为ZABBIX发告警邮件

6、zabbix告警邮件文本信息无法换行