ubuntu filebeat怎样处理日志文件
导读:Ubuntu 上 Filebeat 处理日志的完整流程 一 核心概念与职责 Filebeat 是轻量级日志采集器,负责从本地文件读取日志、进行基础处理与发送;它不负责日志轮转与归档。 日志轮转 通常由 logrotate 或应用自身(如...
Ubuntu 上 Filebeat 处理日志的完整流程
一 核心概念与职责
- Filebeat 是轻量级日志采集器,负责从本地文件读取日志、进行基础处理与发送;它不负责日志轮转与归档。
- 日志轮转 通常由 logrotate 或应用自身(如 rsyslog)完成;Filebeat 会自动发现并继续读取被轮转后的新文件。
- 长期保留与归档 建议在 Elasticsearch 侧通过 ILM(Index Lifecycle Management) 或按日索引策略实现。
二 安装与配置文件位置
- 安装 Filebeat(APT):
- 更新索引并安装:sudo apt-get update & & sudo apt-get install filebeat
- 配置文件默认路径:/etc/filebeat/filebeat.yml
- 常用目录:
- 运行日志:/var/log/filebeat/filebeat.log
- 数据目录:/var/lib/filebeat/
- 服务管理:
- 启动/开机自启:sudo systemctl start filebeat & & sudo systemctl enable filebeat
- 查看状态/实时日志:sudo systemctl status filebeat、sudo journalctl -u filebeat -f
三 采集与输出配置示例
- 采集系统日志并发送到 Elasticsearch(按日索引):
- 配置示例:
filebeat.inputs: - type: log enabled: true paths: - /var/log/syslog - /var/log/auth.log output.elasticsearch: hosts: ["localhost:9200"] index: "filebeat-%{ [agent.version]} -%{ +yyyy.MM.dd} " - 验证并启动:
- 校验配置:sudo filebeat test config
- 启动服务:sudo systemctl restart filebeat
- 配置示例:
- 采集系统日志并发送到 Logstash(便于解析与增强):
- Filebeat 配置:
filebeat.inputs: - type: log enabled: true paths: - /var/log/syslog - /var/log/auth.log output.logstash: hosts: ["localhost:5044"] - Logstash 示例(/etc/logstash/conf.d/filebeat.conf):
input { beats { port => 5044 } } output { elasticsearch { hosts => ["localhost:9200"] index => "filebeat-logstash-%{ +yyyy.MM.dd} " } } - 启动顺序:Logstash → Filebeat(如需 Kibana 仪表盘,可运行 filebeat setup --dashboards)
- Filebeat 配置:
四 多日志按业务拆分索引
- 通过添加字段并使用条件索引,将不同域名或应用的日志写入不同索引:
filebeat.inputs: - type: log enabled: true paths: - /var/log/nginx/example.com.access.log fields: domain: example.com fields_under_root: true - type: log enabled: true paths: - /var/log/nginx/api.example.com.access.log fields: domain: api.example.com fields_under_root: true output.elasticsearch: hosts: ["localhost:9200"] indices: - index: "example-com-%{ +yyyy.MM.dd} " when.equals: domain: "example.com" - index: "api-example-com-%{ +yyyy.MM.dd} " when.equals: domain: "api.example.com" - 说明:也可结合 Logstash 做更复杂的解析与路由,再写入目标索引。
五 轮转归档与保留策略
- 轮转(由系统完成):
- 使用 logrotate 管理 Filebeat 自身日志(示例:/etc/logrotate.d/filebeat)
/var/log/filebeat/*.log { daily missingok rotate 7 compress notifempty create 640 root adm } - 测试与生效:sudo logrotate -f /etc/logrotate.d/filebeat
- 应用日志(如 /var/log/syslog、/var/log/auth.log)通常由 rsyslog 按系统策略轮转,Filebeat 会自动跟踪新文件。
- 使用 logrotate 管理 Filebeat 自身日志(示例:/etc/logrotate.d/filebeat)
- 归档与保留(在 Elasticsearch 侧完成):
- 使用 ILM 管理索引生命周期(示例策略:滚动更新与 30 天后删除)
PUT _ilm/policy/logstash-policy { "policy": { "phases": { "hot": { "actions": { "rollover": { "max_size": "50gb", "max_age": "7d" } } } , "delete": { "min_age": "30d", "actions": { "delete": { } } } } } } - 将策略绑定到索引模板或索引设置中,实现自动滚动与清理。
- 使用 ILM 管理索引生命周期(示例策略:滚动更新与 30 天后删除)
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu filebeat怎样处理日志文件
本文地址: https://pptw.com/jishu/769376.html
