周志洋

个人站

持续学习 才能不被淘汰


结合ELK的大模型运维监控实战

指标说明炸了,日志说明哪里炸的

三到五月的 ELK 笔记不是过期知识。接了大模型之后,一次对话可能经过网关、引擎、Dify、工具 API,最后还是要靠日志还原。

分工固定:Grafana 看 SLO 和资源;出了告警,去 Kibana 用 request_id 翻样本。两者互相代替不了。

字段先定好再接入

网关打 JSON,Filebeat 收进 ES,按天索引。字段至少要有:

{
  "timestamp": "2025-11-28T09:12:01.123+08:00",
  "request_id": "req_7f3c...",
  "service": "llm-gateway",
  "tenant": "app_a",
  "model_alias": "chat-large",
  "model_real": "qwen2.5-72b-instruct-awq",
  "status": "ok",
  "ttft_ms": 286,
  "latency_ms": 2410,
  "prompt_tokens": 1205,
  "completion_tokens": 388,
  "route_stage": "new_version",
  "dify_workflow_run_id": "wf_run_..."
}

没有 request_id,后面全是体力活。有 Dify 就两边互写对方的 ID,不然总在吵「到底是编排问题还是模型问题」。

ILM 按热温删走,日志盘被打满这种事,沉默成本很高。提示词按合规脱敏或采样,别图省事全文进 ES。

检索和告警

常用几条就够:request_id: "...";某模型 status: error;ttft_ms >= 1500;route_stage: new_version 且 5xx。看板做错误率、慢请求、租户 token 排行,别一上来三十个 visualization。

日志告警和 Prometheus 告警要去重。Prometheus 负责「超 SLO」,ELK 负责「某一类错误样本暴增」并附 Kibana 深链。

排障顺序

Grafana 报 chat-large 的 p95 TTFT 超线 → Kibana 滤同时段 → 走新版本的慢请求多 → 用 request_id 进引擎日志 → 长上下文下 KV 顶满 → 把新版本流量比例打回 0 → 补上长上下文压测再发版。


转载请注明:周志洋的博客 » 结合ELK的大模型运维监控实战

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