• 问题点
利用 promtail + loki + Grafana 搭建了个日志系统, 参考网上的教程与官方文档初步实现. 

记录一下其中一个关于多行日志处理的问题点.

  • 版本
docker-compose 安装, promtail拉取的是latest镜像, 1.5以前不可用(多行处理)
  • 实现
server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /etc/promtail/positions.yaml
  sync_period: 10

clients:
  - url: http://{你的HOST}:3100/loki/api/v1/push

scrape_configs:
  - job_name: go_vmp_server
    static_configs:
    - targets:
        - localhost
      labels:
        job: go_vmp_server
        app: go_vmp_server
        env: prod
        __path__: /data/log/test/*log
    pipeline_stages:
    - match:
        selector: '{job="go_vmp_server"}'
        stages:
          - multiline:
              firstline: '^\[\d{4}-\d{2}-\d{2}'
              max_wait_time: 3s

  • 注意点
以上是 promtail 的配置文件, 注意 缩进 与 正则 的匹配.

pipeline_stages:
	执行的pipeline步骤

match:
	解析阶段

selector:
	只有job = go_vmp_server 才会执行

stages
	一些执行阶段: regex/labels/timestamp/multiline 等等
	
其中 multiline 用于多行日志的解析
	firstline 指首行开头的正则表达式
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