zabbix3.x设置邮箱报警

一、设置报警脚本

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

1. shell版

1.1 安装mail

yum install -y mailx sendmail
service sendmail start

1.2 配置mail

> vim /etc/mail.rc 
set from=iphone3000@126.com
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' 763836801@qq.com

检查邮箱可以看到邮件

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 763836801@qq.com '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 = "iphone3000@126.com"
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 763836801@qq.com 'aaa' 'ccc'

检查邮箱可以看到邮件

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

二、zabbix后台web界面配置

1. 设置media类型

Administration > Media types

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

media
media
  • 2.x版本默认会传3个参数

2. 创建action

Configuration>Actions

设置触发条件

Action

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

operations

Recovery operations 同上

3. 对用户添加报警方式

Configuration>Users

add

media

4. 设置执行脚本的路径

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

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

5. 测试

> /etc/init.d/zabbix_agentd stop
dashboard
Action_log
mail
  • 自此zabbix邮件报警配置完成~
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容