共計 1341 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章主要介紹“Kubernetes 結構化日志怎么使用”,在日常操作中,相信很多人在 Kubernetes 結構化日志怎么使用問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Kubernetes 結構化日志怎么使用”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
日志是可觀察性的一個基本方面,也是調試的一個關鍵工具。但是 Kubernetes 日志傳統上是非結構化字符串,這使得任何自動解析都很困難,任何下游處理、分析或查詢都很難可靠地完成。
在 Kubernetes 1.19 中,我們增加了對結構化日志的支持,它原生支持(鍵、值)對和對象引用。我們還更新了許多日志調用,這樣在一個典型的部署中超過 99% 的日志量現在都遷移到了結構化格式。
為了保持向后兼容性,結構化日志仍將輸出為字符串,其中字符串包含“key”=“value”對的表示。從 1.19 的 alpha 開始,日志也可以使用 –logging-format=json 標記以 JSON 格式輸出。
使用結構化日志
我們向 klog 庫添加了兩個新方法:InfoS 和 ErrorS。例如,以下信息的調用:
klog.InfoS(Pod status updated , pod , klog.KObj(pod), status , status)
將導致以下日志:
I1025 00:15:15.525108 1 controller_utils.go:116] Pod status updated pod= kube-system/kubedns status= ready
或者,如果設置了 –logging-format=json 標志,則會產生如下輸出:
{ ts : 1580306777.04728, msg : Pod status updated , pod : { name : coredns , namespace : kube-system }, status : ready }
這意味著下游的日志工具可以很容易地獲取結構化日志數據,而不是使用正則表達式(regex)來解析非結構化字符串。這也使得處理日志更容易,查詢日志更健壯,分析日志更快。
使用結構化日志,對 Kubernetes 對象的所有引用都以相同的方式進行結構化,因此你可以過濾引用特定 pod 的輸出和日志條目。你還可以找到一些日志,這些日志指示調度器如何調度 pod、如何創建 pod、pod 的運行狀況探測以及 pod 生命周期中的所有其他更改。
假設你正在用 pod 調試一個問題。使用結構化日志,你可以篩選到僅引用感興趣的 pod 的那些日志條目,而不需要掃描可能數以千計的日志行來查找相關的日志。
結構化日志不僅在手動調試問題時更有用,而且還支持更豐富的特性,如日志中的自動模式識別或日志和跟蹤數據的更緊密的相關性。
最后,結構化日志可以幫助降低日志的存儲成本,因為大多數存儲系統壓縮結構化的 key=value 數據比壓縮非結構化的字符串更有效。
到此,關于“Kubernetes 結構化日志怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!