Traefik监控系统搭建

本文详细介绍了如何使用Prometheus、Grafana、Promtail和Loki搭建Traefik的监控系统。通过配置Traefik以启用Metrics和Access Log,然后设置Prometheus和Loki的数据源,最终在Grafana中创建Dashboard展示监控数据。
摘要由CSDN通过智能技术生成

Traefik监控系统搭建

背景

  • 前边的文章Traefik学习中已经介绍了Traefik的使用,但是如果没有一个可视化的Traefik访问状态与Acces Log的Dashboard界面的话,对于一个网关来说实际上是不完整的,这篇文章就来介绍使用Prometheus + Grafana + Promtail+ Loki构建Traefik的监控中心
  • Prometheus是云原生时代事实上的系统(服务)状态监测标准,通过基于HTTP的pull方式采集时序数据,可以通过服务发现或者静态配置去获取要采集的目标服务器,支持单主节点工作,支持多种可视化图表及仪表盘–在本文中Prometheus用来收集Traefik Metrics数据
  • Grafana是一个开源的度量分析与可视化套件。 纯Javascript 开发的前端工具,通过访问库(如InfluxDB、Prometheus),展示自定义报表、显示图表等。Grafana的UI更加灵活,有丰富的插件,功能强大–在本文中Grafana用来展示来自Prometheus和Loki的数据
  • Promtail是一个日志收集的代理,它会将本地日志的内容发送到一个Loki实例,它通常部署到需要监视应用程序的每台机器/容器上。Promtail主要是用来发现目标、将标签附加到日志流以及将日志推送到Loki–本文中Promtail用来收集Traefik Access Log
  • Grafana Loki是一组可以组成一个功能齐全的日志堆栈组件,与其它日志系统不同的是,Loki只建立日志标签的索引而不索引原始日志消息,而是为日志数据设置一组标签,这意味着Loki的运营成本更低,效率也能提高几个数量级,一句话形容下Loki就是like Prometheus, but for logs–本文中Loki用来整合来自Promtail的日志数据

Traefik配置

  • 关于Traefik的配置,最关键的就是开启Metrics与Access Log的配置,静态配置文件traefik.toml如下

    [log]
      level = "WARN"
      format = "common"
      filePath = "/logs/traefik.log"
    [accessLog]
      filePath = "/logs/access.log"
      bufferingSize = 100
      format = "json"
      [accessLog.fields.names]
          "StartUTC" = "drop"
      [accessLog.filters]
        retryAttempts = true
        minDuration = "10ms"
    
    • 这里只展示日志相关的关键配置
    • StartUTC的设置是为了设置日志使用的时区时间,配合TZ环境变量使用
  • traefik部署的Docker Compose配置文件traefik.yaml如下:

    version: '3'
    services:
      reverse-proxy:
        image: traefik
        restart: always
        environment:
          - TZ=Asia/Shanghai
        ports:
          - "80:80"
          - "443:443"
        networks:
          - traefik
        volumes:
          - ./traefik.toml:/etc/traefik/traefik.toml
          - /var/run/docker.sock:/var/run/docker.sock
          - ./config/:/etc/traefik/config/:ro
          - ./acme.json:/letsencrypt/acme.json
          - ./logs:/logs/:rw
        container_name: traefik
        # 网关健康检查
        healthcheck:
          test: ["CMD-SHELL", "wget -q --spider --proxy off localhost:8080/ping || exit 1"]
          interval: 3s
          timeout: 5s
    # 创建外部网卡 docker network create traefik
    networks:
      traefik:
        external
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值