您好,登錄后才能下訂單哦!
這篇文章主要介紹“Kubernetes結構化日志怎么使用”,在日常操作中,相信很多人在Kubernetes結構化日志怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Kubernetes結構化日志怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
日志是可觀察性的一個基本方面,也是調試的一個關鍵工具。但是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結構化日志怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。