6.1 Zabbix 告警整体流程

6.1.1 标准配置链路

完整配置顺序(遵循 Zabbix 数据流转逻辑):Host groups(主机群组) → Hosts(主机) → Applications(监控项组) → Items(监控项) → Triggers(触发器) → Actions(告警动作) → Medias(告警方式) → User groups(用户组) → Users(用户)

6.1.2 告警核心两大能力

触发器生成事件后,由 Action(动作) 完成两类核心处理:

  1. 发送消息:将故障、恢复事件推送至运维人员(前端声音、邮件、企业微信、钉钉等);
  2. 自动执行命令:调用脚本 / 系统命令,实现故障自动自愈。

6.1.3 告警配置四步法

  1. 配置触发器(Trigger):定义故障判断规则;
  2. 配置系统用户(Users):定义告警接收人;
  3. 配置告警媒介(Medias):定义消息发送渠道;
  4. 配置告警动作(Actions):绑定事件、媒介与接收人。

6.1.4 数据流转逻辑

  1. Zabbix Agent 周期性采集监控数据,上报至 Zabbix Server;
  2. Server 存储数据,交由触发器做阈值判断,生成Problem(故障)或OK(恢复)事件;
  3. 事件匹配Action规则,调用预设告警媒介;
  4. 媒介按模板组装消息并推送,可选同步执行远程命令修复故障。

6.2 Web 前端声音报警(本地浏览器告警)

6.2.1 完整操作路径

Zabbix Web 界面 → 右上角个人头像 → User settings(用户设置) → 切换至消息(Messages) 标签页,找到声音报警配置区。

左下角也有:

点击更新才行

6.2.2 三种报警模式

页面提供 3 种播放规则,适配不同优先级故障:

  1. 仅播放一次:故障消息首次弹出时发声,重复消息不再提醒(低优先级告警推荐);
  2. 每 10 秒循环播放:持续循环告警,强制提醒(紧急故障推荐);
  3. 按照 Message timeout 间隔播放:跟随系统消息超时时间循环(自定义间隔,兼顾提醒与降噪)。

6.2.3 补充注意事项

  1. 声音报警仅对当前登录浏览器生效,关闭浏览器、切换设备后失效;
  2. 需保证浏览器未静音、允许网页播放音频;
  3. 可搭配触发器故障级别,为不同等级故障设置差异化提示音。

6.3 触发器(Trigger)核心详解

触发器是 Zabbix 告警的核心判断单元,通过逻辑表达式校验监控数据,是所有告警、自愈功能的触发源头。

6.3.1 触发器定义与作用

  1. 定义:触发器是一组逻辑表达式,用于评估监控项采集的数据,判定系统实时状态;
  2. 核心作用:监控数据触发阈值时生成故障事件,数据恢复后生成恢复事件;
  3. 刷新规则:Zabbix Server 每接收一条监控新数据,就会重新计算触发器状态。

6.3.2 触发器三大状态

状态名称英文标识官方描述常见触发场景
正常OK触发器默认正常状态监控数据在阈值范围内,业务运行正常
问题Problem触发阈值,系统出现异常CPU 过载、磁盘占满、服务宕机、登录人数超标
未知Unknown无法计算触发器值1.Agent 离线 / 监控项无数据;2. 表达式语法错误;3. 历史数据过期删除;4. 数据类型不匹配

6.3.3 触发器故障级别(Severity)

故障级别用于区分故障严重程度,支持颜色标识、分级告警、差异化通知。

级别名称英文标识颜色(原文)业务定义(原文)运维推荐策略(补充)
未分类Not classified灰色无明确等级仅前端展示,不推送外部告警
一般信息Information浅绿普通通知类事件邮件归档,无需即时处理
警告Warning黄色轻微异常邮件通知,定时巡检处理
一般问题Average橙色中等故障邮件 + 企业微信,工作日即时处理
严重问题High红色严重故障微信 / 钉钉即时推送,专人跟进
灾难Disaster深红可造成业务损失的重大故障短信 + 微信 + 电话,7×24 紧急响应

