目录
一、可观测性发展
1、单体应用 - 手动日志排查
单个应用承载复杂逻辑,应用实例数量有限,本地Debug可以解决大部分问题。
2、分布式服务 - 基础指标+日志检索
业务逻辑模块化拆分,节点数量依然可控,简单节点指标检查和架构自带调用链可以满足诉求。日志检索问题初现。
3、容器化微服务 - Prometheus+ELK+Tracing
服务部署容器化,节点数量无法手动管理。K8s控制面+Prometheus成为标配,ELK协助日志汇聚,检索。Tracing诉求强烈,OpenTracing&OpenTelemetry出现。
4、无服务/网格 - Metric+logging+Tracing
运行时虚拟化,应用架构层次增多。复杂架构直接影响故障排查速度。
二、传统的日志架构
- 后台⽇志:对异常uid进⾏染⾊,全量存储后台⽇志
- 客户端⽇志:通过tcp长连接,捞取客户端⽇志
- 单机⽇志->远程⽇志->染⾊⽇志