告警规则创建、通知配置与事件诊断均可使用自然语言交由 AI Agent 完成。alibabacloud-sls-alerting 是一个 Agent Skill,支持用自然语言管理日志服务 SLS 告警规则、配置告警通知和分析告警事件。安装后,Agent 根据需求生成告警规则或告警通知配置,通过阿里云 CLI 执行操作,并返回配置核验结果或告警诊断结论。
适用场景
场景 | 说明 | 对应演练 |
创建告警规则 | 根据业务指标和监控需求,创建告警规则并配置评估与触发条件。 | 场景一:创建告警规则 |
管理已有告警规则 | 查询和更新已有告警规则,支持临时静默告警通知,以及禁用、重新启用和删除告警规则。 | 场景二:修改已有告警规则的触发条件;场景五:静默告警通知 |
配置告警通知 | 支持邮件、短信、电话、钉钉等多种通知渠道,可配置告警通知人、策略和内容。 | 场景三:配置邮件和短信通知 |
告警事件诊断 | 结合告警历史和相关日志分析根因。 | 场景四:分析告警触发原因和持续时间 |
告警降噪 | 调整告警触发和通知策略,减少重复告警与无效通知。 | — |
告警降噪通过提示词描述期望的触发与通知行为,示例提示词如下:
prod-web 中的 web-500-alert 偶尔波动一下就报警,通知太多了。帮我改成连续 3 次检查都满足条件才告警,同一个问题持续存在时每 30 分钟提醒一次。前提条件
已准备支持 Agent Skills 且能够执行本地命令的 AI Agent,如 Claude Code、Codex、Qoder、QwenCode 或 OpenClaw,各 Agent 的 skills 安装目录见本文安装 Skill 章节。
创建基于日志的告警规则前,已创建 Project 和 Standard LogStore,采集日志,并为查询涉及的字段配置索引;SQL 分析字段还需满足创建告警监控规则中相应的分析配置要求。
已配置能够访问目标资源的阿里云身份凭证,并按操作需要授予告警规则、通知资源或日志查询权限。不同操作对应的常见权限示例如下:
操作
常见权限示例
查看告警规则
log:ListAlerts、log:GetAlert创建或修改告警规则
log:CreateAlert、log:UpdateAlert启用、禁用或删除告警规则
log:EnableAlert、log:DisableAlert、log:DeleteAlert查看通知资源
log:ListResourceRecords、log:GetResourceRecord创建或修改通知资源
log:CreateResourceRecord、log:UpdateResourceRecord验证查询或读取日志
log:GetIndex、log:GetLogStoreLogs上述为权限名称示例,并非完整授权策略。应按实际操作配置支持的资源范围;如果拒绝信息中出现 Job 类 Action,应按实际 Action 排查,不能只依据 API 名称判断所需权限。
执行云端操作时,需要阿里云 CLI 3.3.22 或更高版本及 SLS 插件;执行技能附带的本地配置校验脚本时,需要 Python 3.7 或更高版本;通过 npx 方式安装 Skill 时,需要 Node.js 和 npx。首次使用时可由 Agent 检查并提供安装指引。
配置告警通知时,已准备告警通知人信息或可用的 Webhook 集成。告警通知人添加为告警规则的接收人后,即可接收该规则的告警通知。
诊断历史告警事件时,需要可访问的告警历史或归档数据。告警中心历史通常位于
sls-alert-<账号 ID>-<地域>下的internal-alert-center-log;Project 执行历史位于告警规则所属 Project 下的internal-alert-history。两者的字段和用途不同,可分别按自定义分析告警日志中的方法查询。首次使用告警中心时,需要在 SLS 控制台完成地域选择;Project 执行历史需要在控制台首次访问相应的告警规则详情页启用。查看告警规则详情和历史统计报表的操作方式,参见管理告警监控规则。仅查看告警规则、管理通知资源或解释配置时,不要求提前准备新的业务日志数据。
不要在 Agent 对话中粘贴 AccessKey ID、AccessKey Secret、STS Token、Webhook 签名密钥或带令牌的完整 URL。请通过阿里云 CLI 支持的凭据配置方式及所在环境的安全配置渠道管理这些信息。
安装 Skill
alibabacloud-sls-alerting 已收录于阿里云官方 Skills 仓库,可通过以下两种方式安装:本地具备 Node.js 和 npx 时,推荐通过方式一的 npx 命令安装;无 Node.js 或不便安装运行时时,使用方式二手动下载安装。
推荐同时安装 alibabacloud-sls-query。该查询技能可以帮助生成和优化告警查询语句,并通过查询、分析相关日志辅助告警事件诊断。
常见 Agent 的 skills 安装目录如下,方式一的安装范围选择与方式二的复制目标均以下表为准:
Agent | 项目级安装目录 | 用户级安装目录 |
Claude Code |
|
|
Codex |
|
|
Qoder |
|
|
QwenCode |
|
|
OpenClaw |
|
|
其中,~ 表示用户主目录;OpenClaw 的工作区和用户级目录可随配置调整,具体路径参见 OpenClaw Skills 文档。
方式一(推荐):通过 npx 命令安装
安装前,执行以下命令确认本地 Node.js 和 npx 可用:
node -v
npx -v如果提示命令不存在,请先安装 Node.js,或改用方式二手动下载安装。
执行以下命令安装 Skill:
npx skills add aliyun/alibabacloud-aiops-skills --skill alibabacloud-sls-alerting --full-depth根据安装程序提示选择目标 Agent 和安装范围。安装完成后,确认对应 skills 目录中存在 alibabacloud-sls-alerting,重新加载技能或重启 Agent。
方式二:手动下载安装
从 GitHub Release 下载 alibabacloud-sls-alerting 安装包。
解压安装包,将包含
SKILL.md、references和scripts的alibabacloud-sls-alerting目录整体复制到目标 Agent 的 skills 安装目录中。复制后,skills 目录的直接子目录即为alibabacloud-sls-alerting。重新加载技能或重启 Agent 以加载该 Skill。
Node.js 用于运行 npx 安装命令。手动复制 Skill 文件不需要 Node.js;执行告警操作仍需阿里云 CLI 和相应运行环境。
验证安装结果
安装完成后,确认对应 Agent 实际加载的 skills 目录(项目级安装需对应当前工作目录)下有 alibabacloud-sls-alerting 目录,且该目录包含 SKILL.md、references 和 scripts。重新加载技能或重启 Agent 后,Agent 即可识别该技能。如果 Agent 没有识别 Skill,参见本文故障排查中的“安装后 Agent 没有识别 Skill”进行排查。
管理和诊断告警
安装完成后,向 Agent 描述告警需求即可。Agent 根据任务选择相应流程:
任务类型 | 主要流程 |
创建或修改告警规则 | 检查环境和权限 → 确定资源与字段 → 读取现有配置或通知资源 → 验证查询与配置 → 提交变更 → 读取结果并核验。 |
管理通知资源 | 确定接收对象、渠道和策略 → 检查现有资源及引用关系 → 创建或更新所需资源 → 核验配置。 |
诊断告警事件 | 确定告警规则和事件时间 → 查询告警历史 → 核对触发条件与实际查询窗口 → 查询源日志及相关日志 → 输出结论和证据。 |
首次执行时,Agent 会检查阿里云 CLI 和 SLS 插件。如果环境缺失或版本不满足要求,会提供安装或升级指引。凭据配置请在本地终端完成,具体方式参见配置与管理身份凭证。
配置变更提交后,Agent 会返回核验结果;配置成功与通知送达需要分别验证,建议在 SLS 侧按以下要点确认配置已生效:
告警规则与通知配置:告警规则是否启用,是否产生正常的执行记录;查询窗口、返回结果、触发条件与连续触发阈值是否符合预期,是否产生告警事件。
通知送达:是否开启 SLS 通知输出,告警规则关联的告警策略、行动策略是否正确;接收人状态、渠道开关、模板内容和 Webhook 设置是否正常,并查看通知错误记录。
提示词最佳实践
创建或修改告警规则时,建议提供以下信息:
信息 | 示例 |
目标资源 | 告警规则所属 Project 为 prod-web,地域为 cn-hangzhou,数据源 LogStore 为 prod-web。 |
告警规则标识 | 告警规则 ID 为 web-500-alert,显示名称为“Web 服务 500 错误告警”。 |
告警触发条件 | status 为 500 的请求数达到 100 次; |
时间设置 | 每分钟检查一次,每次查询最近 5 分钟。 |
告警通知 | 通过邮件和短信通知指定接收人。 |
执行意图 | 创建告警规则;更新已有告警规则;仅生成配置草案;仅查询和诊断。 |
诊断告警事件时,建议提供告警规则所属 Project、告警规则 ID、事件时间范围和时区。如果日志归档在其他位置,还应提供归档 Project、LogStore 及时间字段信息。
检查频率和查询时间窗口分别控制不同的行为,建议明确写入提示词:
参数 | 作用 | 示例 |
检查频率 | 多久执行一次告警检查。 | 每 1 分钟执行一次。 |
查询时间窗口 | 每次检查使用哪一段数据。 | 查询最近 5 分钟。 |
场景演练
以下演练给出完整提示词与 Agent 输出示例。
场景一:创建告警规则
提示词
帮我在 cn-hangzhou 的 prod-web 中创建一个 SLS 告警规则,ID 为 web-500-alert。
每分钟检查 nginx-access 中最近 5 分钟的访问日志,status 为 500 的请求数达到 100 次时告警。
告警通知通过邮件发送给已有通知人 web-ops@example.com。Agent 输出示例
查询语句:
status : 500 | SELECT count(*) AS errorCount FROM log
告警规则配置:
- 告警规则 ID:web-500-alert
- 数据源:prod-web/nginx-access
- 检查频率:1 分钟
- 查询窗口:最近 5 分钟
- 触发条件:errorCount >= 100
- 告警通知:邮件,web-ops@example.com
配置结果:告警规则已创建,已核验触发条件和邮件通知配置。场景二:修改已有告警规则的触发条件
提示词
帮我修改 cn-hangzhou 下 prod-web 中的 SLS 告警规则 web-500-alert,
把状态码为 500 的请求数的告警阈值从 100 次改为 200 次,其他配置保持不变。Agent 输出示例
更新结果:已更新告警规则,并核验告警阈值为 200 次,其他配置保持不变。配置变化说明
本次修改仅调整告警阈值,其余配置项保持不变:
配置项 | 修改前 | 修改后 |
告警触发条件 |
|
|
检查频率 | 1 分钟 | 1 分钟 |
查询窗口 | 最近 5 分钟 | 最近 5 分钟 |
场景三:配置邮件和短信通知
提示词
帮我添加一个 SLS 告警通知人,姓名是 xxx,邮箱是 xxx@example.com,手机号是 xxx。
再为 cn-hangzhou 下 prod-web 中的告警规则 web-500-alert 添加邮件和短信通知,
都发送给这位通知人。Agent 输出示例
已添加告警通知人:
- 姓名:xxx
- 邮箱:xxx@example.com
- 手机号:xxx
告警通知配置:
- 告警规则:prod-web/web-500-alert
- 接收人:xxx
- 通知渠道:邮件、短信
配置结果:已为该告警规则添加这位通知人的邮件和短信通知,并核验接收人信息及渠道配置。场景四:分析告警触发原因和持续时间
提示词
prod-web 中 SLS 告警规则 web-500-alert 在今天早上触发了好几次,帮我调查下原因。Agent 输出示例
事件范围:2026-09-10 09:00~10:00,北京时间。
告警规则:prod-web/web-500-alert。
触发原因:
- 历史记录显示,当时的告警触发条件为 errorCount >= 100。
- 09:10 的执行记录使用 09:05~09:10 的源日志窗口,errorCount 为 186。
- 已重新查询该窗口的源日志,统计结果与记录相符,满足当时的触发条件。
频率和持续时间:
- 按执行标识去重后,09:10~09:15 共 6 次执行处于触发状态。
- 这些执行属于 1 段连续告警。
- 09:16 有恢复记录,从首次触发到恢复约 6 分钟。
源日志证据:
- 执行查询:status : 500 | SELECT count(*) AS errorCount FROM log
- 查询窗口:09:05~09:10,返回 errorCount=186。
- 按 request_uri 下钻后,/api/order/create 占 142 次,约为 76.3%。
- 该接口的错误日志中存在 upstream connect timeout。
结论:状态码为 500 的请求数达到阈值导致告警,错误主要集中在 /api/order/create。
后续方向:检查上游连接状态及服务日志;现有证据尚不足以确认超时的底层原因。触发执行次数不等于通知条数,实际发送情况以通知记录为准。
场景五:静默告警通知
提示词
帮我临时静默 prod-web 中的 web-500-alert SLS 告警通知,静默 30 分钟。Agent 输出示例
已设置临时静默:
- 告警规则:prod-web/web-500-alert
- 静默时长:从现在起 30 分钟
- 静默范围:该告警规则产生的告警通知静默期间,告警规则继续执行检查,仅暂停发送告警通知;30 分钟后本次静默自动结束,后续通知按原有配置处理。
使用限制
限制项 | 说明 |
查询超时 | 验证告警查询或分析历史日志时,查询可能超时。可缩小查询时间范围或简化查询语句后重试。 |
告警历史记录 | 可分析的时间范围受历史记录及源日志保留时间限制。 |
常见问题
如何指定阿里云账号或地域?
默认使用阿里云 CLI 当前配置的 Profile。需要其他 Profile 时,通过提示词明确指定名称,例如“使用 Profile=prod,管理 cn-hangzhou 的 prod-web 告警规则”。
告警规则所属 Project、查询数据源和告警历史可能位于不同地域,应分别提供或核实。需要内网访问时,可明确要求使用相应地域的内网 Endpoint,例如 cn-hangzhou-intranet.log.aliyuncs.com。
能否跨 Project、跨地域或跨账号查询数据?
告警规则所属 Project 与查询数据源可以不同。需要明确数据源的 Project、LogStore 和地域,并保证相应权限。
跨账号查询还需要配置可由 SLS 扮演的 RAM 角色及其信任关系、源数据访问权限;配置者还可能需要 ram:PassRole 权限。CLI 手动查询成功,并不代表告警规则的运行身份已经获得访问权限。
故障排查
阿里云 CLI 或 SLS 插件缺失、版本不满足要求
Agent 会在执行操作前检查环境,并在缺失或版本不满足要求时提供指引。也可以先在终端检查:
aliyun version
aliyun sls version缺少 SLS 插件时执行:
aliyun plugin install --names sls插件已安装,但所需命令或参数不可用时执行:
aliyun plugin update --name sls安装后 Agent 没有识别 Skill
确认技能安装到了当前 Agent 实际加载的目录,检查项目级安装是否对应当前工作目录,然后重新加载技能或重启 Agent。也可以通过提示词显式指定 alibabacloud-sls-alerting。
报错 Unauthorized 或 AccessDenied
根据失败请求中的 Action 和 Resource 检查 RAM 授权,各操作对应的常见权限示例参见前提条件中的权限表。上述为权限名称示例,并非完整授权策略,应按实际操作配置支持的资源范围;如果拒绝信息中出现 Job 类 Action,应按实际 Action 排查,不能只依据 API 名称判断所需权限。
报错 ProjectNotExist
检查 Project 名称、所属地域及 Endpoint。告警规则所属 Project 与查询数据源 Project 可能不同,需要确认失败发生在哪个请求。不要将错误地域下的“未找到”直接判断为资源不存在。
报错 IndexConfigNotExist 或字段无法分析
确认目标 LogStore 已配置索引,且查询使用的字段类型及 SQL 分析设置正确。例如,计算延迟平均值应使用数值字段,并核实单位。调整索引后,应按索引生效范围重新验证查询。
告警规则已创建,但没有收到通知
检查是否受到重复等待、静默、抑制、条件分支或发送时段影响,再按“管理和诊断告警”中的验证要点逐项排查告警规则与通知链路。
告警事件诊断查不到告警历史
优先确认时间范围、时区、告警规则 ID、历史存储地域及访问权限。