zabbix告警邮件参数(zabbix设置邮件告警)

来源网友投稿 928 2022-12-30

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
本篇文章给大家谈谈zabbix告警邮件参数,以及zabbix设置邮件告警对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享zabbix告警邮件参数的知识,其中也会对zabbix设置邮件告警进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

zabbix告警配置

概述

假设我们配置了一些监控项和触发器zabbix告警邮件参数,现在当触发器状态改变时会获取一些发生的事件,是时候考虑下一步行动了。

我们不可能一直盯着触发器或者事件列表,当发生一些标志性的事件时发送警告再好不过。当问题发生,关注这些的用户都会被通知。

zabbix提供主要的功能就是发送告警就是这个原因。哪些人?在什么时候?应该收到哪些信息是可以被定义的。

为了发送和接收来自zabbix的告警,你必须:

定义媒介

配置发送信息到定义媒介的动作

动作由 触发条件 和 操作 组成。基本上当条件符合时,操作被执行。两个主要的操作是 发送消息 和 执行远程命令

为了发现和自动注册创建的事件,一些额外的操作是可用的,包含添加或者删除主机,链接模板等

一、媒介(Media types)

概述

Media 是用于发送zabbix的消息与告警的递送通道

可以定义一下媒介类型

E-mail

SMS

Jabber

Ez Texting

Custom alertscripts

1、 E-mail

为消息定义E-mail发送通道,需要配置e-mail 作为媒介类型并且传递指定的地址给用户

配置

依次点击 管理——报警媒介类型,点击创建媒介类型(或者点击预先定义的媒介类型 E-mail)

媒介类型表包含通常的媒介类型属性

所有重要的字段都会标记红星

Name 媒介类型名字

Type 选择Email作为类型

SMTP server 设置stmp服务器作为处理信息的出口

SMTP server port 设置smtp服务的端口,这个参数从zabbix3.0开始支持

SMTP helo 这是正确的stmp链接值,通常为域名

SMTP email 这个地址会被用于信息发送者,用来发送消息,添加发送者的显示名 如 Zabbix_info则zabbix_info<gaoxiaoxu@126.com

几个可以生效的配置:

gaoxiaoxu@126.com 只有邮箱地址,不需要尖括号

zabbix_info<gaoxiaoxu@126.com 显示名与邮件地址,地址写在尖括号中

监控系统<gaoxiaoxu@126.com 使用UTF-8格式的显示名

Connection security 选择链接安全级别,None为不使用ssl选项,starttls 使用 CURLOPT_USE_SSL参数,SSL/TLS则CURLOPT_USE_SSL可选

SSL verify peer 标记checkbox同步SMTP服务的SSL证书,

Authentication 认证方法

Username 用户名

Password 密码

Enabled 启用媒介

注意 : 为了使SMTP中的authentication 选项可用,zabbix在编译时,需要带--with-libcurl参数 使用cURL7.20.0或更高版本

第二个选项卡options

第二个选项卡options配置了告警的处理流程。同样的options配置在其他的媒介类型中也存在。

所有媒介都是并行处理的,当前最大会话每个媒介自己定义,但是zabbix服务的告警处理总数被参数(zabbix_sever.conf)StartAlerters所限制。同一触发器生成的告警会序列化的处理

options表

concurrent sessions 并发会话数,三个选项,one(一个),unlimited(不限制),custom(自定义)

Attempts 尝试发送告警的次数,如果设置为1,则zabbix会发送以此通知,并且失败时不会重发

Attempts interval  重发通知的频率,发送失败时重发的间隔

配置用户的媒介

依次点击 Administration(管理)---Users(用户)

点击用户的属性表,在Media(媒介)表中点击add

type 选择Email作为类型

send to 指定email地址,可以点击add添加多个地址,同理此地址也可设置显示名如Zabbix_admin<gaoxiaoxu@126.com或者gaoxiaoxu@126.com

when active 设置发送时间如工作日(1-5,09:00-18:00)可以使用宏

Use if severity 指定想要接受的告警等级

status 启用与否