级别核心用途

  1. 可视化:前端页面、拓扑图按级别显示对应颜色,快速识别故障;
  2. 声音区分:不同级别绑定不同前端提示音;
  3. 媒介区分:高等级故障使用短信 / 电话,低等级使用邮件;
  4. 告警开关:可按级别筛选是否触发告警。

6.3.4 触发器 Web 创建流程

操作入口

【配置】→【主机/模板】→【触发器】→【创建触发器】

最佳实践(原文):优先在模板中创建触发器,批量关联主机,避免单台重复配置。

实操示例(系统登录数触发器)

基于前文自定义监控项os.login(登录用户数),在Template web-app模板创建触发器:

  1. 进入Template web-app模板 → 切换至【触发器】→ 点击【创建触发器】;
  2. 填写名称、表达式、故障级别;
  3. 保存后,多终端登录主机模拟阈值触发,验证前端声音与故障提示。

1.先学之前文章添加监控项

2.创建触发器

3.复制会话使其产生告警

删除会话后:恢复正常

6.3.5 触发器配置全参数详解

创建页面中红色星号为必填项,逐字段解析(包含所有宏、规则):

  1. 名称触发器展示名称,支持内置宏:{HOST.HOST}、{HOST.IP}、{ITEM.VALUE}、$1~$9(表达式常量占位)、用户宏{$MACRO}。示例:名称填登录人数大于$1 on {HOST.NAME},表达式为last(os.login)>3,自动渲染为登录人数大于3 on linux-server2。

  2. 事件名称自定义故障事件名称(替代触发器名称),用于告警展示;额外支持{TIME}、{?EXPRESSION}宏。

  3. 操作数据动态展示监控实时数据;触发器名称宏为静态值,此字段宏会持续刷新最新数据;未配置时默认展示所有监控项值。

  4. 严重性:选择上文 6 种故障级别。

  5. 表达式(核心)定义故障判断逻辑;表达式结果为TRUE → 进入 Problem,FALSE → 恢复 OK;支持时间后缀、内存后缀、内置函数。

  6. OK 事件生成(三种模式)

    • 表达式:故障表达式为FALSE时,自动生成恢复事件(最常用);
    • 恢复表达式:故障表达式为FALSE 且 恢复表达式为TRUE才恢复(防故障抖动);
    • 无:触发器不会自动恢复,需手动处理。
  7. 恢复表达式仅选择「恢复表达式」时显示,用于设置额外恢复条件(如 CPU 降温 5 分钟再判定恢复)。

  8. 问题事件生成模式

    • 单一:首次触发 Problem 仅生成 1 条事件(推荐,避免消息刷屏);
    • 多重:每次检测到故障都生成新事件(用于高频故障统计)。
  9. OK 事件关闭

    • 所有问题:恢复事件关闭该触发器全部历史故障;
    • 标签值匹配的问题:仅关闭对应标签的故障(多业务隔离)。
  10. 标签匹配:仅上一项选中时必填,用于事件筛选、关联。

  11. 允许手动关闭:勾选后运维可在前端手动标记故障已解决。

  12. 菜单项名称 / URL:自定义前端跳转链接,支持{EVENT.ID}、{HOST.ID}宏。

  13. 说明:备注故障修复方案、责任人,支持宏。

  14. 启用:勾选触发器生效,取消则禁用(配置保留)。

附属标签页

  1. Tags(触发器标签)为事件添加自定义标签,用于动作条件筛选;支持触发器宏,标签超长自动截断;主机标签不会继承至触发器。
  2. Dependencies(依赖项)触发器依赖规则:当前触发器仅在依赖触发器正常时生效;典型场景:主机宕机时,屏蔽所有应用告警,避免告警风暴。

6.3.6 触发器表达式完整语法

通用表达式格式

函数(/主机/监控键,参数) 运算符 常量

6.3.6.1 触发器函数分类

