k8s日志收集工具

常用的日志收集工具有两种: ELK和Loki

区别:ELK重量级,Loki轻量级

一、Loki

Loki是Grafana Labs开源的一个支持水平扩展、高可用、多租户的日志聚合系统,也是基于于Kubernetes平台的原生日志收集平台,文档地址如下:

https://grafana.com/docs/loki/v2.7.x/fundamentals/overview/

架构图:

  • Loki:主服务器,负责日志的存储和查询,参考了Prometheus的服务发现机制,将标签添加到日志流,而不是像其他平台一样进行全文索引
  • Promtail:负责收集日志并将其发送给Loki,主要用于发现采集目标以及添加对应Label,最终发送给Loki
  • Grafana:用来展示或查询相关日志,可以在页面查询指定标签Pod的日志

本例子演示在Kubernetes集群中搭建一个Loki Stack,用于收集集群内Pod的日志

1、安装Loki Stack

首先添加并更新Loki的Helm仓库,命令如下:

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update

2、搜索仓库中的loki,命令如下:

  • grafana/loki 只有单独的 loki 组件
  • grafana/loki-canary loki 的另外一个组件,主要给 loki 做性能分析
  • grafana/loki-distributed 分布式(微服务)模式
  • grafana/loki-stack loki 的工具栈
  • grafana/fluent-bit 日志收集客户端
  • grafana/promtail loki 自带的日志收集客户端

3、获取loki-stack包,执行命令如下:

helm pull grafana/loki-stack --untar --version 2.9.9

4、

标签