centos

CentOS Filebeat与Logstash如何协同工作

小樊
37
2025-09-11 19:34:49
栏目: 智能运维

在CentOS上,Filebeat与Logstash协同工作流程及配置如下:

  1. 安装组件

    • 安装Elastic官方YUM仓库:
      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  
      enabled=1  
      EOF  
      
    • 安装Filebeat和Logstash:
      sudo yum install filebeat logstash  
      
  2. 配置Filebeat
    编辑 /etc/filebeat/filebeat.yml,指定输出到Logstash:

    filebeat.inputs:  
    - type: log  
      enabled: true  
      paths:  
        - /var/log/*.log  # 监控日志路径,可自定义  
    output.logstash:  
      hosts: ["localhost:5044"]  # Logstash监听地址及端口  
    
  3. 配置Logstash
    创建 /etc/logstash/conf.d/filebeat.conf,定义输入、过滤和输出:

    input {  
      beats {  
        port => 5044  # 接收Filebeat数据的端口  
      }  
    }  
    filter {  
      # 示例:解析Apache日志(按需添加)  
      if [message] =~ /GET|POST/ {  
        grok {  
          match => { "message" => "%{COMBINEDAPACHELOG}" }  
        }  
        date {  
          match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]  
        }  
      }  
    }  
    output {  
      elasticsearch {  
        hosts => ["localhost:9200"]  # 输出到Elasticsearch  
        index => "filebeat-%{+YYYY.MM.dd}"  # 索引格式  
      }  
    }  
    
  4. 启动服务

    sudo systemctl start filebeat  
    sudo systemctl enable filebeat  
    sudo systemctl start logstash  
    sudo systemctl enable logstash  
    
  5. 验证配置

    • 检查服务状态:
      sudo systemctl status filebeat  
      sudo systemctl status logstash  
      
    • 查看Logstash日志确认数据接收:
      sudo journalctl -u logstash -f  
      
    • 通过Kibana访问Elasticsearch,查看索引数据是否生成。

说明

0
看了该问题的人还看了