美文网首页工作专题
zabbix3.x设置邮箱报警

zabbix3.x设置邮箱报警

作者: 撸大师 | 来源:发表于2016-11-09 17:21 被阅读3180次

一、设置报警脚本

  • 这里有两个版本,我用的是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邮件报警配置完成~

相关文章

  • zabbix3.x设置邮箱报警

    一、设置报警脚本 这里有两个版本,我用的是python版 1. shell版 1.1 安装mail 1.2 配置m...

  • zabbix 邮箱报警设置

    zabbix 添加 邮件报警: 邮件报警 配置 有两块 : 1. 服务器邮件服务 2. web端配置 他们中间 串...

  • zabbix5.X 邮件报警设置

    管理--报警媒介类型,选择Email 密码要从邮件服务商获取,QQ邮箱没设置成功,不止到为何。

  • Prometheus部署

    Prometheus部署+邮箱报警+企业微信报警+钉钉报警 1 部署Prometheus server 1.1 下...

  • Alertmanager邮箱报警配置

    Prometheus监控,这里做一个简单的磁盘空间不足的邮箱报警示例。prometheus.yml配置文件 nod...

  • zabbix报警配置

    一、报警次数与阶段设置 zabbix报警默认只报警一次,如果报警多的时候,很容易忽略掉。可以设置为第一阶段报警3次...

  • 监控信息可视化+邮箱报警机制

    监控信息可视化+邮箱报警机制 今日份打卡

  • Fundebug支持配置实时报警

    摘要: 将报警间隔设置为实时,第一时间接收提醒! 为了防止报警过于频繁,在项目设置的“报警规则”页面,我们对报警间...

  • Flask 分发邮件 flask-mail

    安装 引入 邮箱配置 PS:授权码需要在邮箱中设置 QQ邮箱==》设置==>账户==》开启服务 IMAP/SM...

  • C++ 实现智能大厦自动报警系统,源码实例讲解

    VC++ 智能大厦自动报警系统,功能包括布防参数设置、处警参数设置、报警动作设置、通讯端口设置、日志管理、系统管理...

网友评论

  • df8756913931:阿里云提示
    [Errno 110] Connection timed out
    Send mail failed!
    虚拟机可以正常发送

    是缺少什么库么,还是......
    撸大师: @1iwl https://zhidao.baidu.com/question/485138367.html, 自己百度下错误
    df8756913931:@撸大师 网络是正常的。相同的一个脚本设置。
    撸大师: @1iwl 连接超时,检查下网络
  • 守拙的瘦子_十月鱼:想问下作者,怎么做到上传这么清晰的图片的。用专业软件截图吗?
    撸大师: @守拙的瘦子_十月鱼 qq截图
  • 有仙气的小仙君:过程虽然完整 但是作为菜鸟 并不能看的明白 主要是 配置mail

本文标题:zabbix3.x设置邮箱报警

本文链接:https://www.haomeiwen.com/subject/vgnzuttx.html