CentOS上Filebeat集群部署方法
小樊
34
2025-12-29 06:30:29
架构与前提
- 在 CentOS 上部署 Filebeat 通常采用“多节点采集 + 中央存储”的模式:在每台业务服务器上运行独立的 Filebeat 实例,将日志统一发送到 Elasticsearch 或 Logstash。Filebeat 本身是无状态的轻量采集器,所谓“集群”是指多台主机各自运行 Filebeat,配合后端高可用存储实现整体高可用与负载分担。建议至少准备 2–3 台 Filebeat 节点,网络互通、时间同步(NTP),并统一 Filebeat 版本 与配置基线。
安装与系统服务
- 方式一 YUM 仓库(推荐,便于升级)
- 导入 GPG 并添加 Elastic 8.x 仓库;2) 安装 Filebeat;3) 启动并设置开机自启。
- sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
- sudo tee /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch-8.x]
name=Elastic repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
- sudo yum install -y filebeat
- sudo systemctl enable --now filebeat
- 方式二 RPM 手动安装(适合离线环境)
- wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.11.3-x86_64.rpm
- sudo rpm -ivh filebeat-8.11.3-x86_64.rpm
- sudo systemctl enable --now filebeat
- 验证:systemctl status filebeat 应显示 active (running);日志路径通常为 /var/log/filebeat/filebeat(RPM 安装)。
统一配置与差异化设置
- 建议将公共配置抽离为模板,使用 Ansible/Salt 分发;每个节点仅差异化设置 node.name 与必要的元信息。
- 示例 filebeat.yml(最小可用,按需扩展)
- filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
- /var/log/nginx/*.log
exclude_files: [‘.gz$’]
fields:
cluster_name: “my_centos_cluster”
log_type: “system”
fields_under_root: true
多行示例(Java 堆栈)
multiline.pattern: ‘^[’
multiline.negate: true
multiline.match: after
multiline.timeout: 5s
- processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
- output.elasticsearch:
hosts: [“es-node1:9200”,“es-node2:9200”,“es-node3:9200”]
username: “elastic”
password: “your_password”
index: “centos-cluster-logs-%{+yyyy.MM.dd}”
loadbalance: true
-
可选:输出到 Logstash
output.logstash:
hosts: [“logstash1:5044”,“logstash2:5044”]
- 重要说明
- Filebeat 没有“主从/集群角色”配置,无需设置类似 cluster.name/node.master 等与 ES 混淆的参数;只需保证各节点 node.name 唯一 即可。
- 多节点协同与高可用主要依靠:后端 Elasticsearch 集群(建议至少 3 节点 并开启副本)、Filebeat 对 ES 的 多地址轮询/负载均衡、以及 registry 位点持久化 保证断点续传。
高可用与安全加固
- 高可用与可靠性
- 后端存储:Elasticsearch 至少 3 节点、副本分片启用,避免单点;Filebeat 指向多个 ES 节点或前置 负载均衡器,并开启 loadbalance: true。
- 数据不丢:确保 registry.path(默认 /var/lib/filebeat/registry)所在目录存在且可写,重启后可从上次位点继续发送;根据峰值酌情调大 queue.mem.events(如 10000)以缓冲网络抖动。
- 安全加固
- 启用 TLS/SSL 加密传输(ssl.enabled: true,配置证书与 CA),并为 ES 输出配置 用户名/密码 或 API Key;在公网/跨机房部署时务必开启。
启动、验证与运维
- 启动与自检
- 各节点:sudo systemctl enable --now filebeat
- 查看状态与日志:systemctl status filebeat;tail -f /var/log/filebeat/filebeat
- 数据验证
- ES 侧:curl -XGET “http://es-node1:9200/_cat/indices?v&pretty”,应能看到按日生成的索引(如 centos-cluster-logs-2025.09.20)。
- Kibana:访问 http://kibana-host:5601,创建索引模式 centos-cluster-logs-*,确认各节点日志已入库并可检索。
- 运维建议
- 使用 配置管理工具 保证多节点配置一致;为节点设置 统一标签/字段(如 cluster_name)便于多租户/多环境区分。
- 监控与告警:采集 filebeat.up、filebeat.output.elasticsearch.success 等指标(如 Prometheus + Grafana),当节点宕机或发送失败触发告警。