博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zabbix 3.x邮件告警配置
阅读量:6614 次
发布时间:2019-06-24

本文共 3727 字,大约阅读时间需要 12 分钟。

zabbix可以配置多种形式的告警,包括邮件,SMS等。可以通过系统默认的SMTP邮件告警,同时也可以通过额外的脚本进行或者第三方告警平台实现

一、SMTP邮件告警

1.媒介类型

媒介是用于在Zabbix中发送通知和警报的传送通道。

您可以配置多种媒介类型:
E-mail
SMS
Jabber
Ez Texting
自定义警报提示
注意:本次使用E-mail告警的方式,其他的媒介不做配置,建议禁用
zabbix 3.x邮件告警配置

2.E-mail配置

概述

要将电子邮件配置为邮件的传递通道,您需要将电子邮件配置为媒介类型,并为用户分配特定的地址。
配置
要将电子邮件配置为媒介类型:
在 管理 - >媒体类型中设置
点击创建媒介类型 (或者点击预定义媒介类型的列表中的E-mail).

详细的官方说明如下所示:

媒介类型属性:

zabbix 3.x邮件告警配置

3、动作

只有在事件与定义的条件匹配的情况下才执行操作。 配置action时设置条件.

可以为基于触发的动作设置以下条件:
详细的动作说明请参考官方文档说明:
本次采用简单的动作配置,如下所示:
zabbix 3.x邮件告警配置

详细配置如下:

zabbix 3.x邮件告警配置
说明:
1、条件A 维护状态非在维护,意思是说只有在非维护的情况下发送告警邮件
2、条件B,触发器竟是度>=告警,意思是只有警告的级别处于警告或这警告以上的使用,才触发邮件告警

3.1操作

您可以为所有事件定义以下操作:

发送信息
执行远程命令 (包括 IPMI)
对于发现事件,还有其他操作可用:
添加主机
删除主机
启用主机
禁用主机
添加到群组
从组中删除
链接到模板
取消与模板的链接
设置主机库存模式
本次操作只配置发送消息。如下所示
zabbix 3.x邮件告警配置
说明:
1、操作细节,即邮件告警信息发送到指定用户邮箱
2、默认信息,由于默认的信息不够全面,建议按照如下配置