2、SMS

zabbix发送短信,使用串行GSM调试解调器连接到zabbix server的serial port

先决条件:

串行设备(正常情况下在linux的/dev/ttyS0)的速度取决于modem。zabbix不设置串行链接的速度。

zabbix user拥有对串行设备的读写权限,运行ls -l /dev/ttyS0查看当前权限

GSM调试解调器拥有PIN码,PIN也可以禁用使用命令 AT+CPIN="NNNN"输入PIN, 必须有双引号。

已经测试好的modem Siemens MC35 Teltonika ModemCOM/G10

配置SMS作为发送通道,需要配置SMS作为媒介类型并且在用户界面配置接收手机号

配置

依次点击 Administration---Media types,点击创建media type或使用预先的配置

sms的Media type表属性

Description media type名

Type 选择SMS

GSM modem 选择设备如 /dev/ttyS0

options选项卡见E-mail

配置用户媒介

依次点击 Administration(管理)---Users(用户)

点击用户的属性表,在Media(媒介)表中点击add

types 选择SMS作为媒介

Send to 输入用户手机号

When active 设置发送时间如工作日(1-5,09:00-18:00)可以使用宏

Use if severity 指定想要接受的告警等级

status 启用与否

3、Jabber (略)

4、Ez Texing(略)

5、Custom alertscripts

如果不满足于存在的媒介来发送警告,可以自定义脚本进行发送

警告脚本在zabbix server上执行,这些脚本位于server配置文件AlertScriptsPath变量(默认/usr/local/share/zabbix/alertscripts)

脚本示例:

#zabbix告警邮件参数!/bin/bash

to=$1

subject=$2

body=$3

cat <<EOF |mail -s "$subject" "$to"

$bodyEOF

从3.4开始zabbix会检查exit code(shell执行返回码,0为成功),若exit code 不等于0,则认为执行失败,zabbix会重复执行

script不保存环境变量,所以环境变量要精确指定

配置

依次点击 Administration---Media types,点击创建media type

mediatype表属性

Name 输入媒介的名字

Type 选择Script作为类型

Script name 输入脚本的名字(zabbix server中的脚本文件)

Script parameters 添加命令行参数到脚本

可支持ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}等宏,

{ALERT.SENDTO} 用户媒介中的send to(收件人)的值

{ALERT.SUBJECT} 动作配置中的Default subject(默认标题)

{ALERT.MESSAGE} 动作配置中的Default message(消息内容)

options表中定义了处理流程,见E-mail的说明

配置用户媒介User media

依次点击 Administration(管理)---Users(用户)

点击用户的属性表,在Media(媒介)表中点击add

用户媒介属性

Type 选择自定义脚本的媒介类型

Send to 指定告警接收人

When active 设置发送时间如工作日(1-5,09:00-18:00)可以使用宏

Use if serverity 指定想要接受的告警等级

status 启用与否

二、动作

如果你希望发生事件时会触发一些操作,那么你需要配置action

动作可以定义回应所有支持的事件类型,

事件类型:

Trigger events触发器事件,当触发器状态从ok改变到problem或相反。

Discovery events 当自动发现产生

Auto registration events当新的agent自动注册时,或者经注册过的主机元数据改变

Internal events当监控项变为不支持或触发器状态变为unknown时

配置一个动作

依次 Configuration ——Actions

从event source中选择需要的源(分为:触发器源,自动发现源,自动注册源,事件源)

点击创建动作

选择操作执行的条件

选择具体操作

选择恢复操作

动作表的属性

Name 唯一动作名

Type of calcaulation 选择条件触发的计算方法

And 必须符合所有条件

Or 只要一个条件符合即可

And/Or 结合二者,不同类型的条件用And,同一类型的条件用Or

Custom expression 用户自定义

Conditions 触发动作的一系列条件、

New condition 选择新的动作触发条件

Enabled 启用动作

条件设置

基于触发器的条件

Application 应用集

Host group 主机组

Template 模板

Host 主机

Tag 标签(串)

tag value 标签值

Trigger 触发器

