zabbix邮件报警配置实例

本文介绍如何在Zabbix中配置外部邮箱发送报警邮件,包括关闭sendmail/postfix服务、安装和配置mailx工具、设置Zabbix报警媒介及脚本,并进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、关闭sendmail或者postfix

service sendmail stop #关闭

chkconfig sendmail off #禁止开机启动

service postfix stop

chkconfig postfix off

备注:

使用外部邮箱账号时,不需要启动sendmail或者postfix

如果在sendmail或者postfix启动的同时使用外部邮箱发送报警邮件,首先会读取外部邮箱

配置信息

二、安装邮件发送工具mailx

yum remove mailx #卸载系统自带的旧版mailx

下载mailx:

wget  http://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5.orig.tar.gz
tar -zxvf heirloom-mailx_12.5.orig.tar.gz#解压
cd heirloom-mailx-12.5/#进入目录
make#编译
make install UCBINSTALL=/usr/bin/install#安装

tar jxvf mailx-12.5.tar.bz2 #解压

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邮件报警设置完
<think>好的,用户之前问过关于Rocky Linux发送邮件的问题,现在他想了解如何在Zabbix中创建邮件报警通知。我需要先回顾之前的回答,确保这次的内容不会重复,同时补充Zabbix特有的配置步骤。 首先,用户可能已经配置好了邮件发送环境,比如使用Postfix或SMTP中继,所以在Zabbix中需要集成这些设置。需要确认用户是否已经完成了邮件服务器的配置,或者是否需要从头开始指导。 接下来,Zabbix报警通知主要涉及两个部分:媒介类型(Media Type)的设置和动作(Action)的配置。我需要分步骤说明如何创建邮件媒介,包括SMTP服务器的配置、认证方式等。还要考虑到用户可能使用不同的邮件服务提供商,比如Gmail或阿里云,需要提示他们修改相应的SMTP地址和端口。 然后,用户可能需要关联报警媒介到具体的用户账户,这里需要指导他们如何在Zabbix的用户配置中添加媒介,并设置触发条件。同时,动作配置部分需要详细说明触发条件、操作细节,比如发送消息的内容格式、主题以及宏变量的使用,这样报警信息才能包含具体的主机和问题详情。 另外,用户可能对测试和故障排查不太熟悉,所以需要包括如何发送测试邮件,以及常见问题如邮件未收到、认证失败等的解决方法。还要提醒用户检查Zabbix服务器是否能连接到外部SMTP服务器,防火墙设置是否允许出站连接等。 最后,安全方面需要注意,比如使用应用专用密码而非真实密码,配置DKIM/SPF记录避免邮件被标记为垃圾邮件。可能还需要提到在Zabbix前端配置中的其他选项,比如TLS加密等,确保整个流程安全可靠。 总结下来,需要结构清晰,分步骤讲解,涵盖配置、测试、故障排查和安全建议,确保用户能够顺利创建并测试Zabbix邮件报警通知。</think>以下是 Rocky Linux 系统上配置 Zabbix 邮件报警通知的完整流程,分为 **邮件服务配置** 和 **Zabbix 报警规则设置** 两大部分: --- ### 一、配置邮件发送服务(SMTP) **推荐方案**:使用 `ssmtp` 轻量级工具(需提前完成) ```bash # 安装 ssmtp sudo dnf install ssmtp # 配置 SMTP 服务(以 Gmail 为例) sudo vim /etc/ssmtp/ssmtp.conf ``` ```properties root=your_email@gmail.com mailhub=smtp.gmail.com:587 AuthUser=your_email@gmail.com AuthPass=your_app_password # 使用Gmail需生成应用专用密码 UseTLS=YES UseSTARTTLS=YES ``` **验证邮件发送功能**: ```bash echo "测试邮件正文" | mail -s "Zabbix邮件测试" recipient@example.com ``` --- ### 二、Zabbix 前端配置 #### 步骤 1:创建报警媒介类型(Media Type) 1. 访问 `Administration → Media Types → Create media type` 2. 配置参数: - **Name**: `Email-Alert`(自定义名称) - **Type**: `Email` - **SMTP server**: `localhost`(若邮件服务在本地) - **SMTP server port**: `25`(或对应端口) - **SMTP helo**: `yourdomain.com` - **SMTP email**: `zabbix@yourdomain.com`(发件人邮箱) - **Authentication**:按需选择(如 PLAIN) - **用户密码**:填写 SMTP 认证信息 ![示例](https://zabbix.org/mw/images/7/75/3.0-email_media_type.png) #### 步骤 2:为用户关联报警媒介 1. 进入 `Administration → Users → 选择用户 → Media 标签页` 2. 添加新媒介: - **Type**: 选择刚创建的 `Email-Alert` - **Send to**: 填写接收报警的邮箱(如 admin@example.com) - 其他选项保持默认 #### 步骤 3:创建触发动作(Action) 1. 进入 `Configuration → Actions → Create action` 2. **Action 标签页**: - **Name**: `Server-Health-Alert` - **Conditions**:设置触发条件(如 `Trigger severity >= High`) 3. **Operations 标签页**: - 添加操作:`Send message` → 选择媒介类型 `Email-Alert` - **Message模板**(支持宏变量): ```text 报警主机:{HOST.NAME} 报警时间:{EVENT.DATE} {EVENT.TIME} 报警等级:{TRIGGER.SEVERITY} 故障详情:{TRIGGER.NAME} 当前值:{ITEM.VALUE} 故障持续时间:{EVENT.AGE} ``` ![操作配置示例](https://www.zabbix.com/documentation/current/_media/manual/config/notifications/action_operation_details.png) --- ### 三、测试与验证 1. **手动触发测试**: ```bash # 在监控项中制造异常(如强制停止某服务) systemctl stop nginx ``` 2. **查看报警状态**: - 在 `Monitoring → Problems` 中确认告警状态 - 检查目标邮箱是否收到报警邮件 3. **日志排查**: ```bash tail -f /var/log/zabbix/zabbix_server.log # 查看Zabbix服务日志 tail -f /var/log/maillog # 查看邮件发送日志 ``` --- ### 四、常见问题解决 | 问题现象 | 排查方法 | |---------|----------| | 收件箱未收到邮件 | 检查Zabbix服务器能否连接SMTP:`telnet smtp.gmail.com 587` | | 邮件内容乱码 | 在媒介类型中设置 `Content type` 为 `HTML` 或 `Plain text` | | 认证失败 | 确认是否启用双因素认证的邮箱需使用应用密码 | | 触发条件不匹配 | 检查Action中的 `Conditions` 是否与触发器严重级别匹配 | --- ### 高级配置建议 1. **邮件模板优化**:使用 HTML 格式美化报警内容(支持表格、颜色标记) 2. **报警升级机制**:配置 `Escalations` 实现重复报警或升级通知 3. **TLS加密**:在媒介类型中启用 `SSL/TLS` 增强安全性 4. **第三方集成**:通过 `Media Types` 支持 Slack/Webhook 等多渠道报警 **最终效果示例**: ![邮件报警示例](https://www.zabbix.com/documentation/current/_media/manual/config/notifications/action_message_template_example.png)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值