Cloudpods 是一个开源的 Golang 实现的云原生的多云和混合云融合平台。
Cloudpods 不仅可以管理本地的虚拟机和物理机资源,还可以管理其他公有云和私有云平台的资源。
GitHub: https://github.com/yunionio/cloudpods
本文主要通过总体介绍、核心监控 Agent 介绍、总结和演示三个部分为大家解析多云虚拟机统一监控的功能。
1 、多云虚拟机统一监控
首先,作为一个多云管理平台,统一监控是一个非常必要且重要的功能。
1 )架构
云联壹云一直都有统一监控的功能,主要是搜集各个基础设施的监控信息,然后进行统计。
2 )过去的实现
之前,进行监控查询、监控报警、监控运维的实现方式是调用各个云厂商的云 API ,获取其监控数据,这样的实现比较简单自然。
但是缺点也很明显:
第一,监控数据的不统一。阿里云的监控数据和腾讯云的监控数据虽然大体上一致,但是也会有不同之处。
第二,调用云 API 时,会有调用次数限制。比如阿里云的 API 会限制每天的调用次数,若调用次数超过限制值,则会导致无法获取数据,所以只能调高调用的间隔,这可能会造成一些数据的缺失。
第三,监控数据的延迟比较高。一方面是因为次数的限制导致它的间隔要调大,我们要不断拉下来,相当于是二手数据,延迟较高,对于告警等会有阻碍作用,因为告警需要即时的数据。
3 )现在的实现
现在的实现是给多云虚拟机安装监控 Agent ,监控 Agent 会在虚拟机上收集监控数据,然后主动将数据 push 到云联壹云的数据库中,如此上述的三个缺点即可克服。
因为每个虚拟机都有统一的 Agent ,所以最终得到的数据也是统一的。
由于不通过云厂商的 API ,所以也没有调用次数的限制。
是 Agent 主动 push 数据,我们也可以控制延迟。
现在的实现是通过监控 Agent 来做多云虚拟机的统一监控,下面为大家重点介绍监控 Agent 。
2 、监控 Agent
监控 Agent 是运行在虚拟机上的 daemon ,它的作用是采集监控数据,并把数据传回到云联壹云的 influxdb 中。
那么如何将 Agent 安装到虚拟机中?如何让它采集数据?如何把数据传回来?
之后还有相关的超详细内容,篇幅所限,点击了解全文详情: https://mp.weixin.qq.com/s/YChQekRVuQuhq6SVuSiMuQ