温馨提示×

CentOS上Filebeat集群部署方法

小樊
34
2025-12-29 06:30:29
栏目: 智能运维

架构与前提

  • CentOS 上部署 Filebeat 通常采用“多节点采集 + 中央存储”的模式:在每台业务服务器上运行独立的 Filebeat 实例,将日志统一发送到 ElasticsearchLogstash。Filebeat 本身是无状态的轻量采集器,所谓“集群”是指多台主机各自运行 Filebeat,配合后端高可用存储实现整体高可用与负载分担。建议至少准备 2–3 台 Filebeat 节点,网络互通、时间同步(NTP),并统一 Filebeat 版本 与配置基线。

安装与系统服务

  • 方式一 YUM 仓库(推荐,便于升级)
    1. 导入 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.upfilebeat.output.elasticsearch.success 等指标(如 Prometheus + Grafana),当节点宕机或发送失败触发告警。

0