云原生全栈监控解决方案.docx
《云原生全栈监控解决方案.docx》由会员分享,可在线阅读,更多相关《云原生全栈监控解决方案.docx(19页珍藏版)》请在优知文库上搜索。
1、前言当前全球企业云化、数字化进程持续加速,容器、微服务等云原生技术在软件架构中快速渗透,IT架构云化、宜杂化持续驱动性能监控市场.企业云化、数字化持续转型,以及为了考虑系统的弹性、效率,企业软件开发中大量云原生技术的应用推动全球IT监控市场快速变化,如何全面、有效的对容器、K8s、微服务进行监控是当下云原生技术面临的击要课题.背景和挑战云化产品通常采用服务化框架,由一系列微服务组成,且微服务是可以独立运行的进程,不同服务可使用不同开发语言,可能分布部署在几千台服务器上,甚至可能横跨多个不同的数据中心,服务间使用轻量的通信机制;服务之间存在复杂的调用关系,对运维人员理解系统的行为或分析系统性能带
2、来巨大挑战如:(1)容器是否正常运行(2)K8S是否正常运行.(3)微服务是正常(5)业务调用出现问题,如何快速找出哪个服务发生失败?(6)某个业务调用耗时较长,如何快速找到性能瓶颈点?(7)如何快速获取某次调用的业务日志进行分析定位?解决方案概述云原生监控体系包括:HealthChecks、MetriCs、1.ogging、TraCing.Healthchecks:健原检查可以定期检有某个应用的存活状态;Metrics:度量指标监控,在离散的时间点上产生数值点;1.ogging:日志监控;Tracing:调用揖监控.各种监控工具适用场里如下图所示:适用场合健康检直微服务架构,为了保证所有服务
3、可用,当服务发生问题时能及时摘除有问题的服务需要定期检测服务可用性,即健康检查,通常健康健康检查包括TCP与HTTP两种。即定时发送TCP或HTTP请求,根据响应来确定服务是否可用。一般通过TCP定期请求来判定网络层是否正常,而通过Http请求判断应用层是否正常.服务要配置好请求接口,检测服务定期向指定的接口发送http请求,并根据接口响应码和响应时间判断.Springboot的endport/health可以检鱼应用的健康状态,举例说,当我们访问http:/localhost:8088/health时,可以看到HeaIthEndPoint给我们提供默认的监控结果,包含磁盘检测和数据库检测.(
4、,status:,UPr*diskSpace:,status:UP,total*:398458875904,free:315106918400,threshold,:10485760,db,:,status:,UPrdatabase:MySQ1.,hello:1)容器监控容器监控使用Prometheus-CAdvisor,CAdvisor是谷歌专为监控容器性能状态设计的一个开源工具,CAdvisor提供有Push和Pull两种获取性能数据的接口.Push接口指的是由CAdvisor主动将数据周期性的推送到远端的存储服务中,Influxdb与CAdvisor的对接就是通过这个接口完成的.而Pul
5、l接口则允许外部访问服务随时主动从CAdvisor获取到当时时刻的性能数据,然后自行处理,PrOrnetheUS与CAdViSor的对接用的是这种方法.基于容器的微服务监控和原始的监控是有很大区别的,因为服务的实例生存周期很短分分钟可能就会有容器的生灭。微服务的容器与宿主机的监控离不开CPU、内存、磁盘、网卡这些基础的性能指标,对于宿主机的监控来说,我们可以依然使用原始的监控方式,每个宿主机安装一个代理来采集服务器的性能指标,代理在采集性能指标的时候可以打上时间做和相应的标签来区分不同性能指标的数据维度(metric),然后将监控数据汇总到时间序列数据库,里面的数据可以对接目前一些开源的组件来
6、进行可视化的展示,也可以对接报警服务(结合报警服务的报警策略)进行报警。容器的监控自然就和宿主机不太一样了,我们不能说给每个容器镜像内部都集成一个监控代理(agent),这样的话侵入性太强,不易于维护.Prometheus有很多的EXPorter可以用来采集监控数据,例如我们想采集KUberneteS上所有容器(pod)的性能指标的话,Promethus可以通过直接配置多个KubernetesApiServer的Endpoints来监控整个Kubernetes集群.K8S监控K8S集群层面选择使用Prometheus.集群层面的监控又分为Node、K8S基础组件、K8S资源对蕊三大类.1 .对
7、于Node的监控,Prometheus提供了node-exporter,可采集到CPU、内存、磁盘10、磁盘使用率、网络包量、带宽等数据;2、K8S基拙组件类的kubelet、kube-apiserver、kube-ContrOHer-manager和kube-scheduler等,都提供了metrics接口品露自身的运行时的监控数据,这些数据都可被部署在K8S集群中的Prometheus亘接拉取到;3、结合Cadvisor和kube-state-metrics,可直接采集到K8S中Pod的CPU、内存、磁盘】0、网络10等数据.由CoreOS开源的KUbe-Prometheus项目,极大简化
8、了Prometheus的安装部署运维工作。基于KUbemeteS实现的微服务应用级的监控插件,如下图:在Kubernetes的master节点,也就是安装apiserver的那台服务器上运行一个监控插件,该插件可以通过一个kubernetes提供的官方客户端来访问apiserver,首先我们要告知插件要监控哪个namespace下的哪个service,然后,插件通过和apiserver进行交互获取某个service下所有Pods的实例,插件会并发访问所有pod提供的/metrics接口(Path可配),并给每个pod的返回数据(json格式,遵守一定的数据格式契约)打上pod.name的标签来
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 原生 监控 解决方案