温馨提示×

Filebeat如何自定义日志收集规则

小樊
51
2025-08-29 02:59:10
栏目: 编程语言

自定义Filebeat日志收集规则主要通过修改配置文件filebeat.yml实现,以下是关键配置项及示例:

  1. 指定日志路径
    filebeat.inputs中通过paths定义需采集的日志文件路径,支持通配符(如/var/log/*.log)。

    filebeat.inputs:  
    - type: log  
      enabled: true  
      paths:  
        - /var/log/nginx/*.log  
    
  2. 过滤日志内容

    • 包含/排除特定行:通过include_linesexclude_lines配置。
      include_lines: ['^ERROR', '^WARN']  
      exclude_lines: ['^DEBUG']  
      
    • 多行日志合并:通过multiline配置合并多行日志(如Java堆栈跟踪)。
      multiline:  
        pattern: '^\['  
        negate: true  
        match: after  
      
  3. 添加自定义字段
    使用fieldsadd_fields处理器向日志事件添加元数据。

    processors:  
    - add_fields:  
        fields:  
          environment: production  
          app_id: myapp  
    
  4. 日志解析与处理

    • 解析JSON日志:使用decode_json_fields处理器提取JSON字段。
      processors:  
      - decode_json_fields:  
          fields: ["message"]  
          target: ""  
      
    • 提取结构化数据:通过dissect处理器按正则表达式解析非JSON日志。
      processors:  
      - dissect:  
          tokenizer: '%{timestamp} %{loglevel} %{message}'  
          field: "message"  
      
  5. 输出配置
    指定日志发送目标(如Elasticsearch、Logstash),并设置索引名称等参数。

    output.elasticsearch:  
      hosts: ["localhost:9200"]  
      index: "custom-logs-%{+yyyy.MM.dd}"  
    
  6. 高级配置

    • 动态索引模板:通过setup.template配置索引分片、压缩等参数。
    • 文件状态管理:通过ignore_olderclose_older等参数控制文件保留和关闭策略。

生效步骤
修改配置后,重启Filebeat服务使规则生效,并通过日志或监控命令验证配置正确性。

参考来源:

0