Filebeat與Ubuntu其他服務集成的常見方法及步驟
在Ubuntu上安裝Filebeat是集成的基礎,可通過Elastic官方APT倉庫完成安裝:
# 導入Elastic官方GPG密鑰
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
# 添加Elastic官方APT倉庫
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
# 更新包列表并安裝Filebeat
sudo apt update && sudo apt install filebeat
Logstash常用于日志的過濾、解析和豐富,Filebeat可作為前端收集器將日志發送至Logstash。
配置步驟:
/etc/filebeat/filebeat.yml
),添加Logstash輸出配置:filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log # 監控系統日志(可根據需求調整路徑)
output.logstash:
hosts: ["localhost:5044"] # Logstash默認監聽端口
sudo systemctl restart filebeat
若無需復雜處理,Filebeat可直接將日志發送至Elasticsearch,適用于小規模部署。
配置步驟:
filebeat.yml
,替換為Elasticsearch輸出配置:filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/syslog # 示例:監控syslog
output.elasticsearch:
hosts: ["localhost:9200"] # Elasticsearch默認地址
index: "filebeat-%{+yyyy.MM.dd}" # 按日期創建索引
sudo systemctl restart filebeat
Kafka可作為日志緩沖層,提升Filebeat與后續處理系統(如Elasticsearch)的解耦性和可靠性。
配置步驟:
filebeat.yml
,添加Kafka輸出配置:filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log # 示例:監控Nginx日志
output.kafka:
hosts: ["localhost:9092"] # Kafka broker地址
topic: "filebeat-logs" # 日志發送至的Kafka主題
required_acks: 1 # 確認機制(1=寫入leader即可)
compression: gzip # 壓縮傳輸(節省帶寬)
sudo systemctl restart filebeat
Filebeat提供針對Nginx、MySQL、Redis等常見服務的內置模塊,可自動識別日志格式、提取字段,無需手動編寫復雜正則。
配置步驟(以Nginx為例):
sudo filebeat modules enable nginx
/etc/filebeat/modules.d/nginx.yml
),指定日志路徑:- module: nginx
access:
enabled: true
var.paths: ["/var/log/nginx/access.log*"] # 訪問日志路徑
error:
enabled: true
var.paths: ["/var/log/nginx/error.log*"] # 錯誤日志路徑
sudo systemctl restart filebeat
若自定義服務提供HTTP API接收日志,可使用Filebeat的HTTP輸出模塊。
配置步驟:
filebeat.yml
,添加HTTP輸出配置:filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/custom/*.log # 自定義服務日志路徑
output.http:
hosts: ["your-custom-service:8080"] # 自定義服務地址
endpoint: "/logs/receive" # 接收日志的API端點
ssl.verification_mode: none # 若未啟用HTTPS,禁用證書驗證
sudo systemctl restart filebeat
sudo systemctl status filebeat
sudo journalctl -u filebeat -f
curl
查看索引數據:curl -X GET "localhost:9200/_search?pretty" -H 'Content-Type: application/json' -d'{"query": {"match_all": {}}}'
kafka-console-consumer
查看主題消息:kafka-console-consumer --bootstrap-server localhost:9092 --topic filebeat-logs --from-beginning
ssl.certificate_authorities
)。chown
或chmod
調整)。bulk_max_size
(批量發送大?。?、queue_size
(隊列大?。┑葏?,避免資源占用過高。