John Stone

1996-04-04

中国 河北

filebeat抓取Springboot日志的真正正确的配置

芦苇小白

Feb 4, 2021 4:09:50 PM 599

简要说明

主要解决两个问题:

  1. 日志换行问题
  2. 并发日志顺序错乱问题

    配置如下

    修改filebeat.yml文件
filebeat:
  inputs:
    # 文件系统日志抓取
    - type: log
      enabled: true
      paths:
        - /data/logs/test-file.log
      tags: ["file"]
      # 严格定义每条日志开始正则,解决异常日志换行问题。
      multiline:
        pattern: ^[0-9]{4}
        negate: true
        match: after
        timeout: 3s

    # 试卷仓库日志抓取
    - type: log
      enabled: true
      paths:
        - /data/logs/test-store.log
      tags: ["store"]
      multiline:
        pattern: ^[0-9]{4}
        negate: true
        match: after
        timeout: 3s

    # 用户中心日志抓取
    - type: log
      enabled: true
      paths:
        - /data/logs/test-uc.log
      tags: ["uc"]
      multiline:
        pattern: ^[0-9]{4}
        negate: true
        match: after
        timeout: 3s
filebeat.config:
 modules:
   path: ${path.config}/modules.d/*.yml
   reload.enabled: false

processors:
  # 自定义字段 - 取日志中的时间
  - script:
      lang: javascript
      id: my_filter
      tag: enable
      source: >
        function process(event) {
            var str= event.Get("message");
            var time =str.substr(0, 23);
            event.Put("log_time",time);
        }
  # 将自定义的字段替换到系统默认时间戳,解决顺序错乱问题(写入时间与抓取时间不一致导致)
  - timestamp:
      field: log_time
      timezone: Asia/Shanghai
      layouts:
        - '2006-01-02 15:04:05'
        - '2006-01-02 15:04:05.999'
      test:
        - '2019-06-22 16:33:51'
  - add_cloud_metadata: ~
  - add_docker_metadata: ~

output.elasticsearch:
  hosts: '${ELASTICSEARCH_HOSTS:elasticsearch:9200}'
  username: '${ELASTICSEARCH_USERNAME:}'
  password: '${ELASTICSEARCH_PASSWORD:}'
拖动滑块验证
验证通过 验证失败

全部评论