zabbix3.x设置邮箱报警

一、设置报警脚本

  • 这里有两个版本,我用的是python版

1. shell版

1.1 安装mail

yum install -y mailx sendmail
service sendmail start

1.2 配置mail

> vim /etc/mail.rc 
set [email protected]
set smtp=smtp.126.com
set smtp-auth-user=iphone3000
set smtp-auth-password=xxxxxx
set smtp-auth=login

1.3 发送测试邮件

echo "aaa"|mail -s 'aaa' [email protected]

检查邮箱可以看到邮件

1.4 邮件发送脚本

> vim /usr/local/zabbix/scripts/send_mail.sh 
#!/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.5 发送测试邮件

> /usr/local/zabbix/scripts/send_mail.sh [email protected] 'aaa' 'ccc'

检查邮箱可以看到邮件

2 python版

2.1 邮件发送脚本

> vim /usr/local/zabbix/scripts/send_mail.py 
#!/usr/bin/env python
#coding:utf8

# 导入 smtplib 和 MIMEText
import sys,getpass
import smtplib
from email.mime.text import MIMEText

# 发送邮件函数
def send_mail(to_list, sub,context):
        me = mail_user + "<"+mail_user+"@"+mail_postfix+">"
        msg = MIMEText(context)
        msg['Subject'] = sub
        msg['From'] = me
        msg['To'] = "".join(to_list)
        try:
                send_smtp = smtplib.SMTP()
                send_smtp.connect(mail_host)
                send_smtp.login(mail_user, mail_pass)
                send_smtp.sendmail(me, to_list, msg.as_string())
                send_smtp.close()
                return True
        except Exception, e:
                print str(e)
                return False

# 设置服务器名称、用户名、密码以及邮件后缀
mail_host = "smtp.126.com"
mail_user = "[email protected]"
mail_pass = "xxxxxxxx"
mail_postfix="126.com"

mailto_list = sys.argv[1]
sub= sys.argv[2]
context=sys.argv[3]

if send_mail(mailto_list,sub,context):
        print "Send mail succed!"
else:
        print "Send mail failed!"

2.2 发送测试邮件

> /usr/local/zabbix/scripts/send_mail.py [email protected] 'aaa' 'ccc'

检查邮箱可以看到邮件

注意: 有可能报警发送了邮件,你没收到,这时请查看发件方是不是邮件被退回了。

二、zabbix后台web界面配置

1. 设置media类型

Administration > Media types

name这里可以随便自己定义,type选择scripts;Script name则输入上一步编写的脚本名称;
再添加以下3个参数,分别对应脚本需要的3个参数:收件人地址、主题、详细内容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

zabbix3.x设置邮箱报警_第1张图片
media
zabbix3.x设置邮箱报警_第2张图片
media
  • 2.x版本默认会传3个参数

2. 创建action

Configuration>Actions

设置触发条件

zabbix3.x设置邮箱报警_第3张图片
Action

设置报警内容和关联报警脚本
修改持续时间为60秒
修改步骤为3,表示触发3次动作

zabbix3.x设置邮箱报警_第4张图片
operations

Recovery operations 同上

3. 对用户添加报警方式

Configuration>Users

zabbix3.x设置邮箱报警_第5张图片
add

zabbix3.x设置邮箱报警_第6张图片
media

4. 设置执行脚本的路径

> vim /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/scripts

设置755执行权限和zabbix用户属组权限

5. 测试

> /etc/init.d/zabbix_agentd stop
zabbix3.x设置邮箱报警_第7张图片
dashboard
zabbix3.x设置邮箱报警_第8张图片
Action_log
zabbix3.x设置邮箱报警_第9张图片
mail
  • 自此zabbix邮件报警配置完成~

你可能感兴趣的:(zabbix3.x设置邮箱报警)