当前位置: 首页 > news >正文

Zabbix 监控系统触发器、报警、邮箱方位指南

Zabbix 监控系统触发器、报警、邮箱方位指南

触发器配置

  1. 触发器作用:设定监控项的临界条件,当数据满足条件时触发状态变化(正常→问题),为报警提供触发机制(如登录用户数大于 20 个时触发警告)
  2. 创建触发器(以登录用户数为例):在模板中进入 “触发器 - 创建触发器”,填写名称(登录用户数大于 20 个)、选择严重性(如警告),点击 “表达式” 后的 “添加”,选择监控项(Template test: 登录用户数)、功能(last (),最新值)、条件(>20),生成表达式(如{Template test:loginusers.last()} > 20),点击 “添加”
  3. 触发器验证:在 agent1 打开多个终端使登录用户数超过 20,Web 界面 “问题” 板块会显示触发的警告信息,图形中也会标注触发点

报警配置(基于 OneAlert 平台)

  1. 报警原理:触发器触发后,通过 “动作” 将通知发送给指定用户,用户通过 “报警媒介”(邮件、微信、短信等)接收信息;OneAlert 等平台可简化报警对接,无需自行开发接口
  2. OneAlert 配置步骤
    • 平台注册与应用创建:注册 OneAlert 账号,创建 Zabbix 应用,获取 AppKey
    • Server 端安装报警 Agent:进入/usr/lib/zabbix/alertscripts,下载并解压 OneAlert Agent 包,执行安装脚本(bash install.sh AppKey),输入 Zabbix 管理地址、管理员账号密码
    • 验证报警配置:OneAlert 会自动在 Zabbix 中添加报警动作、用户(cloudalert)、报警媒介类型(cloudalert media);触发触发器后,查看 OneAlert 平台与绑定的通知渠道(如邮箱、微信),确认是否收到报警信息

Zabbix 邮箱告警通过配置本地邮箱、第三方邮箱或第三方邮箱 + 脚本三种方式,实现触发器触发时自动向运维人员发送邮件通知,解决无法 24 小时盯守 Web 界面的问题。以下是具体配置步骤与验证方法

Zabbix 邮箱告警配置

Zabbix 邮箱告警通过配置本地邮箱、第三方邮箱或第三方邮箱 + 脚本三种方式,实现触发器触发时自动向运维人员发送邮件通知,解决无法 24 小时盯守 Web 界面的问题。以下是具体配置步骤与验证方法

前期环境准备

在配置任何邮箱告警前,需完成基础环境搭建,确保告警流程正常运行

  1. 关闭防火墙与 SELinux:分别在 Zabbix Server 和 Agent 端执行命令,关闭防火墙(systemctl stop firewalld; systemctl disable firewalld),临时关闭 SELinux(setenforce 0

  2. 设置主机名:Server 端设置主机名为zabbix-server.example.comhostnamectl set-hostname --static zabbix-server.example.com),Agent 端设置为zabbix-agent.example.com

  3. 配置 hosts 文件

    :在 Server 和 Agent 端的

    /etc/hosts
    

    文件中添加如下内容,实现主机名解析:

    192.168.100.40  zabbix-server.example.com  zabbix-server
    192.168.100.30  zabbix-agent.example.com  zabbix-agent
    

二、本地邮箱告警配置(基于 Postfix)

本地邮箱依赖 Postfix 服务实现邮件发送,适用于仅需内部通知的场景

1. 安装并配置 Postfix 服务

  1. 安装 Postfix 软件:在 Server 端执行yum -y install postfix

  2. 修改主配置文件:编辑

    /etc/postfix/main.cf
    

    ,将

    mydestination
    

    参数修改为:

    mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain
    
  3. 启动并设置开机自启:执行systemctl restart postfix.service重启服务,systemctl enable postfix.service设置开机生效

