公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享
Grafana Loki 是什么
Loki是由Grafana Labs开源的一个水平可扩展、高可用性,多租户的日志聚合系统的日志聚合系统。它的设计初衷是为了解决在大规模分布式系统中,处理海量日志的问题。Loki采用了分布式的架构,并且与Prometheus、Grafana密切集成,可以快速地处理大规模的日志数据。该项目受 Prometheus 启发,官网地址:https://grafana.com/oss/loki/
- Promtail是代理,负责收集日志并将其发送给 Loki 。
- Loki 是主服务器,负责存储日志和处理查询。
- Grafana则 用于 UI 展示。
为什么使用 Grafana Loki?
- 入门非常简单:可以使用各种客户端从任何来源发送任何格式的日志
- 没有采集日志格式要求:提供了更大的灵活性以及在查询时格式化的选项
- 轻量级:相比ELK,Loki更加轻量级,因为它不需要一个单独的Elasticsearch集群来存储和索引日志数据。
- 高度可扩展性:Loki可以通过添加更多的Loki实例来实现水平扩展,这使得它更容易处理大量的日志数据。
- 与 Prometheus、Grafana 和 K8s 原生集成:可以在单个用户界面中无缝切换查询指标、日志等数据
- 根据日志生成告警:可以从日志行构建指标并生成告警
环境部署
1.创建文件夹
mkdir evaluate-loki
cd evaluate-loki
2.下载安装文件
wget https://raw.githubusercontent.com/grafana/loki/main/examples/getting-started/loki-config.yaml -O loki-config.yaml
wget https://raw.githubusercontent.com/grafana/loki/main/examples/getting-started/promtail-local-config.yaml -O promtail-local-config.yaml
wget https://raw.githubusercontent.com/grafana/loki/main/examples/getting-started/docker-compose.yaml -O docker-compose.yaml
3.在evaluate-loki目录,使用docker-compose启动服务
docker-compose up -d
可以看到相关组件已启动
4.访问http://localhost:3101/ready
进行验证,如果返回ready
则成功
使用 Grafana 进行查询验证
通过http://localhost:3000,访问Grafana来查询和观察 Loki 集群的日志数据,Grafana 已经默认把 Loki 配置为数据源。
访问expore,输入以下指令,查询容器evaluate-loki-flog-1的日期数据,这里用的语法是LogQL
语法
{container="evaluate-loki-flog-1"}
查询所有Get 请求日志数据
{container="evaluate-loki-flog-1"} |= "GET"
查询接口/engage/content/seize
的请求数据
{container="evaluate-loki_flog_1"} |= `/engage/content/seize`
更多示例请查看
https://grafana.com/docs/loki/latest/query/query_examples/