Trigger name 触发器名字

Trigger severity 触发器等级

Time period 触发时间

Problem is suppressed 触发问题是否意料之中,如主机维护

基于自动发现的条件

Host IP 指定主机ip地址自动发现范围 格式: 单独的ip:192.168.1.33 范围ip: 192.168.1-101.1-254  Ip mask: 192.168.4。0/24

Service type 服务类型

service port 服务端口

Discovery rule 指定自动发现规则

Discovery check

Discovery object

Discovery status

Uptime/Downtime

Received value

Proxy

基于自动注册的条件

Host metadata 由zabbix_agentd.conf 文件中的HostMetadata变量定义

Host name

Proxy

基于内部事件的条件

Application

Event type

Host group

Template

Host

条件匹配后,就需要执行响应的动作了

可以支持以下动作

send a message

execute a remote command

add host

remove host

enable host

disable host

add to host group

remove from host group

link to template

unlink from template

set host inventory mode

执行远程命令

确保配置文件中(zabbix_agentd.conf)EnableRemoteCommands 参数设置为1

加入zabbix用户到sudo,vim /etc/sudoer

zabbix ALL=NOPASS: ALL #所有命令不需密码

zabbix ALL=NOPASS: /etc/init.d/apache restart  #指定某一命令不需要密码

触发操作后,使用宏 编辑信息

如 告警信息模板

标题 服务器:{HOST.NAME} - 发生: {TRIGGER.NAME}故障

信息 告警主机:{HOST.NAME}

告警地址:{HOST.IP}

监控项目:{ITEM.NAME}

监控取值:{ITEM.LASTVALUE}

告警等级:{TRIGGER.SEVERITY}

当前状态:{TRIGGER.STATUS}

告警信息:{TRIGGER.NAME}

告警时间:{EVENT.DATE} {EVENT.TIME}

事件ID:{EVENT.ID}

恢复信息

标题 服务器:{HOST.NAME} - {TRIGGER.NAME} 已恢复

信息 告警主机:{HOST.NAME}

告警地址:{HOST.IP}

监控项目:{ITEM.NAME}

监控取值:{ITEM.LASTVALUE}

告警等级:{TRIGGER.SEVERITY}

当前状态:{TRIGGER.STATUS}

告警信息:{TRIGGER.NAME}

告警时间:{EVENT.DATE} {EVENT.TIME}

恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}

持续时间:{EVENT.AGE}

事件ID:{EVENT.ID}

zabbix 告警

根据支持zabbix告警邮件参数的时间定义zabbix告警邮件参数的事件:

生成触发器的动作

邮件告警就配置成功

在为对应的用户添加对应的邮箱即可。

内容:

编写通知脚本

创建媒体类型

用户指定媒体类型

在sever端zabbix告警邮件参数,自定义脚本发

1.首先在要在server编写对应的可执行的脚本

首先脚本文件的编写

接下来为脚本文件添加可执行权限

chmod +x sendmail.py

接下来将脚本文件安装到zabbix告警媒介文件夹下

vim /etc/zabbix/zabbix_server.conf

将sendmail文件移动到对应的目录下:

接下来就可以在前端上配置对应的告警媒介

参数:

{ALERT.SENDTO}收件人地址

{ALERT.SUBJECT}主题

{ALERT.MESSAGE}详细内容

在经过测试确认可用之后,就有新的告警媒介了。

像一般的告警介质一样使用就可以了。
去设置对应的告警就可以了

如何让zabbix发送警告邮件

zabbix相关环境zabbix告警邮件参数
OS: centos 5.4 x86_64 zabbix: 1.8.3 sendmail: 8.13.8-2.el5
在配置zabbixzabbix告警邮件参数的Email报警之前zabbix告警邮件参数,需要将sendmail使用的域名进行相应的修改,系统默认为localhost.localdomain,其实不改也行,不过有些pop3服务器会过滤掉来自localhost.localdomain的邮件,导致邮件不能正常查收,所以,最好是改一下 hostname,确保邮件发送的成功率。
以下是我线上机器修改好zabbix告警邮件参数了的配置,可供参考。
# cat /etc/hosts
127.0.0.1 monitor.bot.cms localhost.localdomain localhost
# cat /etc/mail/access
Connect:localhost.localdomain RELAY
  Connect:localhost RELAY
