Filebeat如何在Ubuntu上实现实时监控
导读:在 Ubuntu 上部署 Filebeat 实现实时监控 一 安装与准备 更新索引并导入 Elastic GPG 密钥: sudo apt update wget -qO - https://artifacts.elastic.co/G...
在 Ubuntu 上部署 Filebeat 实现实时监控
一 安装与准备
- 更新索引并导入 Elastic GPG 密钥:
- sudo apt update
- wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
- 添加 Elastic APT 仓库(以 7.x 为例,可按需替换为你的版本):
- echo “deb https://artifacts.elastic.co/packages/7.x/apt stable main” | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
- 安装 Filebeat:
- sudo apt update & & sudo apt install filebeat
- 说明:默认配置文件路径为 /etc/filebeat/filebeat.yml;Filebeat 7 的默认输入类型为 filestream(老版本为 log),两者均可用于实时采集。
二 配置实时采集
- 启用模块(可选,便于解析常见日志,如 system、nginx、apache):
- sudo filebeat modules enable system
- 编辑主配置 /etc/filebeat/filebeat.yml,示例一(直接输出到 Elasticsearch):
- filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/syslog
- /var/log/apache2/*.log
- type: log
enabled: true
paths:
- output.elasticsearch:
- hosts: [“localhost:9200”]
- index: “filebeat-%{ [agent.version]} -%{ +yyyy.MM.dd} ”
- filebeat.inputs:
- 示例二(输出到 Logstash,适合做解析与过滤):
- output.logstash:
- hosts: [“localhost:5044”]
- output.logstash:
- 说明:paths 支持 glob 通配;如需采集 Java 多行堆栈,需配置 multiline(见下一节)。
三 启动与验证
- 启动并设为开机自启:
- sudo systemctl start filebeat
- sudo systemctl enable filebeat
- 查看运行状态与日志:
- sudo systemctl status filebeat
- journalctl -u filebeat -f
- 验证数据是否到达:
- 直连 ES:curl -X GET “localhost:9200/_cat/indices?v”
- 使用 Kibana Dev Tools 查询索引或在 Discover 中查看
- 若走 Logstash:tail -f /var/log/logstash/logstash-plain.log 观察接收情况。
四 常见场景与关键配置
- 多行日志(Java 异常堆栈等):
- 在对应 input 下加入:
- multiline:
- pattern: ‘^[[:space:]]’
- negate: true
- match: after
- max_lines: 1000
- timeout: 5s
- multiline:
- 在对应 input 下加入:
- 仅采集新增行(避免重启后重发历史):
- tail_files: true
- 注意:该选项对 Filebeat 已处理过的文件不生效;如需对全部文件生效,需先停止 Filebeat 并删除 registry 文件(会丢失历史进度)。
- 忽略旧文件与按条件筛选:
- ignore_older: 72h
- include_lines: [‘^ERR’, ‘^WARN’]
- exclude_lines: [‘^DEBUG’]
- 添加元信息便于检索:
- processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
- add_fields:
- fields: { service: “myapp”, env: “prod” }
- fields_under_root: true
- processors:
- 性能与可靠性要点:
- 合理设置 close_older、scan_frequency、backoff 等参数以适配日志轮转与写入速率;Filebeat 具备 反压敏感 发送机制,高负载时会自动降速。
五 安全与集成建议
- 若 Elasticsearch 启用安全特性(如 X-Pack),在 filebeat.yml 中配置认证:
- output.elasticsearch:
- hosts: [“https://es-host:9200”]
- username: “filebeat_writer”
- password: “your_password”
- ssl.certificate_authorities: [“/etc/filebeat/certs/ca.crt”]
- output.elasticsearch:
- 与现有系统集成:
- 通过 Logstash 做字段解析、脱敏与路由,再由 Logstash 输出到 ES 或其他存储;确保 Logstash 输入为 beats { port => 5044 } 与 Filebeat 输出一致。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Filebeat如何在Ubuntu上实现实时监控
本文地址: https://pptw.com/jishu/764563.html
