首页主机资讯Filebeat如何进行日志归档

Filebeat如何进行日志归档

时间2025-11-21 12:15:03发布访客分类主机资讯浏览338
导读:Filebeat日志归档的正确做法 核心原则 Filebeat 的职责是采集与转发日志,本身不负责长期存储与归档。常见做法是:将日志发送到 Elasticsearch 或 Logstash,由后端完成索引滚动、冷热分层、归档与删除;若需本...

Filebeat日志归档的正确做法

核心原则

  • Filebeat 的职责是采集与转发日志,本身不负责长期存储与归档。常见做法是:将日志发送到 ElasticsearchLogstash,由后端完成索引滚动、冷热分层、归档与删除;若需本地留存,再配合系统的 logrotate 或 Filebeat 自身的日志轮转能力管理采集器自身日志。

方案一 使用 Elasticsearch ILM 实现自动归档与删除

  • 适用场景:日志进入 Elasticsearch 后,需要按时间/大小自动滚动、转入温冷阶段并最终删除。
  • 关键步骤:
    1. 在 Elasticsearch 创建 ILM 策略(示例保留 30 天,滚动条件为 50GB 或 7 天):
      PUT _ilm/policy/logstash-policy
      {
      
        "policy": {
      
          "phases": {
      
            "hot": {
      
              "actions": {
      
                "rollover": {
      
                  "max_size": "50gb",
                  "max_age": "7d"
                }
      
              }
      
            }
      ,
            "delete": {
      
              "min_age": "30d",
              "actions": {
       "delete": {
      }
       }
      
            }
      
          }
      
        }
      
      }
      
      
    2. 创建索引模板并绑定策略(索引模式需与 Filebeat 实际写入的索引匹配,示例为 filebeat-*):
      PUT _template/logstash-template
      {
      
        "index_patterns": ["filebeat-*"],
        "settings": {
      
          "number_of_shards": 1,
          "number_of_replicas": 1,
          "index.lifecycle.name": "logstash-policy"
        }
      
      }
      
      
    3. Filebeat 配置按日期写入索引(ILM 要求写入到别名为写入别名,由 rollover 管理实际索引名):
      output.elasticsearch:
        hosts: ["localhost:9200"]
        index: "filebeat-%{
      [agent.version]}
      -%{
      +yyyy.MM.dd}
      "
      
    4. 部署后由 ILM 自动滚动与清理,无需手动删除旧索引。

方案二 输出到 Logstash 再由下游归档

  • 适用场景:需要在 Logstash 做解析、脱敏、分流后再写入 Elasticsearch 或其他存储(如 HDFS、S3)。
  • 配置要点:
    • Filebeat 输出到 Logstash:
      output.logstash:
        hosts: ["localhost:5044"]
      
    • 在 Logstash 中写入 Elasticsearch 时启用 ILM(通过索引模板/ILM 策略),或写入对象存储归档(使用 S3 输出插件等)。该方式把归档策略下沉到 Logstash/下游存储,Filebeat 仍只负责采集与转发。

方案三 本地归档与保留(Filebeat 自身日志与采集文件)

  • 采集文件轮转(应用侧):由应用或系统按时间/大小滚动(如 logback 的 TimeAndSizeBasedRollingPolicy),Filebeat 继续跟踪新文件,无需额外配置。
  • Filebeat 自身日志轮转(系统级推荐):使用 logrotate 管理 /var/log/filebeat/filebeat.log,示例:
    /var/log/filebeat/*.log {
    
      daily
      rotate 7
      compress
      missingok
      notifempty
      create 640 root adm
      postrotate
        kill -USR1 $(cat /var/run/filebeat/filebeat.pid)  # 通知Filebeat重新打开日志文件
      endscript
    }
        
    
  • Filebeat 内置日志轮转(可选):
    logging:
      file:
        path: /var/log/filebeat/filebeat.log
        name: filebeat
        keepfiles: 7
        rotation.period: 24h
    
  • 说明:上述做法仅管理 Filebeat 自身运行日志,业务日志的归档仍应依赖后端(如 Elasticsearch ILM)或应用侧轮转。

验证与运维要点

  • 配置校验与运行监控:
    • 校验配置:sudo filebeat test config
    • 查看服务状态:sudo systemctl status filebeat
    • 实时查看日志:sudo journalctl -u filebeat -f
  • 存储与性能:
    • 定期查看磁盘:df -h
    • 调整批量与并发:bulk_max_sizequeue.mem.eventsmax_concurrent_files,避免资源占用过高。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Filebeat如何进行日志归档
本文地址: https://pptw.com/jishu/753165.html
Filebeat如何进行日志查询 Filebeat如何进行日志脱敏

游客 回复需填写必要信息