1 概述
1.1 背景
-
QT是一个私有化部署的大数据分析产品,再给客户部署后,经常会各种客户现场问题需要我们排查,目前排查成本很高
-
弹内应用有完善的监控体系:SLS、SunFire、鹰眼等,但在我们给客户私有化部署时候没有这种套件
1.2 QT的可观测性历史
第一阶段:依托阿里云
-
QT部署形态最开始依托于阿里云,所以监控体系均以来阿里云内置的云监控
-
在云上这种监控体系基本上可以满足我们可观测性的需求
第二阶段:云原生-指标监控
-
随着客户的私有化要求越来越多,QT开始转向给予k8s的云原生部署形态
-
在这一阶段,我们接入了prometheus+grafana的监控体系重点做了中间件的监控
第三阶段:云原生-日志审计,链路追踪
-
随着客户接入越来越多,以往的手工日志排查遇到了效率的瓶颈,随着QT的客户越来越多,人力和客户问题排查矛盾日益增加:原始方法:
-
RPC查询日志:登陆POD-A查看日志,然后记录问题,如果有问题复制关键词,去对应的RPC的POD-B去关联查询日志
-
多副本查询日志:比较头痛的是如果一个deploy有多个副本的时候,查询日志需要查询多次
-
这时候引入了EFK的方案去解决
第四阶段:云原生-大规模业务监控
-
随着业务的发展,QT团队与羚羊的运维团队进行合作,后续运维的工作逐步交接出去
-
新的矛盾
-
运维同学不太了解QT的代码,只通过日志分析无法定位到问题
-
被动发现的问题越来越多(客户反馈),急需搞定主动发现通道,解决这个尴尬场面
1.3 参考资料&必看文档
可观测性
可观测行-聚合度量
Prometheus4指标说明
Prometheus的四种指标类型,看完就懂了-CSDN博客
钰昭的文档
Prometheus中文手册
给你的SpringBoot做埋点监控--JVM应用度量框架Micrometer
给你的SpringBoot做埋点监控--JVM应用度量框架Micrometer_springboot micrometer-CSDN博客
micrometer官方说明
https://micrometer.io/docs/concepts#_counters
promethus安装
https://www.servicemesher.com/blog/prometheus-operator-manual/
micrometer使用说明
https://www.cnblogs.com/cjsblog/p/11556029.html
k8s官方中文文档
官方文档-集群日志管理
fluentd-kubernetes文档
GitHub - fluent/fluentd-kubernetes-daemonset: Fluentd daemonset for Kubernetes and it Docker image
1.4 关键名词
Prometheus Prometheus - Monitoring system & time series database
Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报ÿ