故障{TRIGGER.STATUS},主机:{HOSTNAME1}发生: {TRIGGER.NAME}故障!告警主机:{HOSTNAME1}告警时间:{EVENT.DATE} {EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息: {TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}

3.2恢复操作

恢复操作允许在问题解决时通知您。

恢复操作支持消息和远程命令。恢复操作不支持升级 - 所有操作都分配到一个步骤。
恢复操作的一些用例如下:
通知所有通知有关问题的用户
选择“发送恢复消息”作为操作类型
恢复时有多个操作:发送通知并执行远程命令
添加发送消息和执行命令的操作类型
在外部帮助台/票务系统中打开机票,并在问题解决时将其关闭
创建一个与帮助台系统通信的外部脚本
创建一个操作,该操作具有执行此脚本的操作,从而打开一张票据
恢复操作,使用其他参数执行此脚本并关闭故障单
使用{EVENT.ID}宏来引用原始问题
zabbix 3.x邮件告警配置
同样的,原有默认信息不够全面,建议按照如下进行调整

恢复{TRIGGER.STATUS}, 主机:{HOSTNAME1}: {TRIGGER.NAME}已恢复!告警主机:{HOSTNAME1}告警时间:{EVENT.DATE} {EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息: {TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}

4.配置用户邮箱

需要在ZABBIX上配置用户和用户邮箱,这样一旦发生警报,zabbix可以发送邮件指定的联系人

zabbix 3.x邮件告警配置

zabbix 3.x邮件告警配置

5.效果验证

一旦发生警报,自动发送邮件

zabbix 3.x邮件告警配置

zabbix 3.x邮件告警配置

二、调用第三方告警平台

这里推荐使用onealert,设置比较简单,但是免费版每月邮件上限为300.

官网注册账号

配置中添加应用

zabbix 3.x邮件告警配置

创建获取key

zabbix 3.x邮件告警配置

系统会自动生成一键安装脚本

zabbix 3.x邮件告警配置

登录到zabbix server服务器,安装脚本运行就可以了。

三、通过脚本实现告警

在zabbix配置文件中查找脚本目录

[root@zabbix-server zabbix]# grep 'AlertScriptsPath' zabbix_server.conf###Option: AlertScriptsPath AlertScriptsPath=${datadir}/zabbix/alertscriptsAlertScriptsPath=/usr/lib/zabbix/alertscripts

在/usr/lib/zabbix/alertscripts目录下创建发邮件脚本sendmail_zabbix.py

[root@zabbix-server alertscripts]# cat sendmail_zabbix.py#!/usr/bin/python#coding:utf-8import smtplibfrom email.mime.text import MIMETextfrom email.header import Headerfrom email.utils import parseaddr, formataddrimport sysdef formatAddr(s):    name, addr = parseaddr(s)    return formataddr((Header(name, 'utf-8').encode(), addr))def send_mail(to_list,subject,content):    mail_host = 'smtp.exmail.qq.com'    mail_user = 'xxxxxxxxxxx'    mail_pass = 'xxxxxxxxxxx'    #以上内容根据你的实际情况进行修改    msg = MIMEText(content,'plain','utf-8')    msg['Subject'] = Header(subject, 'utf-8').encode()    msg['From'] = formatAddr('zabbix监控 <%s>' % mail_user).encode()    msg['to'] = to_list    try:        s = smtplib.SMTP()        s.connect(mail_host)        s.login(mail_user,mail_pass)        s.sendmail(mail_user,to_list,msg.as_string())        s.close()        return True    except Exception,e:        print str(e)        return Falseif __name__ == "__main__":    send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

配置脚本权限

chmod +x sendmail_zabbix.pychown zabbix.zabbix sendmail_zabbix.py

创建报警媒介

重点是添加三个参数

{ALERT.SENDTO}收件人地址
{ALERT.SUBJECT}主题
{ALERT.MESSAGE}详细内容
zabbix 3.x邮件告警配置

给用户配置报警媒介

zabbix 3.x邮件告警配置

创建动作

这里注意添加触发器示警度

zabbix 3.x邮件告警配置

设置操作和恢复操作

zabbix 3.x邮件告警配置

优化报警内容

配置告警内容故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!告警主机:{HOSTNAME1}告警时间:{EVENT.DATE} {EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息: {TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}

配置恢复内容

恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!告警主机:{HOSTNAME1}告警时间:{EVENT.DATE} {EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息: {TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}

转载于:https://blog.51cto.com/11555417/2047687

你可能感兴趣的文章
初探数据双向绑定
查看>>
Webpack4 不深不浅的实践教程
查看>>
3分钟搞掂Set集合
查看>>
win10下安装Docker
查看>>
Linux下常用的磁盘管理技术LVM
查看>>
Silverlight杂记之HTTP通信WebClient介绍
查看>>
动态路由协议之RIP配置详解
查看>>
(apache+tomcat集群+memcached番外篇)单台tomcat的session信息的2种持久化方式
查看>>
nginx1.9+做TCP代理(端口转发)
查看>>
HTML元素的默认CSS设置介绍
查看>>
CSS-图片不变形设置
查看>>
Git异常:fatal: could not create work tree dir 'XXX': No such file or directory
查看>>
GNU make manual 翻译(八十二)
查看>>
python批量下载图片的三种方法
查看>>
[项目过程中所遇到的各种问题记录]部署篇——项目部署过程中那些纠结的问题-IIS...
查看>>
/bin/bash^M: bad interpreter: 没有那个文件或目录
查看>>
apiCloud手动检测更新
查看>>
【JS】 JS毫秒值转化为正常格式 或者正常格式转化为毫秒值
查看>>
程序员的罪与罚
查看>>
android中文api (59) —— TabHost.TabSpec
查看>>