标签(空格分隔): 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
二: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
下载包:
helm fetch grafana/loki-stack
tar -zxvf loki-stack-2.9.11.tgz
准备镜像
cd loki-stack/
cat values.yaml |grep image
下载镜像:
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
kubectl get pod -n loki-stack
开放 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
查看grafana的密码:
kubectl get secret --namespace loki-stack loki-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
----
VPLqXHCeE9eDfW6heDf3p7TMVlBqVDfyu3wDd8Pw
----
打开grafana 的web
http://172.16.10.11:31065
admin/VPLqXHCeE9eDfW6heDf3p7TMVlBqVDfyu3wDd8Pw
具体可用查出某个pod 的生成日志