容器云平台监控架构设计及优化.docx
《容器云平台监控架构设计及优化.docx》由会员分享,可在线阅读,更多相关《容器云平台监控架构设计及优化.docx(41页珍藏版)》请在优知文库上搜索。
1、1概述随着容器化的大力发展,容器云平台已经基本由Kubernetes作为统一的容器管理方案.当我们使用Kubernetes进行容器化管理时,传统监控工具如Zabbix无法对Kubernetes做到统一有效的全面监控,全面监控Kubernetes也就成为我们需要探索的问题.使用容器云监控,旨在全面监控Kubernetes集群、节点、服务、实例的统计数据,验证集群是否正常运行并创建相应告警.本文旨在于介绍容器云平台监控的架构设计及优化.2价值和意义监控是运维体系中是非常里要的组成部分,通过监控可以实时掌握系统运行状态.对故障提前预警.以及历史状态的回放,还可以通过监控数据为系统的容最规划提供辅助决
2、策,为系统性能优化提供真实的用户行为和体验.为容器云提供良好的监控环境是保证容器服务的高可鸵性、高可用性和高性能的重要部分,通过对本文的学习,能够快速认识当前容器环境下都有哪些监控方案,并对主流的监控方案有一个系统的了解和认识.3监控方案选型3.1容器云监控方案有嘟些(1)ZabbixZabbix是由AlexeiVladishev开源的分布式监控系统,支持多种采集方式和采集客户端,同时支持SNMP、IPM1.JMX、Telnet,SSH等多种协议,它将采集到的数据存放到数据库中,然后对其进行分析整理,如果符合告警规则,则触发相应的告瞥.Zabbix核心组件主要是Agent和Server,其中A
3、gent主要负责采集数据并通过主动或者被动的方式采集数据发送到ServerProy,除此之外,为了扩展监控项,Agent还支持执行自定义脚本.Server主要负责接收Agent发送的监控信息.并进行汇总存储,触发告瞥等。ZabbixSerVer将收集的监控数据存储到ZabbixDatabase中。ZabbiXDatabase支持常用的关系型数据座,如MySQ1.、P。StgreSQ1.、Orade等,默认是MySQ1.并提供ZabbixWeb页面(PHP编写)数据直询.Zabbix由于使用了关系型数据存储时序数据,所以在监控大规模集群时常常在数据存储方面捉襟见肘.所以从Zabbix4.2版本后
4、开始支持TimescaIeDB时序数据库,不过目前成熟度还不高。(2)Open-FalconOpen-Falcon是小米开源的企业级监控工具,用Go语言开发而成,包括小米、滴滴、美团等在内的互联网公司都在使用它,是一款灵活、可扩展并且高性能的监控方案,主要组件包括了:1 )Falcon-agent是用Go语言开发的Daemon程序,运行在每台1.inUX服务器上,用于采集主机上的各种指标数据,主要包括CPU、内存、碳盘、文件系统、内核参数、Socket连接等,目前已经支持200多项监控指标。并且,Agent支持用户自定义的监控脚本.2 )Hearthbeatserver简称HBS心跳服务,每个
5、Agent都会周期性地通过RPC方式将自己的状态上报给HBS,主要包括主机名、主机IP、Agent版本和插件版本,Agent还会从HBS获取自己需要执行的采集任务和自定义插件.3 )Transfer负责接收Agent发送的监控数据,并对数据进行整理,在过混后通过一致性Hash算法发送到JUdge或者Graph.4 )Graph是基于RRD的数据上报、归档、存储组件。Graph在收到数据以后,会以rrdtool的数据归档方式来存储,同时提供RPC方式的监控查询接口.5 JJudge告警模块,Transfer祷发到Judge的数据会发用户设定的告警规则,如果满足,则会触发邮件、微佶或者回调接口。这
6、里为了避免电宣告警引入了Redis哲存告警,从而完成告警的合并和抑制.6 )Dashboard是面向用户的监控数据直询和告警配署界面.(3)NagiosNagiosN名为NetSaint,由EthanGalstad开发并维护。Nagios是一个老牌监控工具,由C语言编写而成,主要针对主机监控(CPU、内存、磁盘等)和网络监控(SMTP、PoP3、HTTP和NNTP等),当然也支持用户自定义的监控脚本.它还支持一种更加通用和安全的采集方式NREP(NagiosRemotePluginExecutor),它首先在远端启动一个NREP守护进程,用于在远端主机上面运行检测命令,在Nagios服务端用c
7、hecknrep的plugin插件通过SS1.对接到NREP守护进程执行相应的监控行为.相比SSH远程执行命令的方式,这种方式更加安全.(4)PrometheusPrometheus是一个很受欢迎的开源监控和警报工具包,继Kubernetes之后成为第二个正式加入CNCF基金会的项目,2017年底发布了基于全新存储层的2.0版本,能更好地与容器云平台配合.能实现dockerstatus.CAdvisor的监控功能,并且Prometheus原生支持Kubernetes监控,具有Kubernetes对象服务发现能力,Kubernetes的核心组件也提供了Prometheus的采集接口.单个Prom
8、etheus可以每秒抓取10万的metrics,能满足一定规模下k8s集群的监控需求,并且具备良好的三11旬能力,提供数据声询语言PromQ1.,PromQ1.提供了大量的数据计凭函数,大部分情况下用户都可以直接通过PromQ1.从Prometheus里直询到需要的聚合数据.3.2方案对比并确定通过以下方面对上述监控方案进行对比:1 )从开发语言上看,为了应对高并发和快速迭代的需求,监控系统的开发语言已经慢慢从C语言转移到G。.不得不说,Go凭借简洁的语法和优雅的并发/Java占据业务开发,C占领底层开发的情况下,准确定位中间件开发需求,在当前开源中间件产品中被广泛应用.2 )从系统成熟度上看
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 容器 平台 监控 架构 设计 优化
