ubuntu上filebeat的部署步骤是什么
小樊
33
2025-12-28 17:36:07
Ubuntu 上 Filebeat 部署步骤
一 准备与环境要求
- 系统建议:Ubuntu 20.04+,网络可访问 Elastic 官方仓库与输出目标(如 Elasticsearch/Kafka 的 IP:Port)。
- 资源建议:至少 1 核 CPU + 512MB 内存(中等日志量)。
- 版本兼容:Filebeat 与 Elasticsearch/Kibana 主版本需一致(如 8.x 对 8.x),避免兼容性问题。
二 安装 Filebeat
- 方式一 APT 仓库安装(推荐)
- 更新索引并安装依赖
sudo apt update && sudo apt install -y wget apt-transport-https gnupg
- 导入 Elastic GPG 密钥
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
- 添加 Elastic APT 仓库(将 8.x 替换为你的目标版本)
echo “deb https://artifacts.elastic.co/packages/8.x/apt stable main” | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
- 安装 Filebeat
sudo apt update && sudo apt install -y filebeat
- 方式二 手动安装 DEB 包
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.10.0-amd64.deb
sudo dpkg -i filebeat-8.10.0-amd64.deb
- 方式三 Snap 安装(可选)
sudo snap install filebeat --classic
配置文件路径为:/var/snap/filebeat/common/etc/filebeat.yml。
三 配置 Filebeat
- 主配置文件路径:/etc/filebeat/filebeat.yml;模块目录:/etc/filebeat/modules.d/。
- 基础配置示例(收集系统日志与 Apache 日志)
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/syslog
- /var/log/apache2/*.log
output.elasticsearch:
hosts: [“localhost:9200”]
index: “filebeat-%{[agent.version]}-%{+yyyy.MM.dd}”
- 输出到 Logstash(如需过滤/增强)
output.logstash:
hosts: [“localhost:5044”]
- 启用预定义模块(简化常见日志采集)
sudo filebeat modules enable system
sudo filebeat modules enable nginx
- 高级配置示例
- 忽略旧文件与排除行
filebeat.inputs:
- type: log
enabled: true
paths: [“/var/log/*.log”]
ignore_older: 72h
exclude_lines: [“^DEBUG”]
- 多行日志合并(如 Java 堆栈)
multiline.pattern: ‘^[^[]’
multiline.negate: true
multiline.match: after
- JSON 日志解析
json.keys_under_root: true
json.add_error_key: true
- 处理器(添加云元数据/脱敏字段)
processors:
- add_cloud_metadata: ~
- drop_fields:
fields: [“password”, “credit_card”]
四 启动与验证
- 启动服务并设置开机自启
sudo systemctl daemon-reload
sudo systemctl enable --now filebeat
sudo systemctl status filebeat
- 查看运行日志
sudo journalctl -u filebeat -f
- 验证数据是否到达 Elasticsearch
curl -X GET “localhost:9200/_cat/indices?v”
若看到以 filebeat- 开头的索引(如 filebeat-8.10.0-2025.10.08),说明采集与输出正常。
五 安全与批量部署建议
- 安全配置
- 若 Elasticsearch 启用 SSL/TLS 或 认证,在 output.elasticsearch 中配置 ssl.certificate_authorities、username/password 等参数。
- 确保 Filebeat 对日志文件具备读取权限(如 /var/log/syslog 通常需要 root 权限或以 root 运行)。
- 批量与自动化
- 可使用 Shell 脚本 或 Ansible Playbook 封装安装、配置与服务启停,实现一键/批量部署(适合多主机统一管理)。