kubernetes-日志系统Loki

2023-12-20 13:08:45

一、概述

以前的企业级日志系统ELK(Elasticsearch、Logstash、Kibana)比较重,而Loki是一个轻量级的日志系统,且Loki与Prometheus、Grafana是同一个生态的产品,在云原生领域有着很好的兼容性。

日志系统的价值

  • 分布式系统的日志查看比较复杂,要先到正确的节点,才能看到想看的日志。而日志系统把整个集群的日志汇集到一起,方便查看。
  • 解决节点出错导致不可访问,进而丢失日志的情况。

二、基于Loki的日志系统

在这里插入图片描述
Promtail是Loki的一个组件,通过DaemonSet在每一个节点上都有部署,负责收集Pod日志,以及给日志流加上Label,然后发送给Loki。Loki是一个可扩展、高可用、多租户的日志聚合系统。Loki 提供的日志查询语言,类似 Prometheus 的 PromQL,而且 Loki 支持 LogQL 查询直接转换为 Prometheus 指标。

在这里插入图片描述
Loki的架构:

在这里插入图片描述
Distributor(分配器)

  • 分配器服务负责处理客户端写入的日志。
  • 分配器通过gRPC和采集器进行通信。

Ingester(采集器)

  • 采集器服务负责将日志数据写入长期存储的后端(DynamoDB、S3、Cassandra等等)。
  • 采集器会校验采集的日志是否乱序。
  • 采集器验证接收到的日志行是按照时间戳递增的顺序接收的,否则日志行将被拒绝并返回错误。

Querier(查询器)

  • 查询器服务负责处理LogQL查询语句来评估存储在长期存储中的日志数据。

2.1 安装Loki

1、添加grafana repo

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

2、安装loki

helm upgrade --install loki grafana/loki-stack --set grafana.enabled=true,prometheus.enabled=true,prometheus.alertmanager.persistentVolume.enabled=false,prometheus.server.persistentVolume.enabled=false

3、修改grafana service为NodePort类型

kubectl edit svc loki-grafana -oyaml -n default

4、查看安装结果

在这里插入图片描述
4、部署应用程序

在这里插入图片描述

5、通过grafana service访问,查看日志

在这里插入图片描述

文章来源:https://blog.csdn.net/xianmingsu/article/details/135049670
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。