- 首页 >
- 问答 >
-
智能运维 >
- ubuntu filebeat如何管理日志文件
ubuntu filebeat如何管理日志文件
小樊
42
2025-11-23 07:53:52
Ubuntu 上 Filebeat 日志文件管理
一 管理范围与总体原则
- 需要区分两类日志:
- Filebeat 自身运行日志:默认写入 /var/log/filebeat/filebeat.log,用于排查采集问题。
- 被采集的业务日志:如 /var/log/syslog、/var/log/nginx/*.log 等,由应用或系统按策略轮转,Filebeat 负责读取与发送。
- 角色边界:
- 日志分割/轮转通常由系统工具(如 logrotate)或应用自身完成;Filebeat 不直接“切割”日志,但能自动感知并继续读取新文件。
- 长期留存与归档建议在 Elasticsearch 侧通过 ILM(索引生命周期管理) 或按日索引策略实现。
二 Filebeat 自身日志轮转与调试
- 查看与实时跟踪:
- 查看服务日志:sudo tail -f /var/log/filebeat/filebeat.log
- 查看 systemd 日志:sudo journalctl -u filebeat.service -f
- 调整日志级别与输出到文件(/etc/filebeat/filebeat.yml):
- 示例:
- logging.level: debug
- logging.to_files: true
- logging.files:
- path: /var/log/filebeat
- name: filebeat
- keepfiles: 7
- permissions: 0644
- 使配置生效:sudo systemctl restart filebeat
- 使用 logrotate 轮转 Filebeat 自身日志(/etc/logrotate.d/filebeat):
- 示例:
- /var/log/filebeat/*.log {
- daily
- missingok
- rotate 7
- compress
- notifempty
- create 640 root adm
- postrotate
- systemctl kill -s USR1 filebeat || true # 触发重新打开日志文件
- endscript
- }
- 测试:sudo logrotate -f /etc/logrotate.d/filebeat
- 说明:
- Filebeat 默认能感知被采集日志的轮转(如按时间/大小切割),通常无需额外通知;若遇到未接续采集,可在 postrotate 中使用 systemctl kill -s USR1 filebeat 触发重新打开文件描述符。
三 被采集日志的轮转与权限
- 使用 logrotate 管理业务日志(示例:/etc/logrotate.d/myapp):
- /var/log/myapp/*.log {
- daily
- rotate 7
- compress
- missingok
- notifempty
- create 640 root adm
- postrotate
- systemctl kill -s USR1 filebeat || true
- endscript
- }
- 要点:
- 确保 Filebeat 对日志目录与文件具备读取权限(如属主/属组与权限配置正确)。
- 测试:sudo logrotate -f /etc/logrotate.d/myapp
- 若业务日志由应用或 rsyslog 按日期/大小切割,Filebeat 会自动发现新文件并继续采集,无需额外配置。
四 长期留存与归档策略
- 直连 Elasticsearch:
- 在 filebeat.yml 使用按日索引:
- output.elasticsearch:
- hosts: [“localhost:9200”]
- index: “filebeat-%{[agent.version]}-%{+yyyy.MM.dd}”
- 在 ES 中配置 ILM(示例):
- PUT _ilm/policy/logstash-policy
- {
- “policy”: {
- “phases”: {
- “hot”: {
- “actions”: {
- “rollover”: { “max_size”: “50gb”, “max_age”: “7d” }
- }
- },
- “delete”: {
- “min_age”: “30d”,
- “actions”: { “delete”: {} }
- }
- }
- }
- }
- 将策略绑定到索引模板,实现滚动、归档与删除。
- 经由 Logstash:
- 在 Logstash 输出中使用索引名模板(如按域名或业务划分),并在 ES 侧为对应索引应用 ILM。