按功能分为 10 大类,覆盖统计、时间、字符串、预测等场景:

  1. 聚合函数:avg、count、max、min、sum、stddevpop 等;
  2. 遍历函数:avg_foreach、max_foreach 等(多主机批量计算);
  3. 位函数:bitand、bitor、bitnot 等(二进制运算);
  4. 日期时间函数:date、dayofweek、now、time(时间判断);
  5. 历史函数:last、change、nodata、rate(采集值、无数据检测);
  6. 趋势函数:trendavg、trendmax 等(长期趋势分析);
  7. 数学函数:abs、sqrt、log、round 等;
  8. 操作函数:between、in(范围判断);
  9. 预测函数:forecast(数据预测);
  10. 字符串函数:jsonpath、xmlxpath(解析 JSON/XML 数据)。

6.3.6.2 函数参数规则

参数分为时间参数、序号参数两类:

  1. 时间参数:sum(/host/key, 10m) → 统计最近 10 分钟数据总和;
  2. 序号参数(#+ 数字):last(/host/key, #2) → 获取倒数第 2 个采集值;示例:采集值30、70、20、60、50(新→旧),#2=70,#5=50;
  3. 限制:不支持函数嵌套(min(/key,#5*10) 属于非法语法)。

6.3.6.3 时间偏移与绝对周期

以now(当前时间)为基准,支持相对偏移和固定周期:

表达式含义
1d:now/d昨天全天数据
1d:now/d+1d今天全天数据
1w:now/w上周数据
1w:now/w+1w本周数据
avg(/key,1h:now-1d)1 天前 1 小时的平均值

6.3.6.4 运算符与运算规则

  1. 优先级(从高到低):一元减号 → not → 乘 / 除 → 加 / 减 → 比较符 → and/or;
  2. 逻辑运算符强制规则:not、and、or 必须小写,前后加空格;
  3. 未知值(Unknown)规则:任意操作数为 Unknown,运算结果均为 Unknown;
  4. 比较运算符:-、*、/、+、<、<=、>、>=、=、<>;
  5. 结果定义:比较成立返回1,不成立返回0。

6.3.7 触发器十大实战示例

示例 1:监控 /etc/passwd 文件篡改

需求:检测系统核心配置文件被修改。

方案 1:自定义脚本
  1. 编写检测脚本 check_passwd_change.sh
#!/bin/bash
LAST_MODIFIED=$(stat -c %Y /etc/passwd)
THRESHOLD=$(date -d "1 minute ago" +%s)
if [ "$LAST_MODIFIED" -gt "$THRESHOLD" ]; then
echo "File changed"
exit 0
else
echo "No change"
exit 1
fi


stat
系统命令,作用:查看文件 / 目录的详细属性(修改时间、权限、大小、inode 等)

-c
stat 的参数 = --format,意思是自定义输出格式(不输出默认内容,只输出我们要的信息)

%Y
stat 专用格式符:输出文件「最后修改时间」的 Unix 时间戳
% y = 格式化时间(2026-05-31 14:00:00)
% Y = 时间戳秒数(1748701200)

/etc/passwd
Linux 系统核心文件,存储所有用户信息,监控它防止被篡改




THRESHOLD=$(date -d "1 minute ago" +%s)
逐部分拆解

date
系统命令,作用:查看 / 设置系统时间

-d
date 的参数:指定自定义时间(不是当前时间,而是我们描述的时间)
"1 minute ago"
时间描述字符串:1 分钟之前
可替换:1 hour ago(1 小时前)、1 day ago(1 天前)

+%s
date 专用格式符:输出指定时间的 Unix 时间戳
THRESHOLD
自定义变量名 = 阈值,存储:当前时间往前推 1 分钟的时间戳
  1. 授权并配置自定义参数
chmod +x check_passwd_change.sh
# 写入Agent子配置文件
echo 'UserParameter=passwd.changed,/root/check_passwd_change.sh' >> /etc/zabbix/zabbix_agent2.d/custom.conf
systemctl restart zabbix-agent2
  1. 触发器表达式:last(/web-app/passwd.changed)="File changed"
方案 2:内置校验和

利用系统内置文件校验和监控:

last(/web-app/vfs.file.cksum[/etc/passwd],#1) <> last(/web-app/vfs.file.cksum[/etc/passwd],#2)

释义:最新校验和与上一值不一致 → 文件被篡改。

示例 2:Zabbix Server CPU 负载过高

表达式:last(/Zabbix server/system.cpu.load[all,avg1])>5释义:主机 1 分钟 CPU 平均负载大于 5,触发告警。

示例 3:主机过载(或逻辑判断)

last(/www.example.com/system.cpu.load[all,avg1])>5 or min(/www.example.com/system.cpu.load[all,avg1],10m)>2

释义:当前负载 > 5 或 近 10 分钟负载曾 > 2,任一条件成立则告警。

示例 4:网卡大流量监控

表达式:min(/www.example.com/net.if.in[eth0,bytes],5m)>100K释义:eth0 网卡近 5 分钟接收流量最小值大于 100KB。

示例 5:双 SMTP 集群宕机(跨主机判断)

last(/smtp1.example.com/net.tcp.service[smtp])=0 and last(/smtp2.example.com/net.tcp.service[smtp])=0

释义:两台 SMTP 服务同时离线(返回 0 = 服务不可用)。

示例 6:Agent 版本模糊匹配

表达式:find(/example.example.com/agent.version,,"like","beta8")=1释义:匹配版本包含beta8的 Agent,用于版本升级提醒。

示例 7:主机频繁丢包

表达式:count(/example.example.com/icmpping,30m,,"0")>5释义:近 30 分钟 ping 不通次数超过 5 次,判定网络抖动。

示例 8:无心跳数据(nodata 函数)

表达式:nodata(/example.example.com/tick,3m)=1释义:tick监控项 3 分钟无新数据 → Agent 离线。

示例 9:夜间 CPU 异常(时间限制)

表达式:min(/Zabbix server/system.cpu.load[all,avg1],5m)>2 and time()<060000释义:凌晨 0~6 点,CPU 负载大于 2 触发告警。

示例 10:定时屏蔽告警(非工作时段)

min(/zabbix/system.cpu.load[all,avg1],5m)>2 
and not (dayofweek()=7 and time()>230000) 
and not (dayofweek()=1 and time()<010000)

释义:周日 23 点~周一 1 点期间,屏蔽 CPU 告警。


6.4 告警动作(Action)配置

Action 是事件的执行载体,决定故障触发后执行的操作。

6.4.1 五大事件来源

  1. 触发器事件(最常用):触发器状态切换(故障 / 恢复);
  2. 服务事件:监控服务状态变更;
  3. 网络发现事件:自动发现主机、主机上下线;
  4. Agent 自动注册事件:新 Agent 注册、元数据变更;
  5. 内部事件:监控项不支持、触发器未知等系统异常。

6.4.2 通用配置参数

操作入口:【告警】→【动作】,选择事件类型后创建动作。

  1. 名称:动作唯一名称(必填);
  2. 计算类型(多条件逻辑):与 / 或 / 与或 / 自定义表达式;
  3. 条件:添加过滤规则(主机组、故障级别等);
  4. 已启用:勾选生效。

6.4.3 动作操作类型

通用操作(全事件支持)

  1. 发送消息:推送告警通知;
  2. 执行远程命令:故障自愈脚本。

专属操作(仅发现 / 自动注册支持)

添加 / 移除主机、启用 / 禁用主机、关联模板、添加标签等自动化操作。


6.5 主流告警媒介配置(邮件 / 企业微信 / 钉钉)

统一前置要求:Zabbix 7.0 告警脚本默认目录 usr/lib/zabbix/alertscripts。

通用权限 & SELinux 配

# 脚本授权(zabbix用户可读可执行)
chown zabbix:zabbix /usr/lib/zabbix/alertscripts/*
chmod 755 /usr/lib/zabbix/alertscripts/*
# SELinux永久放行脚本
semanage fcontext -a -t zabbix_script_exec_t "/usr/lib/zabbix/alertscripts(/.*)?"
restorecon -Rv /usr/lib/zabbix/alertscripts

6.5.1 邮件告警

步骤 1:配置 SMTP 发件服务

Zabbix Web → 【告警】→【媒介】,填写 SMTP 服务器、账号、端口。

密码是授权码不是真的密码,之前文章有。

步骤 2:消息模板

纯文本 - 故障模板
故障{TRIGGER.STATUS},服务器:{HOST.NAME}发生:{TRIGGER.NAME}故障!
告警主机:{HOST.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE}
事件ID:{EVENT.ID}
纯文本 - 恢复模板
恢复{TRIGGER.STATUS},服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
告警主机:{HOST.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE}
事件ID:{EVENT.ID}

可以自己写,支持html格式

点击测试出现问题:

一般是授权码出现问题

发现是自己写的qq邮箱,但是我的授权码是网易邮箱的,修改后

HTML 美化模板

使用表格布局,故障行标红、恢复行标绿,适配邮件客户端。

步骤 3:添加动作

第二个类型用触发器,不同类型用and连接起来

操作配置,可以细化选择主机组以及主机组中谁应该收到

恢复也一样,主要还是看需求

还有设置用户里面用户的报警媒介,添加后一定要更新

测试:

告警提示:因为遵循html可以在模版里面加换行

恢复提示:

在报表里面查看动作日志:

6.5.2 企业微信告警

步骤 1:注册企业微信

官网:企业微信企业微信,是腾讯微信团队为企业打造的专业办公管理工具。与微信一致的沟通体验,丰富免费的OA应用,并与微信消息、小程序、微信支付等互通,助力企业高效办公和管理。全面安全保障,国际权威认证,银行级别加密水平,保障企业数据安全。https://work.weixin.qq.com,填写企业信息完成注册。

安装桌面版会在移动版登录。

PC端:

网页版:

可能因为名字不合规导致被修改为未命名。

步骤 2:创建部门与成员

通讯录 → 新建运维部门,添加接收告警的成员。

步骤 3:配置消息推送(原群机器人)

找到创建应用:

切换到PC端,找到消息推送,当然手机也行。

发布自定义消息推送。

主要就是复制webhook,跟邮件异曲同工https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=77b2d2c5-06d6-4956-8744-f3dabc301030

群聊 → 右上角高级功能 → 消息推送 → 创建,复制 Webhook 密钥(核心)。

步骤 4:Python 环境(RHEL 10 自带 Python3)

dnf -y install python3-pip
pip3 install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

步骤 5:告警脚本

路径:/usr/lib/zabbix/alertscripts/wechat.py

这个存放脚本的路径是固定的,在一般情况下不写在这个路径下找不到

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests, json, sys
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "替换为你的企业微信Webhook"

def send_msg(text):
    data = {"msgtype":"text","text":{"content":text}}
    requests.post(api_url, json.dumps(data), headers=headers)

if __name__ == '__main__':
    send_msg(sys.argv[1])

步骤 6:本地测试 + Zabbix 配置

chmod +x wechat.py
python3 wechat.py "Zabbix测试告警"

Zabbix 端创建脚本类型媒介,脚本名wechat.py,参数{ALERT.MESSAGE},配置消息模板后关联用户与动作。

zabbix中配置:

1.创建媒介类型

2.媒介类型消息模版

这里测试失败很有可能是没有赋予可执行权限

问题模板:
主题:故障发生 {EVENT.NAME}
消息:
************错误************
事件名称:{EVENT.NAME}
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{EVENT.VALUE}
告警等级:{EVENT.SEVERITY}
当前状态:{EVENT.STATUS}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}


恢复模板:
主题:故障恢复 {TRIGGER.NAME} {EVENT.DURATION}:{EVENT.NAME}
消息:
************恢复************
事件名称:{EVENT.NAME}
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{EVENT.RECOVERY.VALUE}
告警等级:{EVENT.SEVERITY}
当前状态:{EVENT.RECOVERY.STATUS}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.RECOVERY.ID}

添加触发器动作

绑定用户报警媒介,收件人不为空就行

测试:

因为触发器动作选择server2,复制会话大于3个即可

以下告警成功:

删除多余会话后恢复通知成功

6.5.3 钉钉告警

步骤 1:创建钉钉运维群

步骤 2:添加自定义机器人

群设置 → 机器人 → 自定义机器人,设置关键词(必填),复制 Webhook 地址。

这里至少需要一个关键词,最后发送消息中一定要包含这个关键词,不然不接收。

webhook:https://oapi.dingtalk.com/robot/send?access_token=c6554e9e6c723a97e708d5a31403c4bc613d69b7696755a22b1236fdf5dd639f

步骤 3:编写钉钉脚本

路径:/usr/lib/zabbix/alertscripts/dingding.py,脚本结构与企业微信一致。

更换webhook即可,

测试发送信息要包含关键字,不然接收不到

步骤 4:授权、测试、Zabbix 媒介配置(同企业微信)

消息模版:

问题模板:
主题:故障发生 {EVENT.NAME}
消息:
************问题错误************
事件名称:{EVENT.NAME}
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{EVENT.VALUE}
告警等级:{EVENT.SEVERITY}
当前状态:{EVENT.STATUS}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}


恢复模板:
主题:故障恢复 {TRIGGER.NAME} {EVENT.DURATION}:{EVENT.NAME}
消息:
************问题恢复************
事件名称:{EVENT.NAME}
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{EVENT.RECOVERY.VALUE}
告警等级:{EVENT.SEVERITY}
当前状态:{EVENT.RECOVERY.STATUS}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.RECOVERY.ID}

测试:

添加触发器动作

用户绑定报警媒介

测试:

因为用户数量好测试

我这里原本测试失败,因为他关键词的要求不是消息模版里面有关键词而是脚本参数里面有关键词


6.6 告警升级(阶梯通知)

6.6.1 核心概念

告警升级:故障长时间未恢复时,逐级扩大通知范围(一线→主管→管理层),解决人员漏看问题。配置入口:【告警】→【动作】→ 操作。

6.6.2 核心参数释义

  1. 默认操作步骤持续时间:全局默认告警间隔;
  2. 开始于:相对故障触发的延迟时间;
  3. 持续时间:单步告警的发送间隔;
  4. 范围标识:1-3= 执行 1~3 步;3-0= 第 3 步后无限循环;
  5. 维护期间暂停操作:运维窗口内屏蔽告警。

6.6.3 三大实战配置案例

案例 1:固定次数逐级通知

范围开始于持续时间接收人
1-3立即5m一线运维(3 次)
4-515m1h运维总监(2 次)
62h15m默认董事长(1 次)
时间计算:前 3 步累计 15 分钟,再加 2 小时,总延迟 2 小时 15 分通知管理层。

案例 2:部分循环通知

范围开始于持续时间接收人
1-3立即5m一线运维
3-010m默认运维总监(永久循环)
规则:第 3 步触发后,同步向总监持续推送告警。

案例 3:混合循环通知

一线永久接收,超时后逐级上报,适用于核心业务。

一、常用告警宏对照表(文档宏汇总)

宏名称含义
{HOST.NAME}主机名称
{HOST.IP}主机 IP
{TRIGGER.NAME}触发器名称
{TRIGGER.STATUS}故障 / 恢复状态
{TRIGGER.SEVERITY}故障级别
{ITEM.NAME}监控项名称
{ITEM.VALUE}监控项数值
{EVENT.DATE/TIME}事件时间
{EVENT.ID}事件 ID(溯源)

二、高频故障排错

  1. 触发器显示 Unknown监控项无数据、表达式语法错误、数据类型不匹配、历史数据过期。
  2. 脚本告警收不到脚本权限不足、SELinux 拦截、Webhook 密钥错误、钉钉缺失关键词。
  3. 触发器不触发告警阈值不合理、动作条件过滤过严、动作未启用。

三、生产最佳实践

  1. 触发器、模板统一批量配置,减少单机重复操作;
  2. 高等级故障采用「短信 + 微信」双媒介;
  3. 自定义脚本需开启 Agent 端 UnsafeUserParameters=1;
  4. 告警升级间隔设置 5~15 分钟,避免消息轰炸。
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