一、Loki是什么
https://grafana.com/docs/loki/latest/overview/
对Loki的认识可以Google搜一搜,网上的介绍基本上都差不多
https://zhuanlan.zhihu.com/p/153415749
- loki是主服务器,负责存储日志和处理查询。
- promtail是专为loki定制的代理,负责收集日志并将其发送给 loki 。
- Grafana用于 UI展示。
Grafana,在部署Prometheus-Operator时已经部署了,所以下面只需要在平台上安装Loki和Promtail组件就可以了。
二、怎么安装Loki
1. 安装loki
https://grafana.github.io/loki/charts/
value.yaml 示例
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
hosts:
- host: loki.3incloud.cn
paths:
- /
tls:
- secretName: tls-3incloudcn
hosts:
- loki.3incloud.cn
config:
table_manager:
retention_deletes_enabled: true
retention_period: 1344h
persistence:
enabled: true
accessModes:
- ReadWriteOnce
size: 400Gi
resources:
limits:
cpu: 4000m
memory: 8000Mi
requests:
cpu: 2000m
memory: 4000Mi
serviceMonitor:
enabled: true
additionalLabels:
release: g-kube-prometheus-stack
retention_deletes_enabled和retention_period配置的作用是日志保留时间,需要是168的倍数 https://my.oschina.net/u/1787735/blog/4429161
安装
# 创建命名空间loki
kubectl create ns loki
helm upgrade --install loki loki/loki -n loki -f value.yaml
2. 安装promtail
默认安装既能收集Pod日志,具体配置方法还没学会,参考官方文档https://grafana.com/docs/loki/latest/
三、查询日志
1. Grafana中新增Loki数据库
2. 按照Label查询容器日志
我们想要查询ingress-nginx的日志,我们选择Pod的Label就能加载出对应的日志。
这个和在控制台查看日志是不是异曲同工,能将一组容器的日志归并到一个控制台上。
3. 添加Loki Dashboard
- https://grafana.com/grafana/dashboards/12019
- https://grafana.com/grafana/dashboards/12611
12611面板需要安装ui插件 grafana-piechart-panel
下面通过更新prometheus-operator安装包中的grafana参数来安装grafana-piechart-panel插件,同时,在之前的安装中,没有为grafana挂载存储,在每次升级grafana pod后,一些配置也丢失了,这次更新,引入了persistence ,这样,我们在grafana上导入的视图等配置就能持久化了。
grafana:
plugins:
- grafana-piechart-panel
persistence:
enabled: true
storageClassName: glusterfs-storage
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
hosts:
- grafana.3incloud.cn
path: /
tls:
- secretName: tls-3incloudcn
hosts:
- grafana.3incloud.cn
Next
看看怎么配置 promtail?随心所欲的收集日志。