Filebeat如何进行日志归档
导读:Filebeat日志归档的正确做法 核心原则 Filebeat 的职责是采集与转发日志,本身不负责长期存储与归档。常见做法是:将日志发送到 Elasticsearch 或 Logstash,由后端完成索引滚动、冷热分层、归档与删除;若需本...
Filebeat日志归档的正确做法
核心原则
- Filebeat 的职责是采集与转发日志,本身不负责长期存储与归档。常见做法是:将日志发送到 Elasticsearch 或 Logstash,由后端完成索引滚动、冷热分层、归档与删除;若需本地留存,再配合系统的 logrotate 或 Filebeat 自身的日志轮转能力管理采集器自身日志。
方案一 使用 Elasticsearch ILM 实现自动归档与删除
- 适用场景:日志进入 Elasticsearch 后,需要按时间/大小自动滚动、转入温冷阶段并最终删除。
- 关键步骤:
- 在 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": { } } } } } } - 创建索引模板并绑定策略(索引模式需与 Filebeat 实际写入的索引匹配,示例为 filebeat-*):
PUT _template/logstash-template { "index_patterns": ["filebeat-*"], "settings": { "number_of_shards": 1, "number_of_replicas": 1, "index.lifecycle.name": "logstash-policy" } } - Filebeat 配置按日期写入索引(ILM 要求写入到别名为写入别名,由 rollover 管理实际索引名):
output.elasticsearch: hosts: ["localhost:9200"] index: "filebeat-%{ [agent.version]} -%{ +yyyy.MM.dd} " - 部署后由 ILM 自动滚动与清理,无需手动删除旧索引。
- 在 Elasticsearch 创建 ILM 策略(示例保留 30 天,滚动条件为 50GB 或 7 天):
方案二 输出到 Logstash 再由下游归档
- 适用场景:需要在 Logstash 做解析、脱敏、分流后再写入 Elasticsearch 或其他存储(如 HDFS、S3)。
- 配置要点:
- Filebeat 输出到 Logstash:
output.logstash: hosts: ["localhost:5044"] - 在 Logstash 中写入 Elasticsearch 时启用 ILM(通过索引模板/ILM 策略),或写入对象存储归档(使用 S3 输出插件等)。该方式把归档策略下沉到 Logstash/下游存储,Filebeat 仍只负责采集与转发。
- Filebeat 输出到 Logstash:
方案三 本地归档与保留(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_size、queue.mem.events、max_concurrent_files,避免资源占用过高。
- 定期查看磁盘:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Filebeat如何进行日志归档
本文地址: https://pptw.com/jishu/753165.html