Connect:127.0.0.1
Connect:monitor.bot.cms RELAY
# cat /etc/mail/local-host-names
monitor.bot.cms
修改完成后,重启sendmail服务,通过telnet命令,测试一下看看是否已生效
# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to monitor.bot.cms (127.0.0.1).
Escape character is '^]'.
220 monitor.bot.cms ESMTP Sendmail 8.13.8/8.13.8; Sun, 10 Oct 2010 14:00:33 +0800
从以上结果可以发现,localhost.localdomain 已经变成zabbix告警邮件参数了 monitor.bot.cms 这个域名,表示修改成功,接下来就可以在zabbix 的管理页面上进行Email 报警设置了。
设置完成后点击保存按钮,到此Email报警设置就结束了,测试时,可以新建一个action,报警方式选择Email, 当trigger成功触发后,一分钟后就可以查收邮件了。

如何配置zabbix 3.0 用mail邮件方式告警support for smtp authentication was not

前提条件:
(1) zabbix服务器端已经成功安装并且运行。
(2) zabbix客户端已经成功建立并且运行。
1 下载并且安装msmtp软件
tar jxvf msmtp-1.4.32.tar.bz2
cd msmtp-1.4.32
./configure--prefix=/usr/local/msmtp
Make
Make install
2、手动建立配置文件,输入外部smtp地址
mkdir –p /usr/local/msmtp/etc
vi /usr/local/msmtp/etc/msmtprc
添加以下内容
account default
host smtp.sohu.com #你的发送邮件服务器
port 25
from zabbix2014@sohu.com #要从哪个邮箱发出
auth login
tls off
user zabbix2014 #邮箱用户名
password xxxxx-xxx #邮箱密码,如果你觉得不安全可以把文件改为600属性
logfile /var/log/mmlog
保存退出。
3、简单测试一下
/usr/local/msmtp/bin/msmtp [url=mailto:%20zabbix2014@sohu.com]zabbix2014@sohu.com[/url]
hello,test
ctrl d
cat /usr/local/msmtp/msmtp.log 看看有没有成功。
然后再到sohu邮箱中,看看信收到没有
报错如下
[iyunv@cache-2 msmtp-1.4.32]# /usr/local/msmtp/bin/msmtp zabbix2014@sohu.com
msmtp: authentication failed (method LOGIN)
msmtp: server message: 535 5.7.0 Invalid result
msmtp: could not send mail (account default from /usr/local/msmtp/etc/msmtprc)
Google之后,需要安装 mutt组件
4、下面开始安装 MUTT如果是CentOS的话直接用yum就好了
yum install mutt
安装完成后要手动给他建立一个配置文件,
vim /etc/Muttrc
setsendmail="/usr/local/msmtp/bin/msmtp" #你的msmtp命令路径
set use_from=yes
set realname="zabbix2014@sohu.com"
set editor="vim"
简单的4行就可以了
好了,让我们来测试一下吧!
测试一下:echo"test mail" | mutt -s "test" zabbix2014@sohu.com
OK,测试了下,能收到已经发送的email,
echo"test mail 2014 content tom 2" | mutt -s "test 2014 title2" zabbix2014@sohu.com
5、 创建 zabbix用于发送邮件的脚本
脚本放在什么位置随便,但是要保证zabbix可以找到!
1)vim/usr/bin/zabbix2014,并写入如下内容:
#!/bin/bash
echo "$3" | mutt -s "$2"$1 # $3表示邮件内容、$2表示邮件标题、$1表示收件人
(2)chmod a+x /usr/bin/zabbix2014
6、 zabbix配置
(1)创建meida types
1.登录到zabbix,进入“Administration" ”Media types",点击右上角“Create Media Type"。 Description填"mediatype-zabbix2014"或其它名称,Type选择"Script",Script填” zabbix2014”。
2.点击save保存,
7、创建actions
1.登录到zabbix,进入"Configation" "Actions",点击右上角"Create Actions"。输入Name “action-zabbix2014” ,其它都默认点击右侧“Action Operations"下的"New"按钮,"Operation Type"选择"Send message","Send Message to"选择一个或多个要发送消息的用户组,”Send only to"选择我们之前新增的mediatype-zabbix2014。
2.点击save保存,

