美文网首页
docker-compose安装使用loki+promtail+

docker-compose安装使用loki+promtail+

作者: SailSea | 来源:发表于2020-07-20 19:46 被阅读0次
    image.png

    背景

    Loki的第一个稳定版本于2019年11月19日发布,是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。 Grafana 对 Loki 的描述如下:

    • Loki: like Prometheus, but for logs. Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus. It is designed to be very cost effective and easy to operate. It does not index the contents of the logs, but rather a set of labels for each log stream.

    简单说,Loki 是专门用于聚集日志数据,重点是高可用性和可伸缩性。与竞争对手不同的是,它确实易于安装且资源效率极高。
    目前运维大概上百个节点,虽然系统是统一的基线版本且使用docker运行应用,平时相安无事,但变更后的问题排查仍有点心有余悸。对一个火热的日志系统elk也有浅尝辄止,奈何对于非核心应用,多耗散一份算力意味着成本增加和利润的减少,elk对于小团队来说,还是过于笨重。趁着近日的疫情无法外出,调研后将 Loki 上线了生产,可以说是完美契合了中小团队对日志平台的需求。

    介绍

    与其他日志聚合系统相比,Loki具有下面的一些特性:
    不对日志进行全文索引(vs ELK技)。通过存储压缩非结构化日志和仅索引元数据,Loki 操作起来会更简单,更省成本。
    通过使用与 Prometheus 相同的标签记录流对日志进行索引和分组,这使得日志的扩展和操作效率更高。
    特别适合储存 Kubernetes Pod 日志; 诸如 Pod 标签之类的元数据会被自动删除和编入索引。
    受 Grafana 原生支持。
    Loki 由以下3个部分组成:

    • loki是主服务器,负责存储日志和处理查询。
    • promtail是代理,负责收集日志并将其发送给 loki 。
    • Grafana用于 UI 展示。

    安装

    Docker-compose.yml 可以参考Loki文档介绍,开箱即用。

    version: "3"
    
    networks:
      loki:
    
    services:
      loki:
        image: grafana/loki:1.5.0
        ports:
          - "3100:3100"
        command: -config.file=/etc/loki/local-config.yaml
        networks:
          - loki
    
      promtail:
        image: grafana/promtail:1.5.0
        volumes:
          - /Users/hfy/work/loki/:/var/log/
        command: -config.file=/etc/promtail/docker-config.yaml
        networks:
          - loki
    
      grafana:
        image: grafana/grafana:latest
        ports:
          - "3000:3000"
        networks:
          - loki
    

    然后直接使用 docker-compose 启动即可:

    docker-compose up -d
    

    使用

    安装完成后,访问节点的 3000 端口访问 grafana,默认情况下使用(admin:admin)访问 -> 选择添加数据源:
    在数据源列表中选择Loki,配置 Loki 源地址:


    image.png

    集容器日志

    docker安装loki驱动收

    docker plugin install  grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
    

    然后配置需要收集日志的服务docker-compose文件

        logging:
          driver: loki
          options:
            loki-url: http://loki:3100/api/prom/push"
            loki-retries: "5"
            loki-batch-size: "400"
    

    效果:


    image.png

    目前支持以下标签匹配运算符:

    • =等于
    • !=不相等
    • =~正则表达式匹配
    • !~不匹配正则表达式

    参考:https://blog.kelu.org/tech/2020/01/31/grafana-loki-for-logging-aggregation.html

    相关文章

      网友评论

          本文标题:docker-compose安装使用loki+promtail+

          本文链接:https://www.haomeiwen.com/subject/droykktx.html