ubuntu filebeat日志存储策略

Ubuntu 上 Filebeat 的日志存储策略一 策略总览采集侧(Filebeat 自身日志):使用 logrotate 管理 /var/log/filebeat/filebeat.log,按天轮转、保留7天、压缩归档,避免磁盘被无限增长。业务侧(被采集的日志文件):由 logrotate 或应用自身按大小/时间轮转;Filebeat 通过 inode/指纹 跟踪文件,配合 clean_i

Ubuntu 上 Filebeat 的日志存储策略

一 策略总览

  • 采集侧(Filebeat 自身日志):使用 logrotate 管理 /var/log/filebeat/filebeat.log,按天轮转、保留7天、压缩归档,避免磁盘被无限增长。
  • 业务侧(被采集的日志文件):由 logrotate 或应用自身按大小/时间轮转;Filebeat 通过 inode/指纹 跟踪文件,配合 clean_inactive / ignore_older 等参数自动发现新文件并清理过期状态,避免重复采集与状态膨胀。
  • 存储侧(Elasticsearch/Logstash/Redis):在 Elasticsearch 使用 ILM(索引生命周期管理) 做热-温-冷-删除的滚动与过期;若经 LogstashRedis 中转,存储与保留策略在后端落地。Filebeat 本身不负责长期归档与删除。

二 Filebeat 自身日志轮转配置(Ubuntu 推荐 logrotate)

  • 创建轮转配置
    • 新建文件 /etc/logrotate.d/filebeat,内容示例:
      /var/log/filebeat/*.log {
          daily
          rotate 7
          compress
          missingok
          notifempty
          create 0640 root root
          postrotate
              # 通知 Filebeat 重新打开日志文件(若使用 filebeat.pid)
              if [ -f /var/run/filebeat/filebeat.pid ]; then
                  kill -USR1 "$(cat /var/run/filebeat/filebeat.pid)"
              fi
              # 若 systemd 管理且无 pid 文件,可用:systemctl kill -s USR1 filebeat
          endscript
      }
      
  • 手动测试与生效
    • 测试:sudo logrotate -f /etc/logrotate.d/filebeat
    • 验证:ls -lh /var/log/filebeat/,应出现按日分割与压缩的旧日志。
  • 说明
    • 若采用 systemd 且未生成 filebeat.pid,可在 postrotate 中使用 systemctl kill -s USR1 filebeat 触发重新打开日志。
    • 不建议仅依赖 Filebeat 内置文件日志的 keepfiles/rotation(版本支持有限且灵活性不足),生产环境优先使用 logrotate

三 被采集日志的采集与保留策略

  • 基本采集示例(/etc/filebeat/filebeat.yml)
    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /var/log/*.log
      # 可按需添加字段、标签、JSON 解析等
    output.elasticsearch:
      hosts: ["localhost:9200"]
      index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}"
    # 或使用 Logstash/Redis 中转
    # output.logstash: hosts: ["localhost:5044"]
    # output.redis: hosts: ["127.0.0.1:6379"]; key: "filebeat"
    
  • 状态与过期清理(避免注册表膨胀)
    • 合理设置 clean_inactive(如:24h/48h),清理长时间未更新的文件状态。
    • 结合 ignore_older(如:72h)忽略过久历史文件,减少回溯采集。
    • 使用 close_inactive(如:5m)及时关闭闲置文件句柄,释放资源。
  • 多路径与多类型
    • 为不同业务日志分别配置 pathstags,便于后续在 ILM/索引模板中区分治理。

四 存储与归档策略(Elasticsearch 与中转链路)

  • Elasticsearch ILM 示例(热阶段滚动、30 天后删除)
    PUT _ilm/policy/filebeat-policy
    {
      "policy": {
        "phases": {
          "hot": {
            "actions": {
              "rollover": {
                "max_size": "50gb",
                "max_age": "7d"
              }
            }
          },
          "delete": {
            "min_age": "30d",
            "actions": { "delete": {} }
          }
        }
      }
    }
    
    • 将策略绑定到索引模板/索引生命周期中,实现按大小或时间自动滚动与过期删除。
  • 经 Logstash 或 Redis 中转
    • 若输出到 Redis(如:output.redis: { hosts: ["127.0.0.1:6379"], key: "filebeat" }),Redis 仅做缓冲队列,需在 Logstash 或下游 Elasticsearch 侧设置索引与保留策略。
  • 关键原则
    • Filebeat 不负责长期存储与归档,长期保留、冷热分层、快照与合规删除应在 Elasticsearch/存储后端 实现;中转组件(Logstash/Redis)侧重缓冲与处理。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1453324.html

(0)
派派
上一篇 2025-11-17
下一篇 2025-11-17

发表回复

登录后才能评论