共计 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 小编会继续努力为大家带来更多实用的文章!