第二步:配置 Logstash(接收 Filebeat 日誌,處理後發送到 Elasticsearch)
1. 創建 Logstash 管道配置文件
進入 Logstash 安裝目錄的 config 文件夾(如 C:\logstash-9.2.1\config),新建一個文件 springcloud-pipeline.conf,內容如下:
conf
# 1. 輸入:接收來自 Filebeat 的日誌(端口必須與 Filebeat 輸出一致)
input {
beats {
port => 5044 # 與 Filebeat 中 output.logstash.hosts 的端口一致
}
}
# 2. 過濾:處理日誌(以 JSON 格式日誌為例,微服務輸出 JSON 時用)
filter {
# 解析 JSON 格式的日誌(如果你的微服務日誌是 JSON 格式)
json {
source => "message" # 從 message 字段解析 JSON
target => "log_details" # 解析後的字段放入 log_details 中
remove_field => ["message"] # 解析後刪除原始 message 字段(可選)
}
# 補充一個字段,標記該日誌經過 Logstash 處理(可選)
mutate {
add_field => { "processed_by" => "logstash" }
}
}
# 3. 輸出:發送到 Elasticsearch
output {
elasticsearch {
hosts => ["https://localhost:9200"] # Elasticsearch 地址(9.x 需用 https)
username => "elastic"
password => "你的elastic密碼" # 與 Elasticsearch 一致
index => "springcloud-logs-%{+yyyy.MM.dd}" # 按日期生成索引
# 9.x 強制 SSL,需指定 CA 證書路徑(Elasticsearch 安裝目錄下)
ssl => true
cacert => "C:/ElasticSearch/elasticsearch-9.2.1/config/certs/http_ca.crt"
}
# 調試用:同時輸出到控制枱(生產環境可註釋)
stdout {
codec => rubydebug # 格式化顯示,方便查看處理結果
}
}
2. 關鍵説明
- filter 部分:如果你的微服務日誌是 純文本(非 JSON),需要用
grok插件解析(參考之前的示例);如果是 JSON 格式,上述配置直接可用。 - cacert 路徑:確保
http_ca.crt文件存在於 Elasticsearch 的config/certs目錄下(9.x 啓動時自動生成)。
第三步:啓動 Filebeat 和 Logstash(按順序!)
1. 啓動 Logstash(先啓動,等待接收日誌)
打開 CMD管理員,進入 Logstash 的 bin 目錄,執行:
logstash.bat -f ../config/springcloud-pipeline.conf # 指定剛才創建的配置文件
logstash.bat -f "C:\ElasticSearch\Logstash\logstash-9.2.1-windows-x86_64\logstash-9.2.1\config\springcloud-pipeline.conf"
- 啓動成功標誌:控制枱顯示
Successfully started Logstash API endpoint,且無ERROR日誌(首次啓動可能需要 10-20 秒)。
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。