华为云 LTS 日志采不到/搜不到:从 ICAgent、采集配置到索引的分层排查
云日志服务 LTS 接好了主机、配好了路径,控制台却迟迟看不到日志;或者日志明明在流里,一搜索就提示「查询结果不精确」「字段未配置字段索引」「未开启全文索引」。很多人会先怀疑 ICAgent 挂了,其实常见的情况是:刚配完还在等生效、同路径已在 AOM 配过、采集开关被关、路径写法踩了 ** 规则,或者索引没开对。这篇按「现象分类 → 采不到 → 查不到新日志 → 搜不到/报错 → 速查表」分层整理,方便对照官方 FAQ 与用户指南逐项排除。
一、先分清三种现象
排查前先把问题归到下面三类,后面查的方向不一样:
| 现象 | 典型表现 | 优先排查层 |
|---|---|---|
| 采不到 | 接入配置已提交,日志流里长期没有新日志 | 等待时间、AOM 重复配置、ICAgent/主机组/安全组/路径规则 |
| 查不到新产生的日志 | 以前有过日志,最近业务仍在写文件,但 LTS 不再更新 | ICAgent 采集开关、主机侧 switchList / httpsend / als event |
| 搜不到或查询报错 | 日志流有数据,但关键词搜不准,或报字段/全文索引相关错误 | 时间范围、短语语法、字段索引、全文索引 |
容易混淆的一点:控制台「有历史日志、没有最新日志」和「完全空白」不是同一类问题,前者更像采集开关或上报失败,后者更像接入配置本身没生效。
二、采不到:主机接入后的基础核对
官方 FAQ「主机接入 LTS 后无法采集到日志」建议先做这几步:
- 刚配完先等 1~5 分钟。接入配置提交后,ICAgent 需要一点时间拿到配置并开始上报,立刻刷新看不到很正常。
- 同主机、同路径不要在 AOM 和 LTS 重复配。相同主机的同一个日志采集路径,如果已经在应用运维管理 AOM 里配置过,就不能再在 LTS 重复配置;两边抢同一路径时,LTS 侧会采不到。
- 对照 ECS 文本日志接入指南,排除不规范配置。路径、主机组、索引等任一项不规范,都可能导致采集失败。
若以上都排除,再走工单;大多数场景在下面第三节就能定位。
三、采不到:按 ECS 文本日志接入链路逐项查
ECS 文本日志接入的标准流程是:选择日志流 → 选择主机组 → 采集配置 → 索引配置 → 提交。入口一般在「日志接入 > 接入中心」选 ECS 卡片「接入日志(LTS)」,或在「日志接入 > 接入管理」创建。下面按链路从底向上查。
3.1 前提条件是否齐
- ICAgent 已安装,且主机已加入主机组。主机组可以在接入时勾选,也可以事后在「主机管理 > 主机组」或修改接入配置时再关联;未关联主机组时,采集配置实际上不会生效。
- 安全组放行 ICAgent 上报相关端口:入方向开放 8149、8102、8923、30200、30201、80(以官方「添加安全组规则」说明为准)。
- 配置中心已开启 ICAgent 采集开关。采集开关默认打开;关闭后 ICAgent 会停止采集,AOM 侧「日志采集开关」也会同步关闭。很多人排查了半天路径,最后发现是全局开关被关了。
3.2 路径规则:最容易写错的一处
采集路径最多可加 30 条,规则里这几条最常踩坑:
**表示递归目录,最多递归 5 层,且整条路径里**只能出现一次。- 正确示例:
/var/logs/**/a.log - 错误示例:
/opt/test/**/log/**(出现两次)
- 正确示例:
- 第一层不能是
**,避免误采系统文件。错误示例:/**/test - 支持
*模糊匹配目录或文件名,例如/var/logs/*/a.log、/var/logs/service-*/a.log、/var/logs/service/a*.log - 配置的是文件名时,只采集文本格式文件
绕接(日志切割改名)若不符合内置规则,需要在路径配置里加自定义绕接规则,否则容易重复采集或切割瞬间丢日志。控制台提供「使用路径验证」「使用绕接规则验证」,配完可以先自检。
3.3 文件新旧与采集时间窗口
LTS 下发配置后,ICAgent 对文件还有时间窗口限制(官方约束):
- 新文件(首次采集):最后修改时间与当前时间相差超过 6 小时,不采集。
- 旧文件(非首次采集):最后修改时间与当前时间相差超过 3 分钟,不采集。
常见的情况是:拿一份很久没改动的历史日志文件做验证,路径配对了也看不到数据——并不是接入失败,而是命中了「超过 6 小时不采」的规则。验证时尽量用正在持续写入的日志文件。
另外:
- 同主机同路径若已在 AOM 配置,LTS 不能重复(再次强调)。
- 「允许文件多次采集」关闭时,同一主机同一文件跨日志流也不能重复配;开启后才支持采到多个日志流(依赖 ICAgent 版本)。
- 黑名单与采集路径重合时,优先按黑名单过滤。
3.4 接入后用「ICAgent 采集诊断」
接入配置操作列「更多 > ICAgent采集诊断」可以看 ICAgent 异常监控、整体状态和采集监控。若列表里没有该项,需要先在设置里开启「ICAgent 诊断开关」。我习惯接入提交后先等几分钟,再用诊断页确认状态,比直接在日志流里干等更省时间。
四、查不到新日志:采集开关与主机侧痕迹
官方 FAQ「在 LTS 页面无法查询新产生的日志」给出的方向是:采集开关、上报失败、配置下发异常。可以按下面顺序查。
4.1 控制台:ICAgent 采集开关
- 登录云日志服务控制台
- 进入「配置中心」
- 在「ICAgent采集开关」页签确认开关为开启;未开启则打开后再观察是否恢复上报
4.2 主机:/var/ICAgent 看三类关键信息
登录 ICAgent 所在 ECS:
cd /var/ICAgent
① 采集开关是否真正下发为开启
zgrep switchList *.zip
cat oss.icAgent.trace | grep switchList
看最新一条配置里,switch.log 是否为 true(代表采集开关开启)。也可以核对:
cat /var/share/oss/manager/ICProbeAgent/internal/TRACE_CONFIG/swithes_context.json
② 是否上报失败
cat oss.icAgent.trace | grep httpsend | grep 'dataType:TRACE' | grep failed
zgrep 'dataType:TRACE' *.zip | grep httpsend | grep failed
出现 failed 说明日志发送失败,需要结合网络、安全组或联系技术支持继续排查。
③ 采集配置是否已下发到 ICAgent
cat oss.icAgent.trace | grep 'als event' | grep -v grep | tail -n 1
# 当前文件没有时再查压缩包
zgrep 'als event' *.zip | grep -v grep | tail -n 1
结果里应能看到实际配置的日志组、日志流和采集路径。对不上时,回到控制台「日志接入」核对接入任务本身。
五、搜不到 / 查询报错:索引与搜索语法
日志已经进流,但搜索不符合预期时,对照官方「无法搜索日志」FAQ,按报错对号入座。
5.1 提示「查询结果不精确」
可能原因是查询时间范围内日志量过大,控制台只展示了部分结果。可以:
- 缩小时间范围后再查
- 或多点几次「查询」,直到拿到精确结果
5.2 关键词顺序对不上
普通空格查询 abc def 表示同时包含这两个词,不保证顺序。要精确匹配短语,用:
#"abc def"
5.3 字段查不到:未配置字段索引
报错类似「XXX 字段未配置字段索引,不支持查询该字段」时,需要在索引配置里为该字段创建字段索引,再重新查询。注意:索引修改只对之后新写入的日志生效,改完立刻用旧日志验证会误判为「没生效」。
5.4 全文 / content 查不到:未开启全文索引
报错「未开启全文索引,不支持查询 content 字段和全文查询」时,在索引配置中开启全文索引。同样只对新写入日志生效。
5.5 其他常见语法限制(简表)
| 报错或现象 | 处理方向 |
|---|---|
* / ? 放在词开头 |
不支持,改写查询或调整分词符 |
long / float 字段用 * / ? 模糊查 |
改用 > >= < <= 或 in 做范围查询 |
string 字段用比较运算符或 in 做范围查 |
改用模糊查询,或把结构化类型改成数字 |
搜索语句含语法关键词(如 and) |
用双引号包成普通字符,例如 field:"and" |
短语里带 * 或 ? |
视为普通字符,不是通配符 |
接入时若暂时不需要按字段分析,可以跳过索引配置先提交采集;之后再按业务补字段索引或全文索引即可,不必为了「先看到日志」卡在索引页。
六、速查表
| 现象 | 可能原因 | 怎么确认 |
|---|---|---|
| 刚接入完全没日志 | 配置未生效完 | 等待 1~5 分钟后再查 |
| 路径看起来对,始终无数据 | 同主机同路径已在 AOM 配置 | 检查 AOM 虚机日志采集路径是否占用 |
路径含 ** 仍采不到 |
** 出现两次,或第一层就是 ** |
对照路径规则改成单次、非首层 |
| 用旧文件验证采不到 | 新文件 mtime 超过 6 小时 | 换正在写入的日志文件验证 |
| 所有主机突然都不更新 | ICAgent 采集开关关闭 | 配置中心「ICAgent采集开关」 |
| 开关开着仍无新日志 | 上报失败或配置未下发 | /var/ICAgent 查 httpsend failed、als event |
| 主机组未勾选 | 采集配置未关联主机 | 主机组页或修改接入配置补关联 |
| 安全组过严 | 上报端口未放行 | 放行 8149/8102/8923/30200/30201/80 |
| 搜索结果不精确 | 时间范围内日志量过大 | 缩小时间范围或多点查询 |
| 短语顺序不对 | 没用短语语法 | 改用 #"abc def" |
| 按字段查报错 | 未配字段索引 | 索引配置里补字段;只对新日志生效 |
| content/全文查报错 | 未开全文索引 | 开启全文索引;只对新日志生效 |
小结
遇到 LTS「采不到 / 搜不到」,我习惯先把问题拆成三类:接入链路(ICAgent、主机组、安全组、路径与时间窗口)、采集开关与主机侧 /var/ICAgent 痕迹、以及索引与搜索语法。路径上优先核对 ** 规则和 AOM 是否重复占用;搜索上优先核对全文/字段索引是否已开,并记住索引变更只作用于新写入日志。把「等几分钟」「别和 AOM 抢路径」「先开采集开关再查索引」这几条当成固定检查项,大部分问题可以在提交工单前自己收掉。
参考文档:
- 点赞
- 收藏
- 关注作者
评论(0)