Loki是一个水平可扩展,高可用性,支持多租户的日志聚合系统,使用了和 Prometheus 相同的服务发现机制,将标签添加到日志流中而不是构建全文索引,而是为每个日志流编制一组标签。
Grafana 是一个用于监控和可视化观测的开源平台,支持非常丰富的数据源,支持Prometheus 和 Loki 等数据源的时间序列数据。
Grafana和Loki的组合使得我们日志收集聚合简单高效,而且查看起来更接近在控制台实时查看日志。
Loki由3个组成部分组成:
- loki 是主服务器,负责存储日志和处理查询。
- promtail 是代理,发现采集目标以及给日志流添加上 Label 标签,然后发送给 Loki,也可以选择fluent-bit。
- 用户界面的Grafana。
部署方式
由于我们服务有同时运行在k8s集群上和ECS服务器上,所以规划Loki server使用helm部署在k8s中,grafana也部署在k8s中,promtail部署在k8s和其他ECS服务器上以docker方式运行。
Loki和grafana通过ingress暴露服务。
1. 安装helm
wget https://get.helm.sh/helm-v3.3.4-linux-amd64.tar.gztar zxf helm-v3.3.4-linux-amd64.tar.gzmv linux-amd64/helm /usr/bin/helm version # 查看helm 版本
添加Loki源
helm repo add loki https://grafana.github.io/loki/charts && helm repo updatehelm search repo loki
![91683cedf510b54c1f0a0a6a92d3ba2b.png](https://img-blog.csdnimg.cn/img_convert/91683cedf510b54c1f0a0a6a92d3ba2b.png)