8、zabbix用户配置
登录到zabbix, 进入"Adimistration" "Users",在之前选定要发送消息的组里的Members栏位里选择一个用户,例如选择AdminZabbix用户。
在用户信息修改界面最下方的”Media"处点击"Add"按钮。
Type选择"mediatype- zabbix2014",Send to填入收件人地址,点击Add添加。
点击"Save"保存配置。

如何实现zabbix报警邮件中可以显示ip地址

说明:
Zabbix监控服务端、客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常。
实现目的:
在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。
具体操作:
以下操作在Zabbix监控服务端进行
备注:Zabbix监控服务端
操作系统:CentOS
主机名:zabbix.osyunwei.com
邮件报警有两种情况:
1、Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:root@localhost.localdomain),只能发送,不能接收外部邮件。
2、使用一个可以在互联网上正常收发邮件的邮箱账号(例如:xxx@163.com),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱。
第一种:使用Zabbix服务端本地邮箱账号发送邮件
一、安装sendmail或者postfix
yum install sendmail #安装
service sendmail start #启动
chkconfig sendmail on #设置开机启动
yum install postfix
service postfix start
chkconfig postfix on
CentOS 5.x 默认已经安装好sendmail
CentOS 6.x 默认已经安装好postfix
sendmail和postfix只需要安装一个即可并开启服务即可。
二、安装邮件发送工具mailx
yum install mailx #安装
CentOS 5.x
编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。
yum remove mailx #卸载系统自带的旧版mailx
下载mailx:
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
tar jxvf mailx-12.4.tar.bz2 #解压
cd mailx-12.4 #进入目录
make #编译
make install UCBINSTALL=/usr/bin/install #安装
ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接
ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
whereis mailx #查看安装路径
mailx -V #查看版本信息
echo "zabbix test mail" |mail -s "zabbix"
xxx@163.com
#测试发送邮件,标题zabbix,邮件内容:zabbix test
mail,发送到的邮箱:xxx@163.com
三、配置Zabbix服务端邮件报警
1、打开Zabbix
管理-示警媒介类型-Email
名称:Email
类型:电子邮件
SMTP伺服器:zabbix.sa.huanqiu.com
SMTP HELO:zabbix.sa.huanqiu.com
SMTP电邮:zabbix@zabbix.sa.huanqiu.com
已经用:勾选
存档
备注:zabbix.sa.huanqiu.com为Zabbix监控端主机名称,建议修改,否则使用默认的localhost.localdomain发送邮件会被当做垃圾邮件拦截。
2、设置Zabbix用户报警邮箱地址
组态-用户-Admin (Zabbix Administrator)
切换到示警媒介
添加
类型:Email
收件人:xxx@163.com
其他默认即可,也可以根据需要设置
状态:已启用
存档
3、设置Zabbix触发报警的动作
组态-动作-创建动作
名称:Action-Email
默认接收人:故障{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}
已启用:打钩
切换到操作选项
新的
操作类型:送出信息
送到用户:添加
默认信息:打钩
用户:勾选Admin
选择
仅送到:Email
存档
四、测试Zabbix报警
关闭Zabbix客户端服务
service zabbix_agentd stop
查看xxx@163.com邮箱,会收到报警邮件
再开启Zabbix客户端服务
service zabbix_agentd start
查看xxx@163.com邮箱,会收到恢复邮件
使用Zabbix服务端本地邮箱账号发送邮件设置完成。
第二种:使用外部邮箱账号发送报警邮件设置
一、关闭sendmail或者postfix
service sendmail stop #关闭
chkconfig sendmail off #禁止开机启动
service postfix stop
chkconfig postfix off
备注:
使用外部邮箱账号时,不需要启动sendmail或者postfix
如果在sendmail或者postfix启动的同时使用外部邮箱发送报警邮件,首先会读取外部邮箱
配置信息。
二、安装邮件发送工具mailx
yum install mailx #安装
CentOS 5.x 编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。
yum remove mailx #卸载系统自带的旧版mailx
下载mailx:
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
tar jxvf mailx-12.4.tar.bz2 #解压
cd mailx-12.4 #进入目录
make #编译
make install UCBINSTALL=/usr/bin/install #安装
ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接
ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
whereis mailx #查看安装路径
mailx -V #查看版本信息
三、配置Zabbix服务端外部邮箱
vi /etc/mail.rc #编辑,添加以下信息
set from=xxx@163.com smtp=smtp.163.com
set smtp-auth-user=xxx@163.com
smtp-auth-password=123456
set smtp-auth=login
:wq! #保存退出
echo "zabbix test mail" |mail -s "zabbix" yyy@163.com
#测试发送邮件,标题zabbix,邮件内容:zabbix test
mail,发送到的邮箱:yyy@163.com
#这时候,邮箱yyy@163.com会收到来自xxx@163.com的测试邮件
四、配置Zabbix服务端邮件报警
1、打开Zabbix
管理-示警媒介类型-创建媒体类型
名称:Sendmail
类型:脚本
脚本名称:sendmail.sh
已启用:勾选
存档
2、设置Zabbix用户报警邮箱地址
组态-用户-Admin (Zabbix Administrator)
切换到示警媒介-添加
类型:Sendmail
收件人:xxx@163.com
其他默认即可,也可
以根据需要设置
状态:已启用
存档
3、设置Zabbix触发报警的动作
组态-动作-创建动作
名称:Action-Email
默认接收人:故障{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}
已启用:打钩
切换到操作选项
新的
操作类型:送出信息
送到用户:添加
默认信息:打钩
选择用户:Admin
选择
仅送到:Sendmail
存档
4、添加Zabbix服务端邮件发送脚本
cd /usr/local/zabbix/share/zabbix/alertscripts #进入脚本存放目录
vi sendmail.sh #编辑,添加以下代码
#!/bin/sh
echo "$3" | mail -s "$2" $1
:wq! #保存退出
chown zabbix.zabbix
/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#设置脚本所有者为zabbix用户
chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#设置脚本执行权限
五、测试Zabbix报警
关闭Zabbix客户端服务
service zabbix_agentd stop
查看xxx@163.com邮箱,会收到报警邮件
再开启Zabbix客户端服务
service zabbix_agentd start
查看xxx@163.com邮箱,会收到恢复邮件
使用外部邮箱账号发送报警邮件设置完成。
至此,Zabbix邮件报警设置完成。

