Kubernetes结构化日志怎么使用

这篇文章主要介绍“Kubernetes结构化日志怎么使用”,在日常操作中,相信很多人在Kubernetes结构化日志怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Kubernetes结构化日志怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

10年积累的成都网站建设、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先制作网站后付款的网站建设流程,更有柯坪免费网站建设让你可以放心的选择与我们合作。

日志是可观察性的一个基本方面,也是调试的一个关键工具。但是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结构化日志怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


文章标题:Kubernetes结构化日志怎么使用
地址分享:http://scyanting.com/article/ijoede.html