为什么用这套架构
传统日志系统通常是Filebeat / Fluent Bit → Elasticsearch → Kibana。Elasticsearch 功能强大,但对单纯的日志存储查询场景来说资源消耗较高,集群运维也复杂。
VictoriaLogs 是 VictoriaMetrics 生态中的日志存储系统,定位高性能、低资源消耗。用它替换 Elasticsearch,就能以更低的成本搭出一套够用的云原生日志平台。
Vector:采集与加工
Vector 是高性能的日志和指标数据采集、处理与转发工具(Rust 编写)。核心流水线是三段式:
在 Kubernetes 场景下,Vector 以 DaemonSet 运行,每个节点一个实例:
Vector 是 Agent,不是存储。它只负责”采集 → 处理 → 转发”,不要把它当 Elasticsearch 或 VictoriaLogs 用。
VictoriaLogs:存储与查询
VictoriaLogs 负责日志的接收、存储、索引和查询,是整个平台的后端存储。主要特点:- 面向日志场景设计,高性能摄取
- 资源消耗低,支持大规模存储
- 原生支持结构化日志
- 与 Grafana、VictoriaMetrics 生态集成友好
Grafana:查询与展示
Grafana 是统一的可观测性数据查询与可视化平台。它不负责采集和存储,只负责查询和展示:关键字搜索、时间范围过滤、字段过滤、查看日志上下文、创建日志面板。 更重要的是,它能把 Metrics、Logs、Traces 三类数据放到同一个界面分析。Grafana 不是日志数据库。真正保存日志的是 VictoriaLogs,Grafana 只是查询入口。
完整数据链路
一条日志的旅程
以 Kubernetes 应用日志为例:1
应用产生日志
应用把日志写到 stdout / stderr。
2
容器运行时落盘
Container Runtime 把日志保存为节点本地日志文件。
3
Vector 采集与解析
Vector 读取日志并解析成结构化数据。例如原始日志
2026-09-10 16:20:30 INFO request success 会被转成:4
附加 Kubernetes 元数据
日志自动携带
namespace、pod、container、node、app 等字段,例如 namespace=production pod=order-service-xxx level=INFO。5
写入 VictoriaLogs
Vector 通过 HTTP 接口批量发送到 VictoriaLogs。
6
Grafana 查询
运维在 Grafana 里按 namespace / pod / 时间范围检索日志。
与指标体系的联动
如果已用 VictoriaMetrics 或 Prometheus 做指标监控,可以用 Grafana 把三大支柱统一起来:注意事项
与 ELK 的对比
总结
延伸阅读
- Vector 部署:DaemonSet 采集器落地
- VictoriaLogs 部署:日志存储与查询服务
- Grafana 部署:预置数据源的展示层
- ELK 概述:另一条日志技术路线
- 可观测性概述:三大支柱全景