opsx
55d6a74eb3
fix(collectors): 主机采集器从未真正运行过 —— systemd 用了 Promtail 3.x 已删除的参数
=== 一、端到端验证发现的两个阻断性问题 ===
在 172.19.16.8 上真实部署(host-docker Loki + host-promtail)验证:
1) systemd unit 的 ExecStart 带 `-positions.enabled=true`
Promtail 3.x 已删除该参数 → 启动即退出(status=2),restart counter 一路涨到 65:
flag provided but not defined: -positions.enabled
也就是说:**主机模式的采集器此前从未真正跑起来过**。
→ 移除该参数(positions 由 YAML 配置,不需要这个 flag)。
2) 安装后不校验服务真实状态
`systemctl restart` 对"启动即崩"的服务同样返回 0(只是排队拉起),
平台据此把"崩溃重启中"报成 status=active / 采集器已部署,用户完全看不出问题。
→ 新增 waitServiceActive():轮询 systemctl is-active 最多 20s,
失败时返回错误并把 journalctl/日志尾部带回前端。
=== 二、验证结果(修复后)===
Loki 主机模式:容器 lokistack-loki-2 Up,/ready=ready,labels 正常
Promtail:active,监听 9080,ExecStart 已去掉非法参数
系统日志:job=system 17,513 条/10min(/var/log/{messages,secure,cron,...})
应用日志:job=app 4,311 条/10min(/var/log/*.log)
样本:pre-cex-ops-jenkins systemd[1]: Started promtail.service ...
=== 三、验证中另外发现、待修的两点(下一轮)===
- host 标签是字面量 "${HOSTNAME}":Promtail 不做环境变量展开
(需 -config.expand-env + systemd Environment,或生成配置时直接写真实主机名)
→ 21,825 条日志的 host 全是 ${HOSTNAME},无法按主机过滤
- 系统日志时间戳解析失效:TencentOS 4 的 /var/log/messages 是 ISO8601
(2026-07-17T15:38:24.923784+08:00),当前按传统 syslog(Oct 28 18:11:06)
写的正则匹配不上 → timestamp 阶段不生效,用的是采集时间(回填历史会错)
→ 计划安装时探测首行格式,自动选择 ISO8601 / 传统 syslog 解析
镜像:lghost/lokistack:latest + v0.1 = sha256:6268d534b20a
2026-10-28 18:11:41 +00:00
..
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-28 18:11:41 +00:00
2026-10-25 21:28:32 +08:00
2026-10-25 21:28:32 +08:00
2026-10-28 17:58:30 +00:00
2026-10-27 17:11:38 +08:00
2026-10-28 17:58:30 +00:00
2026-10-28 17:05:57 +00:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-25 21:28:32 +08:00
2026-10-28 17:58:30 +00:00
2026-10-27 17:11:38 +08:00
2026-10-28 17:58:30 +00:00
2026-10-27 17:11:38 +08:00
2026-10-25 21:28:32 +08:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-28 22:43:57 +08:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-28 17:05:57 +00:00
2026-10-27 17:11:38 +08:00
2026-10-28 17:58:30 +00:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-28 17:58:30 +00:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00
2026-10-28 17:58:30 +00:00
2026-10-27 04:16:55 +00:00
2026-10-28 17:58:30 +00:00
2026-10-27 17:11:38 +08:00
2026-10-26 19:32:38 +00:00
2026-10-27 17:11:38 +08:00
2026-10-27 17:11:38 +08:00