首页主机资讯CentOS与Filebeat集成指南

CentOS与Filebeat集成指南

时间2026-01-19 11:03:04发布访客分类主机资讯浏览412
导读:一 环境准备与安装 准备一台 CentOS 7/8 主机,确保网络可达目标 Elasticsearch/Logstash/Kibana,并具备 sudo 权限。 导入 Elastic GPG 公钥并添加官方 YUM 源(示例为 7.x,可...

一 环境准备与安装

  • 准备一台 CentOS 7/8 主机,确保网络可达目标 Elasticsearch/Logstash/Kibana,并具备 sudo 权限。
  • 导入 Elastic GPG 公钥并添加官方 YUM 源(示例为 7.x,可按需替换为你的版本):
    • rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
    • tee /etc/yum.repos.d/filebeat.repo < < EOF [filebeat-7.x] name=Elastic 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
  • 安装并启动服务:
    • yum install -y filebeat
    • systemctl daemon-reload
    • systemctl enable --now filebeat
  • 验证安装:
    • systemctl status filebeat
    • tail -f /var/log/filebeat/filebeat

二 快速集成方案

  • 直连 Elasticsearch(适合小规模或 PoC)
    • 配置 /etc/filebeat/filebeat.yml:
      • filebeat.inputs:
        • type: log enabled: true paths:
          • /var/log/*.log
          • /var/log/myapp/*.log
      • output.elasticsearch:
        • hosts: [“es-host1:9200”,“es-host2:9200”]
        • index: “filebeat-%{ [agent.version]} -%{ +yyyy.MM.dd} ”
    • 启动:systemctl restart filebeat
  • 经由 Logstash 处理(适合复杂解析、脱敏、路由)
    • Filebeat 输出到 Logstash:
      • output.logstash:
        • hosts: [“logstash-host:5044”]
    • Logstash 配置示例(/etc/logstash/conf.d/filebeat.conf):
      • input { beats { port => 5044 } }
      • filter { grok { match => { “message” => “%{ COMBINEDAPACHELOG} ” } date { match => [“timestamp”,“dd/MMM/yyyy:HH:mm:ss Z”] target => “datetime” } geoip { source => “clientip” } }
      • output { elasticsearch { hosts => [“es-host:9200”] index => “access_log-%{ +yyyy.MM.dd} ” } }
    • 启动:systemctl restart filebeat; systemctl restart logstash
  • 与 Kibana 联动
    • 在 Kibana 中配置 Elasticsearch 地址,使用 Discover/Stack Management 查看与创建索引模式(索引前缀如 filebeat-* 或 logstash-*)。

三 常用配置要点

  • 输入与多行
    • 常用参数:paths、exclude_lines/include_lines、exclude_files、tail_files、json.keys_under_root/json.message_key、harvester_buffer_size。
    • 多行场景(如 Java 堆栈)建议设置 multiline 合并后再做 include/exclude。
  • 处理器与字段
    • 添加业务字段:fields: { env: prod, app: myapp } ;fields_under_root: true 可将字段提升为顶层。
    • 时间与脚本处理:processors 可使用 timestamp、script(如 JavaScript)做字段提取与时间标准化。
  • 输出与索引
    • 多输出需谨慎(避免重复采集);生产建议固定索引生命周期策略(ILM)。
    • 关闭 ILM 并自定义索引名示例:
      • setup.ilm.enabled: false
      • setup.template.name: “myapp”
      • setup.template.pattern: “myapp-*”
      • output.elasticsearch.index: “myapp-log-%{ +yyyy.MM.dd} ”
  • 安全与代理
    • 启用安全时:output.elasticsearch.hosts 使用 https,并配置 username/password 或 API Key。
    • 需要代理:在 filebeat.yml 中配置 http_proxy/https_proxy。

四 安全加固与运维

  • 文件与目录权限
    • Filebeat 配置与日志目录建议仅对 root 可读写:chown -R root:root /etc/filebeat /var/log/filebeat;权限 600/640。
  • 日志轮转
    • 为 Filebeat 自身日志配置 logrotate(/etc/logrotate.d/filebeat):
      • /var/log/filebeat/*.log { daily missingok rotate 7 compress notifempty create 640 root root }
  • 服务与自启
    • 使用 systemd 管理:systemctl enable --now filebeat;变更配置后 systemctl restart filebeat。
  • 运行监控
    • 实时查看服务日志:journalctl -u filebeat -f
    • 查看 Filebeat 自身输出:tail -f /var/log/filebeat/filebeat。

五 常见问题与排查

  • 权限不足导致读取失败
    • 现象:Filebeat 无法读取应用日志(如 /var/log/myapp/*.log)。
    • 处理:确认运行用户(常见为 root 或专用用户)对日志文件具备 读权限;必要时将用户加入对应组或调整文件权限。
  • 重复采集
    • 现象:同一条日志被多次入库。
    • 处理:确保同一文件只被一个输入采集;避免多个 Filebeat 实例采集相同路径;必要时清理 registry 状态后重启(会重发历史)。
  • 多行日志被拆分
    • 现象:堆栈被拆成多事件。
    • 处理:启用 multiline 将多行合并为一条事件,再做 include/exclude 与解析。
  • 索引未按预期创建
    • 现象:Kibana 看不到数据或索引名不符。
    • 处理:检查 output.elasticsearch.index 与 ILM 设置;如使用自定义索引模板,确认已加载且 pattern 匹配;必要时关闭 ILM 并自定义索引名。
  • 连接 Elasticsearch/Logstash 失败
    • 现象:服务启动但无数据上报。
    • 处理:核对 hosts、端口、协议(http/https)、认证信息;在目标端放通防火墙与安全组;查看 Filebeat 与对端服务日志定位握手/认证/解析错误。

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


若转载请注明出处: CentOS与Filebeat集成指南
本文地址: https://pptw.com/jishu/785613.html
CentOS系统Filebeat安全设置 Filebeat如何在CentOS上监控文件

游客 回复需填写必要信息