2020-08-25

Prometheus 实现邮件告警(Prometheus+Alertmanager+QQ邮箱或者网易163邮箱,目前测试过这两种邮箱都可以发送告警邮件)

Prometheus实现邮件告警原理如下:

Prometheus官方有一个附带的中间件:alertmanager,通过设置rules规则和路由转发可以实现邮件告警,前提是你需要有一个可以发送邮件的邮件服务端(可以自建或者使用互联网公司提供的免费邮箱)

告警原理图
Prometheus完整架构图

我之前得出的错误结论如下:

推荐直接在虚拟机操作系统上直接安装Prometheus和Alertmanager,不推荐其中任何一方在容器中运行,因为测试过在容器中运行Prometheus和alertmanager,结果出现如下错误情况

第一种情况是:我的node-exporter掉线跌机了(手动关机,模拟突然掉线跌机),Prometheus却提示节点依然在线?有时候却能够正常显示节点掉线跌机,生成告警发送邮件

第二种情况是:我的node-exporter掉线跌机了(手动关机,模拟突然掉线跌机),Prometheus提示节点掉线,告警生成,但是没有发送邮件,我手动恢复node-exporter后,告警解除,邮件能正常发送邮件提示告警已经解除。。。。

第三种情况是:我的node-exporter掉线跌机了(手动关机,模拟突然掉线跌机),Prometheus提示节点掉线,告警生成,正常成功发送邮件,我手动恢复node-exporter后,告警解除,邮件没有发送出来。。。。