2. 配置 Zabbix 报警媒介类型

  1. 登录 Zabbix Web 界面,进入配置 → 报警媒介类型 → 创建媒体类型
  2. 按以下参数配置:
    • 名称:Email
    • 类型:电子邮件
    • SMTP 服务器:localhost
    • SMTP 服务器端口:25
    • SMTP HELO:localhost
    • SMTP 电邮:chenyu@example.com(自定义本地邮箱地址)
    • 安全链接:STARTTLS
    • 认证:无
    • Message format:HTML
  3. 勾选 “已启用”,点击 “更新” 保存

3. 配置用户报警媒介

  1. 进入管理 → 用户 → 选择目标用户(如 Admin)→ 报警媒介 → 添加
  2. 配置参数:
    • 类型:选择已创建的 “Email”
    • 收件人:填写接收告警的邮箱(如 chenyu@example.com)
    • 其他参数默认,点击 “添加”

4. 配置动作(触发告警时发送邮件)

  1. 进入配置 → 动作 → 创建动作,事件源选择 “触发器”
  2. 配置动作基本信息:
    • 名称:Report problems to Zabbix administrators
    • 条件:默认或按需添加(如触发器状态 = 问题)
  3. 配置操作:
    • 操作类型:发送消息
    • 发送到用户群组:Zabbix administrators(或指定用户组)
    • 发送媒介:所有介质(或仅 Email)
  4. 勾选 “已启用”,点击 “更新”

5. 验证告警效果

在 Agent 端通过多开终端使登录用户数超过 6 个(触发预设触发器),查看目标邮箱是否收到告警邮件,邮件应包含问题名称、主机、时间等信息


三、第三方邮箱告警配置(以 163 邮箱为例)

第三方邮箱(如 163、QQ 邮箱)适用于跨网络通知场景,需开启 SMTP 服务并获取授权码

1. 准备第三方邮箱(163 邮箱)

  1. 注册 163 邮箱,登录后进入设置 → POP3/SMTP/IMAP
  2. 开启 “IMAP/SMTP 服务” 和 “POP3/SMTP 服务”,系统会生成一个授权码,记录该授权码(后续配置需使用)

2. 配置 Zabbix 报警媒介类型

  1. 进入配置 → 报警媒介类型 → 选择或创建 “Email” 类型
  2. 按以下参数配置(替换为 163 邮箱信息):
    • SMTP 服务器:smtp.163.com
    • SMTP 服务器端口:465(SSL 端口)
    • SMTP HELO:smtp.163.com
    • SMTP 电邮:cy18271663615@163.com(你的 163 邮箱)
    • 安全链接:SSL/TLS
    • 认证:用户名和密码
    • 用户名:cy18271663615@163.com
    • 密码:163 邮箱生成的授权码
    • Message format:HTML
  3. 点击 “测试”,输入收件人邮箱,发送测试邮件,确认 163 邮箱能收到测试邮件

3. 验证告警效果

重复 “本地邮箱” 的用户报警媒介和动作配置,在 Agent 端触发触发器(如登录用户数超 6),查看 163 邮箱:

  • 问题触发时,收到 “Problem” 主题的告警邮件
  • 问题修复后(登录用户数少于 6),收到 “Resolved” 主题的恢复邮件

四、第三方邮箱 + 脚本告警配置(基于 s-nail)

通过脚本结合 s-nail 工具发送邮件,灵活性更高,适用于需自定义邮件内容的场景

1. 安装并配置 s-nail 工具

  1. 安装 s-nail:在 Server 端执行yum -y install s-nail

  2. 修改配置文件:编辑

    /etc/s-nail.rc
    

    ,添加以下内容(替换为 163 邮箱信息):

    set from=cy18271663615@163.com
    set smtp=smtp.163.com
    set smtp-auth-user=cy18271663615@163.com
    set smtp-auth-password=163邮箱授权码
    set smtp-auth=login
    set ssl-verify=ignore
    
  3. 设置权限:执行chown -R zabbix:zabbix /etc/s-nail.rc,确保 Zabbix 用户可读取

