雲原生架構日誌監控最佳實踐

danny_2018發表於2022-02-28

雲原生架構的日誌監控要求現代 Web 應用程式採用與傳統應用程式略有不同的方法。部分原因是應用程式環境要複雜得多,包括從微服務中獲取資料、使用 Kubernetes 和其他容器技術,以及在許多情況下整合開源元件。所有這些複雜性使得有必要重新考慮聚合、分析和儲存應用程式日誌的策略。

日誌是檢視應用程式健康狀況的好方法,特別是如果您想了解更多關於那些只存在於瞬間的服務。但是,新的工具和技術也為您提供了前所未有的資料量,使得過濾噪音變得更加困難。在本部落格中,我們將探討雲原生架構日誌監控的一些挑戰,並描述幫助您為應用程式定義有效策略的四個步驟。

雲原生環境中日誌監控的最佳實踐包括使用開放標準、實施中央日誌管理解決方案以及避免在日誌中收集個人資訊。

在雲原生架構中採用錯誤的日誌管理方法可能會限制您有效響應問題的能力,或者導致您被特定供應商鎖定。

雲原生架構的日誌監控有哪些挑戰?

從歷史上看,日誌監控更容易,因為大多數應用程式日誌具有一致的結構和格式。轉換這些資料並聚合資訊很簡單,允許團隊收集和分析不同的日誌,並將其分析為環境效能的單一檢視。在雲原生世界中,情況不再如此。

團隊今天面臨的一些主要挑戰包括:

規模——由於雲原生架構中發生的微服務、容器、基礎設施層和編排的數量,團隊最終很容易處理數十萬個單獨的日誌。

臨時儲存——在容器化環境中,日誌通常會進入內部檔案系統,該檔案系統可能僅在應用程式例項化時才存在。團隊需要將日誌資料收集到持久儲存中,以便稍後分析效能並解決問題。

日誌多樣性——雲原生應用程式從應用程式和伺服器生成大量資料,但也使用雲服務、編排器和 API 來正常執行。這些元件中的每一個都會生成有價值的資訊,您需要從不同的例項、節點、閘道器、主機或代理中收集這些資訊。

供應商鎖定——如果您只使用特定供應商的日誌工具,您可能會被鎖定在該環境及其專有的日誌管理解決方案中。在多雲環境中,如果您為不同的服務提供商使用不同的日誌記錄工具,這可能會妨礙您監控效能、解決問題和了解依賴關係的能力。

如果您從一開始就採取正確的方法,那麼透過智慧模型克服這些挑戰是可能的。

雲原生架構中日誌監控的智慧模型

以下是您應該在日誌監控策略中包含的一些最佳實踐。

1. 實施日誌管理解決方案

由於您的環境中生成的日誌資料的多樣性,最好的選擇是實施一個日誌管理解決方案,將所有日誌統一到一個集合中。從集中式系統管理日誌可以將所有日誌自動聚合到一組可管理的資料中以供進一步分析。可觀察性平臺[2]使您可以使用簡化的流程來視覺化和分析來自應用程式、基礎架構和終端使用者的資料,以收集和儲存所有日誌資料。

2. 應用日誌採用開放標準

OpenTelemetry[3]等開放標準可幫助您避免供應商鎖定,並使用供應商中立的 API 最佳化日誌監控流程。OpenTelemetry 將之前的兩個標準(OpenTracing 和 OpenCensus)組合成一個工具、SDK 和 API 集合,使您能夠檢測程式碼、生成、收集和匯出日誌資料、跟蹤和指標。

藉助廣泛的語言支援和與流行框架的整合,為您的應用程式遙測採用開放標準還將簡化您的日誌監控過程[4]。OpenTelemetry 目前以多種語言處於測試階段,免費,並得到各種行業領導者的[5]支援。

3. 採用最新的跟蹤和日誌記錄技術

從可觀察性平臺獲得集中式日誌管理解決方案後,請考慮使用eBPF 等新技術[6]來收集資料。此外,尋找提供無程式碼介面的工具來視覺化您的資料和自定義日誌解析器,使您能夠輕鬆地將日誌資訊轉換和塑造成可用的格式。

透過改進的日誌生成、收集和視覺化功能,您可以:

透過跟蹤整個環境中的每個服務請求來排除應用程式效能故障。

改進您的容量規劃、負載平衡和應用程式安全性。

將事務資料與運算元據相關聯,以檢視每個請求期間發生的情況。

攝取資訊並擴充套件日誌監控以檢測資料中的模式。

4. 只記錄您需要的內容

最後,日誌需要包含必要的後設資料,以便在您分析效能時提供足夠的上下文。使用日誌管理解決方案,生成日誌很容易,但如果資訊不是立即有用,則不會提供任何好處。日誌資訊應該可以幫助您瞭解應用程式中正在發生的事情或快速做出決定。

請記住透過對所有私人資訊使用匿名識別符號從日誌中排除敏感資料。使用此日誌管理最佳實踐指南[7]來制定策略並確保避免雲原生日誌監控中的常見陷阱。

來自 “ 企鵝號 ”, 原文作者:碼農實戰;原文連結:原文:https://tinyurl.com/2p94znwz,如有侵權,請聯絡管理員刪除。

相關文章