阅读量:3
Filebeat日志分割的常见场景与做法
一 概念澄清
- Filebeat自身日志分割:指对 Filebeat 进程输出的运行日志进行按大小或按时间切分与保留。
- 被采集日志的分割:指对应用/系统产生的日志文件(如 /var/log/ 下的文件)进行轮转,Filebeat 负责持续采集,不负责切割文件。
- 索引/数据按时间或业务分割:指将写入 Elasticsearch 的索引按天、按月或按业务维度拆分,便于检索与保留策略管理。
二 对Filebeat自身日志进行分割
- 在 Filebeat 配置中开启文件日志并设定保留策略,例如保留最近 7 个文件:
logging:
file:
enabled: true
path: /var/log/filebeat/filebeat
name: filebeat
keepfiles: 7
permissions: 640
- 说明:上述配置会让 Filebeat 将自身日志写入 /var/log/filebeat/filebeat.log,并按策略自动轮转与清理旧文件。该方式属于 Filebeat 内置的日志文件管理,不涉及采集路径的日志切割。
三 对被采集日志进行分割(系统级轮转)
- 使用 logrotate 对应用日志进行按天轮转、压缩与保留(示例针对 Filebeat 自身日志目录,其他日志路径同理):
- 新建配置:
sudo vi /etc/logrotate.d/filebeat
- 写入内容:
/var/log/filebeat/*.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root root
}
参数含义:daily(每天轮转)、rotate 7(保留 7 份)、compress(压缩旧日志)、create(轮转后重建文件并设定权限/属主)。 3) 手动测试与生效:
sudo logrotate -f /etc/logrotate.d/filebeat
sudo systemctl restart filebeat
- 说明:Filebeat 不负责切割应用日志,通常由 logrotate 或应用自身按策略轮转;Filebeat 会自动识别并继续跟踪新文件。
四 将数据写入按时间或业务分割的索引
- 直接由 Filebeat 写入按月的索引(示例按月拆分):
setup.template.name: "nginx"
setup.template.pattern: "nginx-*"
setup.template.enabled: false
setup.template.overwrite: true
output.elasticsearch:
hosts: ["localhost:9200"]
index: "nginx-access-%{[beat.version]}-%{+yyyy.MM}"
- 通过 Logstash 按业务字段拆分索引(示例按项目拆分并写入按天索引):
# Filebeat
filebeat.inputs:
- type: log
enabled: true
paths:
- /opt/logs/qfzs-*/log_info.log
fields:
project: "assistant"
- type: log
enabled: true
paths:
- /opt/logs/qfzs-*/log_info.log
fields:
project: "qfzs-shop"
output.logstash:
hosts: ["localhost:5044"]
# Logstash
input { beats { port => 5044 } }
filter {
if "assistant" in [fields][project] { mutate { add_field => { "index_prefix" => "filebeat-assistant" } } }
else if "qfzs-shop" in [fields][project] { mutate { add_field => { "index_prefix" => "filebeat-qfzs-shop" } } }
else { mutate { add_field => { "index_prefix" => "filebeat-default" } } }
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "%{[index_prefix]}-%{+YYYY.MM.dd}"
}
}
- 说明:前者通过 Filebeat 的 index 模板直接按月写入;后者利用 fields 标记业务,由 Logstash 动态选择索引前缀,实现按业务与时间的多维拆分。
以上就是关于“Filebeat如何进行日志分割”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm