Filebeat與Kafka配合使用的完整流程
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
),創建Filebeat倉庫文件(/etc/yum.repos.d/filebeat.repo
),再通過yum install filebeat
安裝。kafka1:9092,kafka2:9092
)、Topic名稱(如filebeat-log
)、實例接入地址(CKafka需登錄控制臺獲?。?。編輯Filebeat主配置文件(filebeat.yml
),核心是配置output.kafka
section,關鍵參數說明如下:
基礎連接配置:
hosts
:Kafka broker地址列表(如["kafka1:9092", "kafka2:9092"]
);
topic
:目標Topic名稱(需提前在Kafka中創建);
version
:Kafka集群版本(需與Filebeat版本兼容,如Filebeat 8.2+支持Kafka 2.2.0+)。
批量發送優化(提升性能):
通過batching
或producer
設置批量發送參數,例如:
output.kafka:
batching:
count: 5000 # 累計5000條日志后發送
period: 10s # 或10秒內發送(以先到為準)
producer:
compression: gzip # 啟用gzip壓縮(減少網絡傳輸量)
```。
認證與加密(可選,生產環境必配):
若Kafka啟用了SASL/SSL認證,需添加以下配置:
output.kafka:
sasl:
mechanism: SCRAM-SHA-256 # 認證機制(如SCRAM-SHA-256/PLAIN)
username: "instance#username" # CKafka需拼接實例ID和用戶名
password: "your-password"
ssl:
enabled: true # 啟用SSL加密
certificate_authorities: ["/path/to/ca.crt"] # CA證書路徑
```。
根據日志來源選擇輸入類型,常見場景如下:
監控日志文件(Filebeat核心功能):
使用filebeat.inputs
(Filebeat 7.0+版本)配置日志路徑和類型,例如監控/var/log/*.log
:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log # 支持通配符,監控所有.log文件
```。
啟用預定義模塊(簡化配置):
Filebeat提供logstash
、nginx
、mysql
等預定義模塊,一鍵配置日志解析和輸出。例如啟用logstash
模塊:
filebeat.modules:
- module: logstash
enabled: true
var.logstash_host: "localhost"
var.logstash_port: 5000
```。
啟動Filebeat:
使用以下命令啟動(前臺模式,便于查看日志):
sudo ./filebeat -e -c filebeat.yml # -e輸出日志到stderr,-c指定配置文件
或設置為系統服務(開機自啟):
sudo systemctl start filebeat
sudo systemctl enable filebeat
```。
驗證數據發送:
通過Kafka消費者工具(如kafkacat
、kafka-console-consumer
)查看Topic中的數據:
kafkacat -b kafka1:9092 -t filebeat-log -C # 消費Topic數據(JSON格式)
kafka-console-consumer --bootstrap-server kafka1:9092 --topic filebeat-log --from-beginning # Kafka原生工具
若能看到Filebeat采集的日志內容(如message
字段包含日志文本),則說明配置成功。