当日志量增长到人工无法逐条排查时,需要一种机制主动发现尚未预先定义的异常变化。日志智能巡检通过 STAROps 数字员工周期性分析目标 Logstore,自动识别新增日志模式、异常分布、指标变化和潜在风险,适用于应用错误、访问日志、业务状态、性能变化和审计操作等场景。
日志告警适合持续监控已经明确的问题;日志智能巡检更适合发现尚未预先定义的变化。两者可以同时使用。
功能优势
日志智能巡检通过周期性分析、自动下探和持续跟踪,将海量日志转化为可复核的问题线索,主要优势如下:
主动发现未定义的变化:无需预先配置错误码、关键词和固定阈值,持续识别新增日志模式、分布偏移、指标突变和长尾异常。
面向海量日志分析:在数据侧完成日志聚类、基线比较和维度下探,以整体分布为依据,降低抽样遗漏和局部样本误判的风险。
自动收敛问题范围:Agent 根据分析结果动态选择后续查询,从异常信号逐步定位到服务、版本、Region、用户等具体范围,并保留对照基线和查询证据。
持续跟踪并减少打扰:按周期更新问题状态,区分新增、恶化、复发和恢复;利用已确认的业务语义和已知噪音优化后续巡检,只在出现值得关注的变化时通知。
知识注入与多源分析:通过 Skill 补充业务规则、领域经验和排查方法,通过 UModel 描述实体关系、字段语义,使 Agent 能够关联日志、指标、Trace 等多源数据进行综合分析。对于具有明确业务语义或固定排查经验的日志场景,可通过自定义 Skill 进一步提升巡检质量。
使用前准备
开始前,确认以下条件已满足:
已拥有目标 Project 和 Logstore 的查询权限。
Logstore 已开启索引,能够正常查询日志。
日志中存在可用于分析的字段,例如
status、request_time、request_uri、region或version。日志时间范围内有可比较的数据;新建或数据量过少的 Logstore 可能无法形成有效基线。
如需接收通知,已准备联系人、机器人或 Webhook 通知对象。
智能巡检由 STAROps 提供,页面明确提示使用会产生费用,请按实际需要设置执行周期。
本指南以华东 2(上海)地域的 charts-demo/charts-demo Logstore 为例。示例日志为 Nginx 访问日志,包含 status、request_time、request_uri 等字段。
一、进入智能巡检
登录日志服务控制台,进入目标 Project。
在左侧日志库列表中选择目标 LogStore。
在查询分析页面确认当前时间范围内能够正常查询到日志。
在查询结果区域切换到智能巡检页签。
进入后,页面会展示当前 Logstore 下已有的巡检任务。任务卡片中可以看到任务名称、创建人、更新时间以及最近几次执行记录。请不要直接修改他人创建的任务;需要试用时,建议创建带有明确测试标识的独立任务。
二、创建巡检任务
在智能巡检任务列表中单击新建任务。
填写任务名称。建议同时包含业务范围和日志类型,例如“支付网关 Nginx 日志巡检”。
设置计划时间。示例页面支持按小时执行并指定每小时的分钟数。
选择执行任务的数字员工。
填写巡检要求。首次创建可以只写最重要的目标,系统会结合日志特征生成初始计划。
按需选择联系人、机器人或 Webhook。没有通知对象也可以创建,后续再配置。
检查费用提示,确认后单击立即创建。
创建成功后,新任务会显示在列表顶部。刚创建时显示“暂无执行记录”,属于正常状态。
三、首次运行与查看巡检结果
单击任务卡片后,控制台会在新标签页打开 STAROps 长期任务详情。详情页提供三个核心页签:
对话:查看任务规划过程、补充业务语义或提出新的下探要求。
执行:查看周期执行记录,也可以按需手动触发一次执行。
报告:查看巡检完成后生成的报告。
新任务尚未完成第一次执行时,执行和报告的数量为 0。首次执行完成后,再进入相应页签查看分析范围、查询证据、异常维度、Finding 和不确定性说明。
立即执行会额外发起一次巡检,可能产生费用。只是检查任务配置时,不需要单击。
从空任务开始第一次巡检
首次使用建议从一个没有历史执行、没有历史报告、没有现成巡检计划的空任务开始。此时页面顶部通常显示“执行 0”“报告 0”,右侧子任务规划卡片会显示播放按钮。
空任务第一次运行时,系统不只是查询一次日志,还会自动完成以下初始化工作:
读取任务中配置的地域、Project、Logstore、执行周期和补充要求。
识别日志字段和数据特征,生成初始 Source Profile。
建立并校验巡检计划。
执行第一轮确定性检查和异常下钻。
生成首份巡检报告,作为后续周期巡检的比较基线。
主动运行空任务
如果任务创建后没有自动开始,可在右侧子任务规划区域单击播放图标,或单击子任务上的立即执行。
系统会弹出“确定立即执行该子任务吗?”确认框,并提示确认后将创建并打开一次新的执行会话。确认任务和数据范围无误后,单击立即执行。
立即执行会产生一次实际的智能巡检运行;如果页面提示会产生费用,请先确认费用和数据范围。
等待首次执行完成
单击立即执行后,页面右侧会打开本次执行会话。首次运行需要建立 Profile 和巡检计划,耗时通常会比后续周期执行更长。
执行过程中可看到“建立 Profile 和 InspectionPlan”“执行确定性检查”“调查异常并下钻”“生成巡检报告”等阶段。保持当前任务为“活跃”即可,不需要反复单击播放按钮。
如果长时间没有结果,可先查看执行会话中的失败提示或查询错误,再检查地域、Project、Logstore、索引和查询权限是否正确。
查看执行记录
单击页面顶部的执行。
计划触发的运行可在执行列表中查看开始时间、完成状态和运行摘要;手动单击立即执行时,可先在右侧执行会话中查看实时进度。
执行列表出现记录后,单击记录可重新查看该次运行;如果列表暂未出现记录,不影响已经生成的报告,可直接转到报告页确认产物。
执行页适合排查任务有没有开始、是否完成、执行中断在哪里;它不是最终结论页。
查看巡检报告
单击页面顶部的报告。
在左侧报告列表中展开月份和日期目录,选择需要查看的巡检报告。
打开报告详情。
报告目录有时不会立即刷新。可先切换一次页签或刷新任务页面,再在报告页展开月份、日期目录;如果执行会话明确失败,则先处理失败原因后重新运行。
四、修改任务
修改任务名称
在任务详情页单击右上角更多。
选择设置。
在长期任务名称输入框中修改名称。
单击输入框外部完成保存。
刷新页面,确认页面标题仍显示新名称。
设置面板还会显示任务 ID、创建时间、触发方式和通知对象。任务 ID 可用于问题定位,请勿随意修改或拼接。
补充巡检要求
首次执行生成巡检计划后,可以在对话页继续描述需求,让 STAROps 调整后续巡检计划。例如:
补充巡检要求:将 /healthz 视为健康检查流量;
同时重点关注 upstream_response_time,
以及异常是否集中在特定来源地址或 User-Agent。发送后应等待 STAROps 返回计划调整结果,再检查后续执行是否包含新增检查项。
新任务尚未完成首次执行时,还没有可修改的巡检计划。此时 STAROps 可能要求补充 Project、Logstore、字段和执行频率等信息。建议先等待首次执行完成,再提交计划调整要求。
五、阅读巡检报告
报告生成后,建议依次确认以下内容,重点关注巡检窗口、总体结论、异常发现、证据和后续建议:
分析范围:当前窗口、对照窗口和实际查询范围是否符合预期。
巡检计划:本轮实际检查了哪些指标、字段和日志模式。
问题结论:是否发现新增异常、问题恶化、问题复发或影响范围扩大。
数据证据:结论由哪些日志查询、聚类结果或维度下探结果支持。
影响范围:问题集中在哪些 URI、状态码、来源地址、版本或其他维度。
不确定性:数据不足、基线不可比或字段缺失时,报告会说明当前无法确认的部分。
指标变化不一定等于故障。例如慢接口流量占比上升会推高整体 p90,但各接口自身的性能可能没有恶化。应结合维度下探结果判断变化是性能退化,还是流量组成变化。
报告阅读顺序
建议按下面的顺序阅读:
先确认范围:检查 Project、Logstore、Region、巡检窗口和对照窗口,避免把错误数据源当成业务结论。
再看总体结论:先判断“正常、需关注或异常”,并确认是否需要立即行动。
比较核心变化:关注总请求量、错误率、5xx 数量,以及 request_time 的 p50、p90、p99 与前一小时、昨日同期的差异。
查看关键发现和证据:确认异常集中在哪些 status、request_uri、request_method、来源地址或 User-Agent,并核对查询窗口和样本数量。
落实后续行动:把需要持续跟踪、需要应用侧确认或需要配置告警的事项转成明确负责人和截止时间。
本次空任务生成的第一份报告显示:
巡检状态为“正常”。
当前窗口 HTTP 5xx 错误率为 0.39%(99 次),较前一小时和昨日同期下降。
request_time 的 p50、p90、p99 在三个窗口中保持一致。
5xx 没有集中在单个 URI 或 Method,报告建议后续继续跟踪 500/501 比例和长尾变化。
这些结论仅代表该次巡检窗口。后续应结合连续多次报告判断趋势,不应只凭一次结果下结论。
报告内容由 AI 生成,适合辅助发现问题和缩小排查范围;涉及变更、扩容、熔断等生产操作时,仍需结合原始日志、监控指标和业务上下文进行人工复核。
六、通知配置
巡检周期和通知频率是两件事。任务可以每小时执行,但正常结果不必每小时通知。建议仅在以下情况通知:
发现新的高风险问题。
已有问题明显恶化。
问题恢复后再次复发。
影响范围明显扩大。
需要人工确认业务语义或处置方式。
如果创建时没有选择通知对象,可以在任务提示或设置页中进入通知管理,后续再添加联系人、机器人或 Webhook。
七、持续优化建议
首次运行先确认数据范围、字段识别和基线是否正确。
将业务错误码、字段含义和正常行为告诉巡检 Agent。
标记健康检查、压测、机器人请求等已知噪音,并说明适用范围。
对真实问题补充根因和处置经验,供后续巡检复用。
将通知设置为问题触发,避免正常周期重复打扰值班人员。
日志结构、版本字段或业务目标变化后,重新检查巡检计划。
自定义 Skill(可选)
对于具有明确业务语义、专用字段或固定排查经验的日志场景,可以创建自定义 Skill,将团队知识补充给执行巡检的数字员工,提升巡检结果的准确性、一致性和可复核性。建议在自定义 Skill 中沉淀以下内容:
字段和状态语义:说明业务错误码、状态字段、版本、Region、租户、用户等字段的含义。
正常行为与已知噪音:定义健康检查、压测流量、机器人请求、定时任务等无需升级的问题,并写清适用范围。
异常判断方法:规定需要重点比较的指标、基线窗口、聚类字段和异常维度。
下钻排查流程:把团队常用的查询语句、诊断顺序、关联条件和根因确认方法固化为标准步骤。
报告与证据要求:约定报告必须保留的时间范围、对照数据、查询证据、不确定性和后续行动。
STAROps 的自定义 Skill 使用 Markdown 编写。技能设计除 SKILL.md 指令外,还可以包含 references/ 目录中的参考资料和 scripts/ 目录中的辅助脚本。创建完成后无需安装,可在使用范围中关联到执行日志巡检的数字员工。
建议先创建草稿,仅为测试数字员工启用使用草稿,通过一次手动巡检验证字段理解、查询范围和报告结果;确认无误后再发布正式版本,供所有已关联的数字员工使用。
操作入口:STAROps 控制台 > 技能中心 > 自定义技能 > 创建自定义 Skill。
自定义 Skill 创建后会对主账号下的用户可见并可被挂载使用。正式创建或发布前,应检查内容中是否包含账号凭据、个人信息、内部地址等敏感信息。
常见问题
为什么新任务显示“暂无执行记录”?
任务刚创建时还没有到计划执行时间。可以等待下一个计划时间;如确有需要,也可以在了解费用影响后单击立即执行。
为什么第一次巡检没有发现问题?
可能是当前窗口没有显著变化,也可能是日志量不足、历史窗口不可比或关键字段尚未建立索引。先检查报告中的数据范围和不确定性说明。
如何减少重复通知?
将通知条件设置为新增问题、问题恶化、问题复发或影响范围明显扩大。对没有变化的问题保留报告,但不必每个周期发送通知。
如何减少已知噪音?
在巡检要求中写清楚噪音内容、判断依据和适用范围。例如说明 /healthz 是健康检查,或某个机器人账号只在指定时段执行授权操作。不要只写“忽略这个问题”,否则可能误伤其他真实异常。
修改巡检要求后何时生效?
计划调整通常应用于后续巡检。发送修改要求后,应先确认 STAROps 已完成计划更新,再在下一次运行中检查新增检查项是否生效。