以上三种情况之前经常出现,当时第一步以为是自己设置的scrape_interval不合理导致的,结果调试几次,问题没有解决,第二步以为是自己的服务器时间没有做到精确同步,然后我去设置和阿里云的ntp服务器同步,结果问题依然没有解决,第三步,换个方向,把alertmanager迁移到虚拟机操作系统上安装运行,问题解决!
北京时间是GMT+8小时,有些同志的时间可能是UTC的,但是如果是在要求不太十分精确的情况下,UTC时间是刚刚好等于GMT时间

为了避免时区的混乱,prometheus所有的组件内部都强制使用Unix时间,对外展示使用GMT时间。

要改时区有两个办法

1 .修改源码,重新编译。
2. 使用 docker 运行 Prometheus,挂载本地时区文件

docker run --restart always -e TZ=Asia/Shanghai --hostname prometheus --name prometheus-server -d -p 9090:9090 -v /data/prometheus/server/data:/prometheus -v /data/prometheus/server/conf/prometheus.yml:/etc/prometheus/prometheus.yml -u root prom/prometheus:v2.5.0

正文开始

安装alertmanager

容器安装方式:

docker run -d --name alertmanager -p 9093:9093 -v /usr/local/Prometheus/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml prom/alertmanager:latest

先在宿主机/usr/local/Prometheus下创建一个文件夹alertmanager,然后在文件夹里创建alertmanager.yml配置文件,待会才能映射到alertmanager容器里的/etc/alertmanager目录下
global:全局配置

   resolve_timeout: 问题解决的超时时间

   smtp_from: 发送告警邮件的邮箱账号

   smtp_smarthost: 邮箱 SMTP 服务地址,这里是以QQ邮箱为例,也可以用网易163邮箱,这个和我之前设置zabbix邮件告警时的配置一样

   smtp_auth_username: 如果没有设置邮箱别名,那就是账户名

   smtp_auth_password:  邮箱的授权码,不是 账户密码,你可以在QQ邮箱或者网易163邮箱网页端设置,开启 POP3/SMTP 服务时会提示,和配置zabbix邮件告警的时候几乎一样

   smtp_require_tls: 是否使用 tls,根据环境不同,来选择开启和关闭。如果提示报错 email.loginAuth failed: 530 Must issue a STARTTLS command first,那么就需要设置为 true。着重说明一下,如果开启了 tls,提示报错 starttls failed: x509: certificate signed by unknown authority,需要在 email_configs 下配置 insecure_skip_verify: true 来跳过 tls 验证。
templates: 告警模板目录,可以不编写模板,有默认模板

    Subject: '{{ template "email.default.subject" . }}'

    html: '{{ template "email.default.html" . }}'
route:报警的分发设置

    group_by:分组

    group_wait: 分组等待时间

    group_interval: 5m 每组时间间隔

    repeat_interval: 10m 重复间隔

    receiver: 接收方式,请注意!这里的名字要对应下面receivers中的任何一个名字,不然会报错,这里其实就是选择方式,有邮箱,企业微信,wehook,victorops等等
receivers:接受方式汇总,即告警方式汇总

例子:

receivers:

- name:'default-receiver' 

email_configs:

- to:'whiiip@163.com'    

  html: '{{ template "alert.html" . }}'    

  headers: { Subject: "[WARN] 报警邮件test"}
inhibit_rules:   抑制规则

当存在与另一组匹配的警报(源)时,抑制规则将禁用与一组匹配的警报(目标)。

包括源匹配和目标匹配

alertmanager官方是这样说的

Inhibition

Inhibition is a concept of suppressing notifications for certain alerts if certain other alerts are already firing.

