CentOS上Filebeat集群部署方法
导读:架构与前提 在 CentOS 上部署 Filebeat 通常采用“多节点采集 + 中央存储”的模式:在每台业务服务器上运行独立的 Filebeat 实例,将日志统一发送到 Elasticsearch 或 Logstash。Filebeat...
架构与前提
- 在 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
- type: log
enabled: true
paths:
- 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.inputs:
- 重要说明
- 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),当节点宕机或发送失败触发告警。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS上Filebeat集群部署方法
本文地址: https://pptw.com/jishu/782697.html
