38 | 日志管理:如何借助工具快速发现和定位产品问题 ?
38 | 日志管理:如何借助工具快速发现和定位产品问题 ?
讲述:宝玉
时长11:55大小10.89M
什么是日志管理?
如何快速发现和定位问题?
大厂的日志管理系统的架构是什么样子?
怎样搭建一套日志管理系统?
总结
课后思考
赞 3
提建议
精选留言(10)
- yellowcloud2019-05-28宝玉老师您好,目前我们公司是做数据共享交换平台的,目前对接了大量的汇聚共享的数据,对接这些数据也使用了大量的服务,随着对接工作的日益庞大,目前也考虑搭建一套ELK对日志进行管理。但是目前在使用过程中,我们一直在思考服务实际运行或者对接链路中那些信息需要抛给日志管理系统,目前已有的日志记录信息是请求IP、访问路由、访问时间、内容字节、参数、响应时间、报文等等,总是感觉自己在某些方面考虑不周全,无法对可能发生错误的区域进行全覆盖,宝玉老师这里有关于日志具体记录那些细节的材料吗?展开
作者回复: 抱歉我没有材料来说明应该记录哪些日志。 不过我觉得你说的这些日志信息基本上涵盖了,如果要补充的话,我建议对于每一次用户的请求,在入口处生成一个唯一的请求编号,对于这次请求经过的所有服务,都统一带上这个唯一请求编号,以后定位问题是,根据请求编号,就可以快速的发现是在哪一个服务出现问题。这是我在实践中觉得特别有效的一个字段。 另外异常信息、错误堆栈非常有用,必须确保记录下来了。 其实具体要哪些信息,你可以站在故障排查和数据统计的角度思考,哪些信息是有帮助的,然后记录下来。 最重要是先搭建起来一套日志管理的体系,然后实际应用中逐步补充完善。
7 - alva_xu2019-05-29我写过一遍关于ELK的博文《从Filebeat到Logstash再到Elasticsearch,如何搭建ELK 日志平台》https://blog.csdn.net/alva_xu/article/details/84578787,敬请指正。
作者回复: 感谢分享,已拜读。这一篇是关于如何搭建系统的,后续是不是还会有基于这个系统集成应用程序日志,以及对应用程序监控的文章?期待:)
4 - 峰2019-06-01宝玉老师,我们项目是.net做的,最近想用nlog 来釆集日志到es中,但系统度量是另外的方案baidu 上都是appmetrices+influxdb+grafana,所以我想实现日志,应该放es好些,但如何同时满足度量的需求呢?因为度量本身也是基于日志
作者回复: 我觉得不必非要强行整合在一起,因为对于监控来说,理论上来说可以有多个数据源,我对Grafana不够熟悉,不太确认但我想应该可以同时获取展示来自InfluxDB和ES的数据。 你可以考虑以下方案(仅供参考,我没有验证过可行性):nlog的数据还是放在es,系统度量用appmetrices+influxdb+grafana,然后在grafana上集成其余的你想监控的从es查询的数据。 我有见过类似的架构: wavefront(类似于grafana)获取metrices和ES查询的数据。
3 - hua1682019-05-30大公司系统复杂,每天产生日子很大又多,单靠人工排查肯定不行。 是不是他们有很好的监控系统?尤其是业务监控,都做监控埋点?一般像一场马上就可以报警,有的会先自动化修复,不行的话就报警。
作者回复: 是的,基于日志有监控系统,可以直观从图表实时看到数据变化,会有自动报警。 数据量大不是问题,现在基于大数据的数据检索方案已经比较成熟了。 自动修复我不知道是不是有,目前应该还不成熟,也就是自动重启下服务,未来也许会有AI能直接处理线上故障吧:)
3 - hua1682019-05-29像ELK收集到日志,还要做日志过滤的吧,怎么过滤,是收集的时候过滤,还是收集好再用大数据分析显示出自己需要的? 现在有点大的单有日志监控不行,都会链路跟踪系统去跟踪哪个环节出问题
作者回复: 拿ELK来说,是在Logstash那一层做过滤和解析,必须现过滤和解析检索才能高效。 是的,如果系统很多很复杂,必须要链路跟踪是哪个环节出的问题。
4 - 孤星可2019-05-29graylog 也不错 开源
作者回复: 谢谢分享👍
3 - Charles2019-05-28我们目前用了云厂商的日志服务,尝试过自己搭和维护,实在太费劲了 问老师一个问题,目前只放了nginx日志到日志服务做一些简单的分析,还有其他什么日志是应该放到日志服务里的?有什么比较好的实践吗?谢谢
作者回复: 我觉得应用程序的日志也应该考虑放进去,对排查问题很有帮助。 应用程序的异常信息、错误堆栈非常有用,必须确保记录下来了。 举个例子来说,你的一个手机App,一些特定场景下,某个API请求出错,而这个API可能背后会连接多个服务或者数据库,这样的场景下,光靠nginx日志是不够的,必须要有应用程序的日志配合才好定位。 你可以参考上一篇我提到了一个requestId的实践。
3 - 峰2019-05-29请问可以通过什么系统设置响应阀值报警呢
作者回复: 你可以搜索一下关键字:“ELK ElastAlert 报警”应该可以找到不少记录,比如说: https://blog.51cto.com/seekerwolf/2121070 https://segmentfault.com/a/1190000017553282
2 - 拉欧2019-05-28现在几乎所有的大厂都有一整套日志管理方案,大部分还不止一套
作者回复: 👍确实如此,因为这样的系统对于复杂应用的故障定位来说,太有用了太有必要了。
2 - ifelse2022-07-07通过日志管理工具,可以集中的管理所有系统的日志,方便对日志进行检索,图形化的展示结果,还可以做到根据设置的规则进行自动报警。--记下来2