Kubernetes结构化日志怎么使用

55次阅读
没有评论

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

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计1341字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)