golangjson获取所有key_请使用JSON格式记录日志,好吗?

golangjson获取所有key_请使⽤JSON格式记录⽇志,好吗?⽇志和监控就像 TonyStark 和他的 IronMan 西装⼀样,两者需要起使⽤才能发挥最⼤的威⼒,因为它们可以很好互补。
⽇志⼀直是应⽤程序和基础框架性能和故障诊断的重要⼿段,但是现在我们已经意识到⽇志不仅可以⽤于故障诊断,还可以⽤于⼤数据分析以及业务的⼀些可视化和性能分析等等。
所以,记录应⽤程序⽇志是⾮常⾮常重要的。
为什么使⽤ JSON 格式
为了了解 JSON ⽇志记录的优越性,我们先来了解下 Anuj(系统⼯程师)和 Kartik(业务分析师)之间的⼀次对话。
但是⼏天后 Kartik 发现 Web 接⼝挂掉了,Anuj 摸了摸头,看了看⽇志,发现是开发⼈员在⽇志中添加了⼀个额外的字段,这破坏了他⾃定义的⽇志解析器。
我相信很多童鞋都可能遇到过类似的情况吧?
在这种情况下,如果开发⼈员将应⽤程序设计为 JSON 格式的⽇志,那么 Anuj 定义的解析器就⾮常简单了,然后基于 JSON 的 key 搜索字段就可以了,⽽不需要关⼼是否在⽇志中修改了新的字段。
使⽤ JSON 格式的⽇志最⼤的好处就是它本⾝就是结构化的,这样我们去分析应⽤⽇志就⾮常⽅便了,不仅可以⽅便读取⽇志,还可以通过每个字段进⾏⽇志查询,⽽且⼏乎所有编程语⾔都可以很轻松的解析它。
JSON ⽇志魔法
最近我们创建了⼀个 Golang ⽰例应⽤程序,来获取代码构建、测试和部署阶段的⼀些相关信息,我们就采⽤了使⽤ JSON 格式的⽇志进⾏记录。
采集的⽇志样本如下所⽰:
在使⽤ ELK 进⾏⽇志收集的时候,我们只需要在 Logstash 中添加如下所⽰的⽇志解析即可:
filter {
大数据日志分析json {
source => "message"
}
}
我们不需要任何额外的解析步骤,即使在⽇志中添加了新的字段。采集到的⽇志如下图所⽰:
我们可以看到在 Kibana 中已经将 JSON ⽇志的 key ⾃动解析为了 ES 的属性,⽐如 employeename、employeecity 等字段,我们完全不需要在 Logstash 或者其他⼯具中去添加⼀些⾮常复杂的解析,现在我们使⽤这些数据去创建⼀些 Dashboard 进⾏数据分析就⾮常容易了。
结论
从⽂本⽇志迁移到 JSON ⽇志格式并不会花费太长时间,⼤部分编程语⾔都有对应的 JSON ⽇志库,我⾮常确信 JSON ⽇志格式会为你当前的⽇志收集系统提供更⼤的灵活性。
下⾯是⼀些⽀持 JSON ⽇志格式的流⾏的库:
希望现在⼤家对 JSON 格式⽇志有⼀个更好的了解。
K8S 进阶训练营,点击下⽅图⽚了解详情

本文发布于:2024-09-23 02:22:17,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/387239.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字段   需要   程序   性能   起使   测试
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议