日誌聚合



問題陳述

微服務架構將應用程式構建為一組鬆散耦合的微服務,每個服務都可以以敏捷的方式獨立開發,以實現持續交付/部署。請求通常跨越多個服務。每個服務例項都會以標準化格式在其日誌檔案中寫入一些資訊。這些日誌可以是資訊、錯誤、警告或除錯日誌。如何使用這些日誌分析和排除應用程式問題。

解決方案

我們可以使用集中的日誌服務來聚合來自每個服務的日誌。使用者應該能夠搜尋和分析此日誌服務提供的日誌。使用者應該能夠在日誌中出現特定型別的訊息時配置警報。

關聯ID

當第一個微服務接收到呼叫時,它應該生成一個關聯ID,然後可以將其傳遞給下游服務。此關聯ID應記錄在所有微服務中。這將有助於跟蹤跨越多個服務的資訊。

可搜尋日誌

由於日誌應放置在集中位置,下圖展示瞭如何使用Kafka、LogStash和Kibana來聚合日誌並使用所需的過濾器搜尋索引日誌。

Log Aggregation Pattern

微服務生成日誌,這些日誌使用kafka日誌追加器釋出,然後將日誌訊息輸出到kafka叢集。LogStash從kafka提取訊息,轉換訊息併發布到Elasticsearch容器。現在,Kibana提供了一個視覺化介面,用於從Elasticsearch容器搜尋/讀取索引日誌,並提供所需的過濾器。

廣告
© . All rights reserved.