k8s1.26.5 部署loki-stack 收集pod 日志
  ArsYYS04oliO 2023年11月05日 80 0

标签(空格分隔): kubernetes系列


一:loki stack 的介绍

1.1 Loki 介绍

Loki 是一个可水平伸缩的、高可用的以及多租户的日志集中系统,有这么多功能,唯独没有全文检索。
在其简介中,自称是受到 Prometheus 的启发:仅保存和处理元数据,而对日志正文不闻不问。

和 EFK 类似,Loki Stack 也由采集端、服务端和交互端三个部分构成,其中采集端是可变的,
目前支持 Promtail、FluentBit 和 Fluentd 三种,服务端和交互端分别使用的是 Loki 和 Grafana。

Loki是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。
它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签。
项目受 Prometheus 启发,官方的介绍就是:Like Prometheus, but for logs.,
类似于 Prometheus 的日志系统。然后,日志数据本身被压缩并存储在对象存储(例如S3或GCS)
中的块中,甚至存储在文件系统本地。 小索引和高度压缩的块简化了操作,并大大降低了Loki的成本。

1.2 Loki stack

Promtail
Promtail 是用来将容器日志发送到 Loki 或者 Grafana 服务上的日志收集工具,
该工具主要包括发现采集目标以及给日志流添加上 Label 标签,然后发送给 Loki,
另外 Promtail 的服务发现是基于 Prometheus 的服务发现机制实现的。

Loki
Loki 是可以水平扩展、高可用以及支持多租户的日志聚合系统,
使用了和 Prometheus 相同的服务发现机制,将标签添加到日志流中而不是构建全文索引。
因此,从 Promtail 接收到的日志和应用的 metrics 指标就具有相同的标签集。
它不仅提供了更好的日志和指标之间的上下文切换,还避免了对日志进行全文索引。

Grafana
Grafana 是一个用于监控和可视化观测的开源平台,支持非常丰富的数据源,
在 Loki 技术栈中它专门用来展示来自 Prometheus 和 Loki 等数据源的时间序列数据。
还允许进行查询、可视化、报警等操作,可以用于创建、探索和共享数据 Dashboard

image.png image.png

二:loki stack 的安装

采用helm 来安装:
参考:
https://artifacthub.io/packages/helm/grafana/loki-stack


添加仓库

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

安装:
helm upgrade --install loki --namespace=loki-stack grafana/loki-stack --set fluent-bit.enabled=true,promtail.enabled=false

image.png

下载包:
 helm fetch grafana/loki-stack
 
 tar -zxvf loki-stack-2.9.11.tgz

image.png

准备镜像
cd loki-stack/
cat values.yaml |grep image

image.png

下载镜像:

nerdctl -n k8s.io image pull bats/bats:1.8.2
nerdctl -n k8s.io image pull grafana/logstash-output-loki:1.0.1
nerdctl -n k8s.io image pull quay.io/kiwigrid/k8s-sidecar:1.19.2
安装:
helm install loki ./loki-stack --set grafana.enabled=true -n loki-stack --create-namespace

image.png

kubectl get pod -n loki-stack 

image.png

开放 grafana 外部访问:

kubectl port-forward --namespace loki-stack service/loki-grafana 3000:80


kubectl edit svc loki-grafana -n loki-stack  ### 改ClusterIP为NodePort

kubectl get svc -n loki-grafana 

image.png

查看grafana的密码:
   kubectl get secret --namespace loki-stack loki-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
----

VPLqXHCeE9eDfW6heDf3p7TMVlBqVDfyu3wDd8Pw
----

image.png

打开grafana 的web 

http://172.16.10.11:31065
admin/VPLqXHCeE9eDfW6heDf3p7TMVlBqVDfyu3wDd8Pw

image.png image.png

具体可用查出某个pod 的生成日志

image.png

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  WB6LihfPs90J   2023年11月22日   25   0   0 ciPoddockerDockerciPod
  LKGhYQdenm6q   2023年11月19日   18   0   0 PodPod
ArsYYS04oliO