5分钟快速体验下一代轻量级日志分析系统 Loki

Grafana Loki 是什么

Loki是由Grafana Labs开源的一个水平可扩展、高可用性,多租户的日志聚合系统的日志聚合系统。它的设计初衷是为了解决在大规模分布式系统中,处理海量日志的问题。Loki采用了分布式的架构,并且与Prometheus、Grafana密切集成,可以快速地处理大规模的日志数据。该项目受 Prometheus 启发,官网地址: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`
    

    更多示例请查看

    grafana.com/docs/loki/l…