2. 编写邮件发送脚本

  1. 进入 Zabbix 脚本目录:cd /usr/lib/zabbix/alertscripts

  2. 创建脚本

    mail-send.sh
    

    #!/bin/bash
    messages=`echo $3 | tr '\r\n' '\n'`
    subject=`echo $2 | tr '\r\n' '\n'`
    echo "${messages}" | s-nail -s "${subject}" $1
    
  3. 设置权限:执行chown -R zabbix:zabbix mail-send.shchmod +x mail-send.sh

  4. 测试脚本:执行./mail-send.sh cy18271663615@163.com "zabbix test mail" "test",确认 163 邮箱收到测试邮件

3. 配置 Zabbix 报警媒介与动作

  1. 创建报警媒介类型:进入配置 → 报警媒介类型 → 创建媒体类型,类型选择 “脚本”,脚本名称填写mail-send.sh,其他参数默认

  2. 配置用户报警媒介:进入用户的 “报警媒介”,添加类型为刚创建的脚本媒介,收件人填写 163 邮箱

  3. 配置动作

    :进入配置 → 动作

    ,创建动作,操作类型选择 “发送消息”,发送媒介选择脚本媒介,消息内容可自定义(如包含问题时间、主机、严重级别等):

    Problem started at {EVENT.TIME} on {EVENT.DATE}
    Problem name: {EVENT.NAME}
    Host: {HOST.NAME}
    Severity: {EVENT.SEVERITY}
    Original problem ID: {EVENT.ID}
    {TRIGGER.URL}
    

4. 验证告警效果

在 Agent 端触发触发器(登录用户数超 6),163 邮箱会收到脚本发送的告警邮件;问题修复后,收到恢复邮件,邮件内容与动作配置的格式一致

具体示例:

配置报警信息可以通过邮箱来实现

1、本地邮箱

2、第三方邮箱

3、第三方邮箱+脚本

前期准备环境

确保zabbix-server和zabbix-agent端的防火墙和selinux处于关闭状态

分别修改server和zabbix-agent端的/etc/hosts文件

server:

[root@server ~]# cd /var/spool/mail/
[root@server mail]# ls
shenyi
[root@server mail]# hostname
server.example.com
[root@server mail]# vim /etc/hosts192.168.100.5 server.example.com server
192.168.100.10 zabbix-agent.example.com zabbix-agent
~ 

zabbix-agent:

[root@zabbix-agent ~]# vim /etc/hosts192.168.100.5 server.example.com server
192.168.100.10 zabbix-agent.example.com zabbix-agent
~  

本地邮箱告警配置

安装postfix软件

[root@server ~]# yum -y install postfix

修改postfix的主配置文件,并重启服务和设置下次启动生效

[root@server ~]# vim /etc/postfix/main.cf    //在该行后面加上$mydomain
...
mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain
...
[root@server ~]# systemctl restart postfix.service 
[root@server ~]# systemctl enable postfix.service 
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.

配置报警媒介类型:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

触发器
虽然我们可以通过图形查看到监控的数据,但我们不可能一直盯着图形的变化
所以需要定义监控项到达一个临界值(阈值)或者满足一个条件,就会发生状态变化的通知
定义触发器(trigger)就是定义这个临界值(阈值)或条件.
监控项有无限种可能,触发器也一样有无限种可能。如:
cpu负载值大于某个值则通知
登录用户数大于某个值则通知
内存空闲率小于某个值则通知
磁盘使用率大于某个值则通知
主机名被修改则通知
等等,主要还是看需求
创建登录用户数过多的触发器
在模板里创建触发器

在这里插入图片描述

配置触发器:

在这里插入图片描述

验证创建成功:

登录数大于5后:

[root@zabbix-agent ~]# who | wc -l
6

在这里插入图片描述

配置动作:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

配置用户报警媒介:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

验证

Agent1端连接用户超过6个

在这里插入图片描述

