首页主机资讯CentOS Filebeat与Logstash如何联动

CentOS Filebeat与Logstash如何联动

时间2025-12-19 23:35:04发布访客分类主机资讯浏览281
导读:在 CentOS 上让 Filebeat 与 Logstash 协同工作 一 架构与端口约定 Filebeat 负责采集本地日志文件,作为轻量采集器将数据发送到 Logstash 的 Beats 输入插件(默认端口 5044)。 Log...

在 CentOS 上让 Filebeat 与 Logstash 协同工作


一 架构与端口约定

  • Filebeat 负责采集本地日志文件,作为轻量采集器将数据发送到 LogstashBeats 输入插件(默认端口 5044)
  • Logstash5044 端口监听 Beats 数据,进行解析与加工(如 GrokDatemutate 等),再输出到 Elasticsearch 或标准输出用于调试。
  • 常见输出索引命名:filebeat-%{ +YYYY.MM.dd} 或按业务字段拆分如 %{ [index_prefix]} -%{ +YYYY.MM.dd}

二 安装与目录

  • 在 CentOS 上可直接通过 YUM 安装(示例命令,需具备对应仓库权限):
    • 安装 Filebeat:sudo yum install filebeat
    • 安装 Logstash:sudo yum install logstash
  • 常用配置路径:
    • Filebeat:/etc/filebeat/filebeat.yml
    • Logstash 管道配置:/etc/logstash/conf.d/*.conf
  • 服务管理:
    • 启动/开机自启:sudo systemctl start|enable filebeatsudo systemctl start|enable logstash
    • 查看日志:sudo journalctl -u filebeat -fsudo journalctl -u logstash -f

三 最小可用配置示例

  • Filebeat 配置(/etc/filebeat/filebeat.yml):收集系统日志并发送到本机 Logstash
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/*.log

output.logstash:
  hosts: ["localhost:5044"]
  • Logstash 配置(/etc/logstash/conf.d/filebeat.conf):接收 Beats 数据并写入 ES
input {

  beats {
    
    port =>
 5044
  }

}


filter {

  # 示例:解析 Apache 访问日志;其他日志请替换为合适的 grok 模式
  grok {
    
    match =>
 {
     "message" =>
 "%{
COMBINEDAPACHELOG}
" }

  }

  date {
    
    match =>
 [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
  }

}


output {

  elasticsearch {
    
    hosts =>
     ["localhost:9200"]
    index =>
 "filebeat-%{
+YYYY.MM.dd}
"
  }

}
    
  • 启动顺序建议:先启动 Logstash(确保 5044 监听正常),再启动 Filebeat

四 验证与常见问题

  • 服务与连通性检查
    • 状态:sudo systemctl status filebeatsudo systemctl status logstash
    • 日志:sudo journalctl -u filebeat -fsudo journalctl -u logstash -f
    • 连通性(在 Filebeat 主机上):nc -vz < logstash_ip> 5044
  • Elasticsearch 数据校验
    • 索引列表:curl -X GET "localhost:9200/_cat/indices?v"
    • 查询样本:curl -X GET "localhost:9200/filebeat-*/_search?pretty"
  • 调试技巧
    • 临时将 Logstash 输出改为 stdout { codec => rubydebug } 观察事件结构。
    • 使用 Filebeat 自检:filebeat test configfilebeat test output(可快速发现配置与输出连通性问题)。

五 进阶用法

  • 多项目索引拆分(按 Filebeat 自定义字段路由)
    • Filebeat 增加字段:
      filebeat.inputs:
      - type: log
        enabled: true
        paths:
          - /opt/logs/app1/*.log
        fields:
          project: "app1"
      - type: log
        enabled: true
        paths:
          - /opt/logs/app2/*.log
        fields:
          project: "app2"
        fields_under_root: true
      output.logstash:
        hosts: ["logstash:5044"]
      
    • Logstash 按字段设置索引前缀:
      input {
       beats {
           port =>
       5044 }
       }
      
      
      filter {
      
        if [project] == "app1" {
      
          mutate {
           add_field =>
       {
           "index_prefix" =>
       "filebeat-app1" }
       }
      
        }
       else if [project] == "app2" {
      
          mutate {
           add_field =>
       {
           "index_prefix" =>
       "filebeat-app2" }
       }
      
        }
       else {
      
          mutate {
           add_field =>
       {
           "index_prefix" =>
       "filebeat-default" }
       }
      
        }
      
      }
      
      
      output {
      
        elasticsearch {
          
          hosts =>
           ["elasticsearch:9200"]
          index =>
       "%{
      [index_prefix]}
      -%{
      +YYYY.MM.dd}
      "
        }
      
      }
      
      
  • 多行日志(如 Java 堆栈)
    • Filebeat 片段:
      - type: log
        enabled: true
        paths:
          - /apps/usr/appdata/logs/*.log
        multiline.pattern: '^[[:space:]]+(at|\.{
      3}
          )[[:space:]]'
        multiline.negate: false
        multiline.match: after
      
  • 安全与网络
    • 若跨主机部署,开放 Logstash 主机 5044/TCP 入站;生产环境建议启用 TLS认证(在 Beats 与 Logstash 双方配置证书与密码/密钥)。

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


若转载请注明出处: CentOS Filebeat与Logstash如何联动
本文地址: https://pptw.com/jishu/776799.html
Filebeat采集日志有哪些限制 nginx ssl配置centos报错怎么办

游客 回复需填写必要信息