温馨提示×

Filebeat在CentOS上如何进行日志可视化

小樊
35
2025-12-13 13:55:09
栏目: 智能运维

在 CentOS 上用 Filebeat 实现日志可视化

一 架构与准备

  • 组件选型:在 CentOS 上部署 Elasticsearch(存储与检索)、Kibana(可视化与探索)、Filebeat(轻量采集器)。如日志需要复杂解析,可在中间加入 Logstash(可选)。
  • 版本一致:确保 Filebeat 与 Elasticsearch/Kibana 主版本一致,避免兼容性问题。
  • 资源建议:单机测试可用 4 核 CPU / 8GB 内存;生产环境按日志量单独规划资源。
  • 网络与端口:开放 Elasticsearch 9200Kibana 5601;如经 Logstash 转发,开放 5044
  • 安全基线:启用认证、最小权限、TLS 加密;公网访问建议前置 Nginx/Apache 反向代理 + 基础认证

二 安装与配置

  • 安装组件(示例为 7.x,其他版本替换版本号即可):
    • 导入 GPG 并添加仓库:
      • sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
      • 创建 /etc/yum.repos.d/elasticsearch.repo([elasticsearch-7.x] 段)与 /etc/yum.repos.d/kibana.repo([kibana-7.x] 段),baseurl 指向 https://artifacts.elastic.co/packages/7.x/yum
    • 安装:sudo yum install -y elasticsearch kibana filebeat
  • 配置 Elasticsearch(/etc/elasticsearch/elasticsearch.yml):
    • network.host: 0.0.0.0(或内网地址);按需设置 discovery.type: single-node(单机)
  • 配置 Kibana(/etc/kibana/kibana.yml):
    • server.host: 0.0.0.0;elasticsearch.hosts: [“http://localhost:9200”]
  • 配置 Filebeat(/etc/filebeat/filebeat.yml,最简直连 ES 示例):
    • filebeat.inputs:
      • type: log enabled: true paths:
        • /var/log/*.log
    • output.elasticsearch:
      • hosts: [“localhost:9200”]
      • index: “filebeat-%{+yyyy.MM.dd}”
    • 如需 Kibana 自动导入仪表板,可添加:
      • setup.kibana.host: “localhost:5601”
  • 启动与开机自启:
    • sudo systemctl daemon-reload
    • sudo systemctl enable --now elasticsearch kibana filebeat
  • 验证服务:
    • curl -X GET “localhost:9200”(应返回 ES 信息)
    • 访问 http://:5601 进入 Kibana

三 在 Kibana 完成可视化

  • 创建索引模式:进入 Stack Management → Index Patterns,新建索引模式匹配 filebeat-*,设置时间字段为 @timestamp
  • 探索日志:进入 Discover,选择刚创建的索引模式,按时间筛选查看原始日志。
  • 构建可视化与仪表板:在 Visualize Library 创建图表(如柱状图、折线图、数据表),再在 Dashboard 中组合成业务视图。
  • 导入官方仪表板(可选):如启用 Filebeat 模块,可使用 filebeat setup 自动导入对应模块仪表板(需配置 setup.kibana.host)。

四 进阶用法

  • 使用 Logstash 做解析与分流(示例):
    • /etc/logstash/conf.d/logstash.conf:
      • input { beats { port => 5044 } }
      • output { elasticsearch { hosts => [“http://localhost:9200”] index => “%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}” } }
    • Filebeat 将 output 指向 Logstash:output.logstash: hosts: [“localhost:5044”]
  • 启用 Filebeat 模块(以 system 为例):
    • filebeat modules enable system
    • 按需编辑 /etc/filebeat/modules.d/system.yml 的 paths
    • 使用 filebeat setup -e 导入模块仪表板与管道
  • 多行日志处理(如 Java 异常栈):
    • 在 filebeat.inputs 下为对应日志添加:
      • multiline.pattern: ‘^[’
      • negate: true
      • match: after
  • 处理器与字段增强:
    • 使用 dissect/grok 解析非结构化日志;用 add_host_metadata/add_cloud_metadata 丰富元数据。

五 常见问题与排查

  • 版本不匹配:确认 Filebeat、Elasticsearch、Kibana 主版本一致(如均为 7.x)。
  • 配置语法错误:Filebeat 配置为 YAML,注意缩进与冒号后空格;变更后先执行 filebeat test config 校验。
  • 权限与认证:若启用安全特性,需在 Filebeat 的 output.elasticsearch 中配置 username/password 或 API Key;Kibana 同理。
  • 端口与防火墙:确认 9200/5601/5044 已放行;云主机需配置安全组规则。
  • 索引未创建或看不到数据:检查 Filebeat 日志(/var/log/filebeat/filebeat)、ES 是否收到数据(curl localhost:9200/_cat/indices),Kibana 索引模式是否匹配 filebeat-*。
  • 公网访问与加固:建议用 Nginx 反向代理 + htpasswd 基础认证,并启用 TLS/HTTPS

0