[root@server mail]# cat shenyi
....
From shenyi@example.com  Thu Oct 16 19:37:37 2025
Return-Path: <shenyi@example.com>
X-Original-To: shenyi@example.com
Delivered-To: shenyi@example.com
Received: from example.com (localhost [IPv6:::1])by server.example.com (Postfix) with SMTP id 7C2E161D5D77for <shenyi@example.com>; Thu, 16 Oct 2025 19:37:37 +0800 (CST)
From: <shenyi@example.com>
To: <shenyi@example.com>
In-Reply-To: <133.5cc020ecb31ff35ad2a8fb85c616e305.1.a972f9cb9e15ff9ecd67ab9ca6650a67@zabbix.com>
Date: Thu, 16 Oct 2025 19:37:37 +0800
Subject: =?UTF-8?B?cHJvYmxlbTog55So5oi355m75b2V5pWw?=
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
Message-Id: <20251016113737.7C2E161D5D77@server.example.com>cHJvYmxlbSBzdGFydCBhdCAxOTozNzozNyBvbiAyMDI1LjEwLjE2DQpwcm9ibGVtIG5hbWU6IOeU
qOaIt+eZu+W9leaVsA0KaG9zdDogemFiYml4LWFnZW50MQ0Kc2V2ZXJpdHk6IFdhcm5pbmcNCg0K
b3JpZ2luYWwgcHJvYmxlbSBJRDogMTMzDQo=

在这里插入图片描述

在这里插入图片描述

[root@server mail]# cat shenyi
....
From shenyi@example.com  Thu Oct 16 19:59:34 2025
Return-Path: <shenyi@example.com>
X-Original-To: shenyi@example.com
Delivered-To: shenyi@example.com
Received: from example.com (localhost [IPv6:::1])by server.example.com (Postfix) with SMTP id 9010D61D5D75for <shenyi@example.com>; Thu, 16 Oct 2025 19:59:34 +0800 (CST)
From: <shenyi@example.com>
To: <shenyi@example.com>
In-Reply-To: <0.5cc020ecb31ff35ad2a8fb85c616e305.1.a972f9cb9e15ff9ecd67ab9ca6650a67@zabbix.com>
Date: Thu, 16 Oct 2025 19:59:34 +0800
Subject: test       ///////
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
Message-Id: <20251016115934.9010D61D5D75@server.example.com>dGVzdDEyMw==

zabbix-agent:

[root@zabbix-agent ~]# yum -y install postfix
[root@zabbix-agent ~]# vim /etc/postfix/main.cf 
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
[root@zabbix-agent ~]# systemctl restart postfix.service 
[root@zabbix-agent ~]# systemctl enable postfix
[root@zabbix-agent ~]# yum -y install mailx[root@zabbix-agent ~]# echo "123" | mail -s "test" shenyi@example.com
[root@zabbix-agent ~]# cd /var/spool/mail/
[root@zabbix-agent mail]# ls
root  rpc  shenyi  shenyifeng
[root@zabbix-agent mail]# cat shenyi
From root@zabbix-agent.example.com  Thu Oct 16 20:10:17 2025
Return-Path: <root@zabbix-agent.example.com>
X-Original-To: shenyi@example.com
Delivered-To: shenyi@example.com
Received: by zabbix-agent.example.com (Postfix, from userid 0)id DA07C416F685; Thu, 16 Oct 2025 20:10:17 +0800 (CST)
Date: Thu, 16 Oct 2025 20:10:17 +0800
To: shenyi@example.com
Subject: test
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20251016121017.DA07C416F685@zabbix-agent.example.com>
From: root@zabbix-agent.example.com (root)123

第三方邮箱警告配置

注册163邮箱

开启SMTP服务和POP3服务,会生成一个授权码,需要记住这个授权码

修改报警媒介类型–email

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

密码就是授权码

在这里插入图片描述

在这里插入图片描述

再次测试,agent1连接数超过6个时,看163邮箱是否能收到邮件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

[root@zabbix-agent ~]# who | wc -l
6