Example:  An alert is firing that informs that an entire cluster is not reachable. Alertmanager can be configured to mute all other alerts concerning this cluster if that particular alert is firing. This prevents notifications for hundreds or thousands of firing alerts that are unrelated to the actual issue.

Inhibitions are configured through the Alertmanager's configuration file.

当存在与另一组匹配器匹配的警报(源)时,禁止规则会使与一组匹配器匹配的警报(目标)静音。目标警报和源警报的equal列表中的标签名称都必须具有相同的标签值。

在语义上,缺少标签和带有空值的标签是同一件事。因此,如果equal源警报和目标警报都缺少列出的所有标签名称,则将应用禁止规则。

为了防止警报禁止自身,与规则的目标和源端 都 匹配的警报不能被警报(包括其本身)为真来禁止。但是,我们建议选择目标匹配器和源匹配器,以使警报永远不会同时匹配双方。这很容易进行推理,并且不会触发此特殊情况。

接着是规则rules
不解释了,自己研究官方文档
alertmanager的非容器安装方式是

 wget https://github.com/prometheus/alertmanager/releases/download/v0.20.0/alertmanager-0.20.0.linux-amd64.tar.gz

tar xf alertmanager-0.20.0.linux-amd64.tar.gz
mv alertmanager-0.20.0.linux-amd64 /usr/local/alertmanager
vim /usr/lib/systemd/system/alertmanager.service
[Unit]
Description=alertmanager

Documentation=https://github.com/prometheus/alertmanager

After=network.target

[Service]

Type=simple

User=root

ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml

Restart=on-failure

[Install]

WantedBy=multi-user.target

Alertmanager 安装目录下默认有 alertmanager.yml 配置文件,可以创建新的配置文件,在启动时指定即可。

其余方式和上面一样

接着是Prometheus,我之前的博客里有写了容器安装和非容器安装的方法,自己去翻阅

然后是在prometheus.yml里修改相关配置

首先去掉alertmanager的注释,改成IP加你设置的端口号,默认是9093
接着在rule_files: 下面写下规则文件的绝对路径,可以是具体文件名,也可以是*,也可以分几级文件,*默认是全部匹配
接着是被监控项的设置,这里设置完成可以在Prometheus网页里的targets里看得到

请注意,这里设置的参数名字要和rule规则中设置的参数名字一模一样,否则你的prometheus服务会无法启动,然后报错

如果不在特定的job下设置scrape_interval(优先级高于全局),则默认采用gobal下的scrape_interval
最后模拟节点掉线,手动关闭node-exporter或者Cadvisor

docker stop node-exporter 或者容器ID

docker stop cadvisor 或者容器ID

或者把up{{job='prometheus'}} == 1 设置成1,反向设置,不用关掉服务,就可以看看告警成不成功
说明一下 Prometheus Alert 告警状态有三种状态:Inactive、Pending、Firing。

Inactive:非活动状态,表示正在监控,但是还未有任何警报触发。

Pending:表示这个警报必须被触发。由于警报可以被分组、压抑/抑制或静默/静音,所以等待验证,一旦所有的验证都通过,则将转到 Firing 状态。

Firing:将警报发送到 AlertManager,它将按照配置将警报的发送给所有接收者。一旦警报解除,则将状态转到 Inactive,如此循环。
没有配置告警模板时的默认告警格式是这样的
节点恢复后邮件告知是这样的
写了模板后是这样的
还要重新映射模板文件夹路径到alertmanager容器里的相对路径,然后重启alertmanager,当然,如果目录下没有模板文件,则不显示
告警模板
在alertmanager.yml中修改相关设置

重启alertmanager

docker restart alertmanager

最终效果不是很好 关于zabbix告警邮件参数和zabbix设置邮件告警的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 zabbix告警邮件参数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于zabbix设置邮件告警、zabbix告警邮件参数的信息别忘了在本站进行查找喔。
上一篇:devops运维平台(devops开发运维一体化流程)
下一篇:智慧公安二维码报警定位系统大大缩短了救援时间
相关文章

 发表评论

暂时没有评论,来抢沙发吧~