首页主机资讯CentOS系统Filebeat日志收集方法

CentOS系统Filebeat日志收集方法

时间2026-01-21 01:55:03发布访客分类主机资讯浏览804
导读:CentOS 上部署 Filebeat 的标准流程 安装方式 官方 YUM 仓库(推荐,便于升级) 导入 GPG 并添加仓库: sudo rpm --import https://artifacts.elastic.co/GPG-KE...

CentOS 上部署 Filebeat 的标准流程

  • 安装方式
    • 官方 YUM 仓库(推荐,便于升级)
      1. 导入 GPG 并添加仓库: sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch sudo tee /etc/yum.repos.d/filebeat.repo < < EOF [filebeat] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF
      2. 安装并启动: sudo yum install -y filebeat sudo systemctl enable --now filebeat
    • 直接 RPM 安装(适合离线) wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat--x86_64.rpm sudo rpm -Uvh filebeat--x86_64.rpm sudo systemctl enable --now filebeat
    • 验证服务状态: sudo systemctl status filebeat sudo journalctl -u filebeat -f
    • 配置文件路径:/etc/filebeat/filebeat.yml;服务日志:/var/log/filebeat/filebeat(或 journalctl)。

最小可用配置与系统日志采集

  • 编辑配置文件 /etc/filebeat/filebeat.yml(示例为输出到本机 Elasticsearch,未启用安全认证): filebeat.inputs:

    • type: log enabled: true paths:
      • /var/log/*.log
      • /var/log/messages fields: type: systemlog log_topic: systemlog fields_under_root: true exclude_lines: [“^DBG”] exclude_files: [“\.gz$”]

    output.elasticsearch: hosts: [“localhost:9200”] index: “systemlog-%{ +YYYY.MM.dd} ”

  • 检查配置并启动: sudo filebeat test config -c /etc/filebeat/filebeat.yml sudo systemctl restart filebeat sudo tail -f /var/log/filebeat/filebeat

  • 说明

    • 使用通配符可批量采集目录日志;通过 fields 添加业务标识便于后续索引或路由。
    • 如需采集 Nginx、Redis 等应用日志,只需在 inputs 中新增相应 paths

常见输出目标配置

  • 输出到 Elasticsearch(开启安全认证示例) output.elasticsearch: hosts: [“https://es-host:9200”] username: “elastic” password: “your_password” index: “systemlog-%{ +YYYY.MM.dd} ”

    • 若启用了 X-Pack Security,需在 ES 中创建具有写入权限的用户并在 Filebeat 中配置凭据。
  • 输出到 Kafka(多业务按 topic 路由) output.kafka: hosts: [“kafka1:9092”,“kafka2:9092”,“kafka3:9092”] version: “2.8” # 按实际集群版本设置 topic: “%{ [fields.log_topic]} ” codec.format: string: ‘%{ [message]} ’ required_acks: 1 compression: gzip max_message_bytes: 10000000

    • 通过 fields.log_topic 在输入处为不同日志指定不同 topic,实现多路复用。
  • 输出到 Logstash(集中处理/脱敏/路由) output.logstash: hosts: [“logstash:5044”]

    • 适合做更复杂的 Grok 解析、字段增强与策略路由。

进阶用法与最佳实践

  • 使用 Filebeat 模块采集常见服务

    • 启用模块目录并加载内置模块(如 system、nginx、redis 等): sudo filebeat modules enable system sudo filebeat setup --modules system,nginx,redis
    • 模块包含预置的 inputs、processors、index template,可快速上线并在 Kibana 使用对应仪表盘。
  • 多行日志合并(Java 堆栈等)

    • 在对应 input 下增加: multiline.pattern: ‘^[0-9]{ 4} -[0-9]{ 2} -[0-9]{ 2} [0-9]{ 2} :[0-9]{ 2} :[0-9]{ 2} ’ multiline.negate: true multiline.match: after
    • 将堆栈行合并到以时间戳开头的首行,便于检索与展示。
  • JSON 日志解析

    • 若应用日志已是 JSON,可直接解析到根字段: json.keys_under_root: true json.overwrite_keys: true
    • 便于在 ES/Kibana 中直接按字段检索与聚合。
  • 索引生命周期管理(ILM)

    • 建议配合 Index Lifecycle Management 管理热/温/冷/删除阶段,控制存储成本与保留策略(在 Kibana 或通过索引模板设置)。

快速验证与排错清单

  • 配置语法与连通性

    • 校验配置:sudo filebeat test config -c /etc/filebeat/filebeat.yml
    • 连通性测试(到 ES/Kafka/Logstash):在对应 output 段使用 test output 或查看 Filebeat 日志。
  • 服务与日志

    • 查看服务状态:sudo systemctl status filebeat
    • 实时查看日志:sudo journalctl -u filebeat -f 或 tail -f /var/log/filebeat/filebeat。
  • 常见问题

    • 权限不足:确保 Filebeat 用户对日志文件有读取权限(/var/log 下文件通常属 root:root,必要时调整或加入 filebeat 组)。
    • 主机名解析失败(Kafka 场景):在 /etc/hosts 绑定 broker 主机名与 IP,避免 DNS 解析问题。
    • 多行合并不生效:核对 pattern/negate/match 顺序与日志时间格式一致性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS系统Filebeat日志收集方法
本文地址: https://pptw.com/jishu/787945.html
CentOS下如何部署Filebeat centos nginx如何实现ssl会话复用

游客 回复需填写必要信息