在这里插入图片描述

在这里插入图片描述

当连接数少于6个的时候,修复好了,163邮箱会再次收到修复成功的邮件

在这里插入图片描述

第三方邮箱+脚本告警配置

安装s-nail软件包并修改s-nail配置文件

server:

[root@server ~]# yum -y install s-nail
[root@server ~]# vim /etc/s-nail.rc set from=syf02161016@163.com
set smtp=smtp.163.com
set smtp-auth-user=syf02161016@163.com
set smtp-auth-password=HPuAUtcHGVZRZTX2
set smtp-auth=login
set ssl-verify=ignore
~ 
[root@server ~]# chown -R zabbix:zabbix /etc/s-nail.rc

在zabbix服务端写邮件发送脚本

[root@server ~]# vim  /usr/lib/zabbix/alertscripts/mail-send.sh
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | s-nail -s "${subject}" $1
~ 
[root@server ~]# cd /usr/lib/zabbix/alertscripts/
[root@server alertscripts]# chown -R zabbix:zabbix mail-send.sh
[root@server alertscripts]# chmod +x mail-send.sh

测试邮箱能否接收邮件

[root@server alertscripts]# ./mail-send.sh syf02161016@163.com "zabbix test" "test111"
s-nail: Warning: variable superseded or obsoleted: smtp
s-nail: Warning: variable superseded or obsoleted: smtp-auth-user
s-nail: Warning: variable superseded or obsoleted: smtp-auth-password
s-nail: Warning: variable superseded or obsoleted: ssl-verify
s-nail: Obsoletion warning: please do not use *smtp*, instead assign a smtp:// URL to *mta*!
s-nail: Obsoletion warning: Use of old-style credentials, which will vanish in v15!
s-nail:   Please read the manual section "On URL syntax and credential lookup"

在这里插入图片描述

创建报警媒介类型

在这里插入图片描述

给用户添加邮箱:

在这里插入图片描述

在这里插入图片描述

验证–agent1连接数超过6个:

[root@zabbix-agent ~]# who | wc -l
6

在这里插入图片描述

在这里插入图片描述

修复好后,仍然可以接收邮件

http://www.dtcms.com/a/496806.html

相关文章:

  • 网站设计三原则推广软文平台
  • 从零学算法3355
  • 北京企业网站怎么建设深圳网站专业建设公司
  • 第七篇《IPv4地址详解:A、B、C类地址是如何划分的?》
  • 专注电子商务网站建设淘金企业网站建设
  • 网站建设和挂标情况清理表一份完整的活动策划方案
  • 算法专题十三:栈
  • 网站创建的流程是什么网站免费正能量软件下载
  • YOLOv3 深度解析:目标检测领域的经典革新
  • pc端网站模型建设工具wordpress 插件有后门
  • 网站怎么做下载苏州集团网站设计公司
  • 井祥交通建设工程有限公司 网站免备案做网站可以盈利吗
  • 36-基于STM32的智能鱼缸设计与实现
  • 什么网站容易做百度权重建立自我
  • 为什么不能直接从外存加载到显存上??
  • 做视频网站需要多大带宽恒信在线做彩票的是什么样的网站
  • 关键词网站建设一佰互联自助建站
  • 南京网站建设要多少钱自己公司怎么做网站
  • 大棚网站怎么做网站统计插件
  • web3定义以及应用落地场景展望
  • 北京哪里有教怎么做网站的上海网站制作公司介绍
  • 广州网站建设在线飞书企业邮箱怎么申请
  • VMware 各版本下载教程(20251017)
  • 高可用集群:5分钟掌握核心要点
  • 做理财网站网站建设合同付款约定
  • 一般做网站宽高多少公司做网站推广需要多少钱
  • JavaScript 核心概念全解析:数据类型、拷贝、运算符与类型判断
  • C++: 继承
  • 注册域名查询网站做网站应该注意哪些问题
  • redission封装,分布式锁使用