Lazy loaded image
k8s云原生运维
Loki+Promtail+Grafana日志收集
字数 729阅读时长 2 分钟
2025-7-20
2025-7-19
type
status
date
slug
summary
tags
category
icon
password

loki 介绍

组件功能

Loki架构十分简单,由以下三个部分组成:
  • Loki 是主服务器,负责存储日志和处理查询 。
  • promtail 是代理,负责收集日志并将其发送给 loki 。
  • Grafana 用于 UI 展示。
只要在应用程序服务器上安装promtail来收集日志然后发送给Loki存储,就可以在Grafana UI界面通过添加Loki为数据源进行日志查询

系统架构

OpenTelemetry-loki.drawio.png
Distributor(接收日志入口):负责接收客户端发送的日志,进行标签解析、预处理、分片计算,转发给 Ingester。
Ingester(日志暂存处理):处理 Distributor 发送的日志,缓存到内存,定期刷写到对象存储或本地。支持查询时返回缓存数据。
Querier(日志查询器):负责处理来自 Grafana 或其他客户端的查询请求,并从 Ingester 和 Store 中读取数据。
Index:boltdb-shipper 模式的 Index 提供者 在分布式部署中,读取和缓存 index 数据,避免 S3 等远程存储频繁请求。
Chunks 是Loki 中一种核心的数据结构和存储形式,主要由 ingester 负责生成和管理。它不是像 distributorquerier 那样的可部署服务,但在 Loki 架构和存储中极其关键。

部署 loki

loki 也分为整体式 、微服务式、可扩展式三种部署模式,具体可参考文档https://grafana.com/docs/loki/latest/setup/install/helm/concepts/,此处以可扩展式为例:
loki 使用 minio 对象存储配置可参考文档:https://blog.min.io/how-to-grafana-loki-minio/
获取 chart包
修改配置values.yaml
⚠️
需要在minio先创建loki 桶
部署 loki

grafana 添加 loki 数据源

img

部署promtail

image-20250720003526723
上一篇
kubez部署k8s单节点
下一篇
minio使用