kubernetes下监控体系的构建
整体结构如图所示,下面我们来分别介绍每一部分的构建方案,以及相关的参考
k8s本身的监控
k8s事件监控体系的补全
大家都知道k8s本身的事件体系还是比较强大的,非常适合其本身的声明式API的特征。
但是k8s的事件体系缺乏对Node层的支持,而为了弥补这方面的不足,开源社区通过NPD项目来支持,阿里容器团队在开源NPD的基础、上添加了云相关的监控(irqbalance、snat等)
NPD组件非集群默认安装,需要大家手动安装,主要下安装时的参数
最最重要的是NPD组件免费
而且,我们还开放了容器的事件体系
执行参考https://help.aliyun.com/document_detail/150476.html
效果如下图
k8s集群基础监控
k8s本身具有一定的复杂度,如何对k8s本身进行监控对于初学者来说比较复杂,我们推荐通过托管版的Prometheus来进行监控,
系统预置的几组大盘数据基本能够满足对k8s本身的监控诉求,最重要的是 预置大盘都是免费的
安装过程参考 https://help.aliyun.com/document_detail/124752.html
效果如下
应用性能监控
应用级别的监控非常重要,大体上分为metrics、trcing、log三种类型信息的监控
就方案上来说
应用类型 | Metrics支持方案 | Tracing支持方案 |
---|---|---|
Java应用 | Arms | Arms |
PHP应用 | Arms | Arms |
其他应用 | 托管Prometheus | 链路追踪 |
使用参考
arms使用参考:https://help.aliyun.com/document_detail/125726.html
链路追踪使用参考:https://help.aliyun.com/document_detail/90277.html
托管版本Prometheus参考:https://help.aliyun.com/document_detail/124752.html
ps: 隐藏功能:当同一个微服务体系,同时有使用arms进行java/php的监控,使用链路追踪进行其他语言的监控的时候,可以自动把不同语言的tracing信息添加到同一个调用树上,拥有完整调用链
架构感知
无论何种架构,一个随着系统演进不断更新的全局架构图总会帮助我们更好的理解系统、管理系统。
更好的消息是,这个功能也是免费的