ubuntu中filebeat如何进行日志分析
导读:在 Ubuntu 上使用 Filebeat 进行日志分析 一 架构与准备 典型流程:Filebeat(采集)→ Elasticsearch(存储与检索)→ Kibana(可视化与查询)。Filebeat 负责读取本地日志文件并把事件发送到...
在 Ubuntu 上使用 Filebeat 进行日志分析
一 架构与准备
- 典型流程:Filebeat(采集)→ Elasticsearch(存储与检索)→ Kibana(可视化与查询)。Filebeat 负责读取本地日志文件并把事件发送到后端;Elasticsearch 建立索引存储事件;Kibana 提供 Discover、Dashboard 等能力做分析与展示。若暂时没有 ES/Kibana,也可将日志输出到 Logstash 或 控制台 做中转与调试。
二 安装与最小可用配置
- 安装 Filebeat(以 8.x 为例,适配 Ubuntu/Debian):
- 下载并安装 .deb 包:sudo dpkg -i filebeat-8.x.x-amd64.deb
- 启动与开机自启:sudo systemctl start filebeat & & sudo systemctl enable filebeat
- 最小配置 filebeat.yml(采集系统日志并输出到本机 ES):
- 编辑:sudo vim /etc/filebeat/filebeat.yml
- 输入配置:
- filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
- type: log
enabled: true
paths:
- output.elasticsearch:
- hosts: [“http://localhost:9200”]
- filebeat.inputs:
- 验证与导入:
- 检查服务状态:sudo systemctl status filebeat
- 首次导入 Kibana 索引模式:在 Kibana → Stack Management → Index Patterns 创建以 filebeat-* 开头的索引模式,时间字段选 @timestamp。
三 使用模块与解析日志
- Filebeat 提供丰富的 模块(modules),可一键完成常见应用日志的采集、解析与字段映射(如 Nginx、Redis、MySQL、System 等)。
- 示例:启用 Redis 模块 并输出到 ES
- 启用模块:sudo filebeat modules enable redis
- 配置日志路径:编辑 /etc/filebeat/modules.d/redis.yml
-
- module: redis
- log:
- enabled: true
- var.paths: [“/var/log/redis/redis-server.log”]
-
- 输出到 ES(filebeat.yml):
- output.elasticsearch:
- hosts: [“http://localhost:9200”]
- output.elasticsearch:
- 重启:sudo systemctl restart filebeat
- 在 Kibana → Discover 选择 filebeat-* 索引即可按解析后的字段(如 redis.log.level、message 等)检索与分析。
四 关键配置要点
- 多行日志(如异常堆栈)合并:
- 在对应 input 下配置 multiline,示例:
- multiline.pattern: ‘^[’
- multiline.negate: true
- multiline.match: after
- 在对应 input 下配置 multiline,示例:
- 只采集新增日志(避免回溯历史):
- 设置 tail_files: true(注意:若 Filebeat 已记录过该文件状态,需要清理 registry 后才会对所有文件生效,谨慎操作)。
- JSON 日志解析:
- 在 input 中启用 json 解码,并可配合 keys_under_root、overwrite_keys、message_key 等选项将 JSON 字段提升为顶层字段,便于检索与聚合。
- 性能与资源调优(常用项):
- 批量与并发:调整 bulk_max_size、worker、queue.spool 等
- 刷新间隔:合理设置 flush_interval
- 资源限制:设置 max_procs、limits 等以避免占用过多资源。
五 查看 Filebeat 自身日志与排错
- 查看服务日志:
- 文件日志:tail -f /var/log/filebeat/filebeat.log
- systemd 日志:journalctl -u filebeat.service -f
- 提高日志级别用于排错(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
- 常见排错点:
- 权限与路径:确保 Filebeat 对日志文件与 /var/lib/filebeat/registry 有读写权限
- 索引与权限:ES 若启用安全认证,需在 filebeat.yml 配置 username/password 或 API Key
- 重复采集:勿随意删除 registry;确需重放历史时,先停服务、备份并清理该文件后再启动。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu中filebeat如何进行日志分析
本文地址: https://pptw.com/jishu/751464.html
