温馨提示×

CentOS如何通过FileBeat进行日志分析

小樊
36
2025-12-07 15:03:14
栏目: 智能运维

在 CentOS 上使用 Filebeat 进行日志分析

一 架构与准备

  • 组件分工:在 CentOS 上用 Filebeat 采集日志,发送到 Elasticsearch 存储与检索,使用 Kibana 进行可视化分析。
  • 版本兼容:确保 Filebeat、Elasticsearch、Kibana 版本一致或兼容(示例使用 7.14)。
  • 网络与端口:开放 Elasticsearch 9200Kibana 5601,并确认 SELinux/防火墙 策略允许通信。

二 安装 Filebeat

  • 使用 YUM 安装(推荐):
    • 导入 GPG 并添加仓库:
      • sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
      • sudo tee /etc/yum.repos.d/elasticsearch.repo <<EOF [elasticsearch-7.x] 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
    • 安装:sudo yum install -y filebeat
  • 或使用 RPM 包安装:
    • wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.14.0-x86_64.rpm
    • sudo rpm -ivh filebeat-7.14.0-x86_64.rpm
  • 验证:filebeat version

三 配置采集与输出

  • 编辑主配置:sudo vi /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: [“elasticsearch-host:9200”]
      • index: “system-logs-%{+yyyy.MM.dd}”
  • 示例二 使用 Filebeat 模块(以 Nginx 为例)
    • filebeat.modules:
      • module: nginx access: var.paths: [“/var/log/nginx/access.log*”] error: var.paths: [“/var/log/nginx/error.log*”]
    • output.elasticsearch:
      • hosts: [“elasticsearch-host:9200”]
      • index: “filebeat-nginx-%{+yyyy.MM.dd}”
  • 说明:
    • 多行日志(如堆栈)可在对应模块或 inputs 下配置 multiline 参数以合并多行事件。
    • 如需输出到 Logstash,将 output.elasticsearch 替换为 output.logstash 并配置 hosts(示例:[“logstash-host:5044”])。

四 启动与验证

  • 启动与开机自启:
    • sudo systemctl start filebeat
    • sudo systemctl enable filebeat
  • 运行状态与日志:
    • sudo systemctl status filebeat
    • sudo journalctl -u filebeat -f
    • sudo tail -f /var/log/filebeat/filebeat.log
  • 检查 Elasticsearch 索引:
    • curl -X GET “localhost:9200/_cat/indices?v” | grep filebeat
  • Kibana 可视化:
    • 访问 http://:5601
    • Management → Index Patterns 创建索引模式(如 filebeat-* 或 system-logs-*)
    • Discover 中检索与可视化日志。

五 生产常用优化

  • 按应用拆分索引:在 inputs 中使用 fields.index,在 output.elasticsearch 中用 indices.when.equals 将不同应用写入不同索引(如 nginx、tomcat),便于权限与容量管理。
  • 多行与编码处理:为 Java/Python 堆栈等配置 multiline;对 GBK/UTF-8 等日志设置 encoding,避免乱码。
  • 安全传输:为 Elasticsearch/Logstash 启用 TLS/SSL 与认证(在 output.elasticsearch 中配置 ssl.* 与 username/password)。
  • 资源与性能:合理设置 scan_frequency、close_older、max_bytes、spool_size、idle_timeout,平衡延迟与吞吐。
  • 处理器增强:使用 dissect/grok/drop_fields 做字段解析与清理,减少存储与提升检索效率。

0