背景
近年来随着以 Kubernetes 为代表的云原生技术的崛起,应用上云是大势所趋,随之而来的问题是应用日志的收集、查看、检索等问题。
云原生时代的日志有以下几个特点/痛点:
- 日志更多
在应用上云之前,大多数应用都是运行在某个服务器上,每个应用程序通常仅生成一个日志。现在随着应用上云、落地微服务架构,服务之间的依赖关系越来越复杂了,这时的问题排查将十分复杂,如何关联各个维度、服务的日志将是一个困难的问题。 - 多样化日志结构
在上云之后,绝大多数的开发者都习惯于通过终端输出日志,但这些日志有的是一条普通文本,有的是一条json,如何兼顾多种日志结构,满足不同的业务需求? - 环境的动态性变强
在Kubernetes中,机器下线、上线、Pod销毁、扩容/缩容等都是常态,这种情况下日志的存在是瞬时的(例如如果Pod销毁后该Pod日志就不可见了),所以日志数据必须实时采集到存储系统。 - 日志与Trace
当应用开发者根据 Trace 定位到问题模块、方法的时候,如何查看该请求对应的日志上下文?
当应用开发者在日志中发现一个异常的时候,如何查看该日志对应Trace上下文?
解决方案
针对云原生场景下的日志需求,我们开发者平台(https://x.jiankunking.net)提供了以下核心能力:
- 日志检索
- 日志上下文
- 日志处理
- 日志下载