云时代监控系统设计和发展方向的探讨
当前业界有各类监控系统:zabbix、open-falcon、Ganglia、Prometheus等,这些系统都有它们自身的优势和缺陷,在做开发中总会去想监控系统什么样的才算是最好的或最成熟的,我觉得可能是这样的吧:
具有统一性和多样性的综合性集成化监控系统才能去适合或赶上公司的发展和各个业务组或客户的需求或需要。
统一性:
1、大框架或主架构的统一:我们要有一个不变的,健壮的主力架构,所有的功能性开发和模块化开发都应在框架的基础上去开发,而不是增加功能或调整模块时,就要去对框架进行改动。
2、数据格式的统一:我们有各类监控系统或监控功能或指标,但我们没有一个统一的格式去规范,不论是数据形式,字符串形式,文本形式等等,我们应有属于我们监控的一套规范化要求,当然这个要求或格式要尽力友善或人性化。这对于我们数据的监控、存储、查询、统计等等将提供很多的便利性。
多样性:
1、采集方式多样性:比如:agent主动的采集、插件的采集、脚本的采集、容器形式进行的采集、命令的采集和对外提供的接收指标的api等等,业务部门有各类需求也有各类要求,提供多样话采集或收集方式个人觉得是趋势所在也是监控实力所在。
2、多样性的存储:我们有各种各样的数据,比如:整形数、浮点型数,增长型数据、波动型数据、字符串、文本或日志等等,为什么只追求使用一种数据库去存储所有的数据,为什么不能使用各种好的数据库去分别存储适合自己的数据,组合为综合性数据库。同时也就需要了我们的存储引擎和查询引擎的多样性支持。
3、数据展示的多样性:随着业务量和需求的增长,我们的数据会是多样性的,我们的展示也应该是多样性的,数值的展示,字符串的展示或综合性的展示,例:监控组应该有一个自己的综合性大屏展示自己各个模块的监控(软件和硬件的)监控状态,运行状态,负载状态,以及预计系统健康持续状态等等数据。展示综合性大屏类似如图所示(图片为网络借用):
小到业务组,大到部门、公司等综合性数据展示是监控系统最直观和有冲击力的展现形式之一,个人觉得这应是我们的研发方向中的一项。
4、 告警策略的多样性(告警方式的多样性当前支持的已挺好,有邮件、短信、电话、其他通信软件的通知等等),随着我们的指标多样性的增加,我们的告警规则/策略/配置等需要满足各类的告警条件支持,比如:数值的,波动的、增长型的,字符串匹配/匹配的或正则判断,日志检索,文本内容检索、统计等等。
5、 开发语言的多样性:系统层的开发语言有很多,不同的处理流程或模块有不同的功能或性能需要,应该用最适合的开发语言做最擅长的事情,个人不赞成使用一种语言去开发整个系统的所有流程和功能,一种语言总有它的局限性所在,高效的多语言团结协作发挥出的力量才会更大。
在芯片或电路板中我们当前的技术是大规模集成电路,在厂商(华为、思科、华三、浪潮等)的硬件部署或布局中有大规模集群化管理平台(俗称一键化管理平台),那么监控系统作为一个应用层系统上的一个应用软件平台,更应该具备集成化管理/监控的功能,所以监控应该是综合性的集成化监控平台,我觉得这种形态最终应该称为:云监控。
(注意:本文为原创文章,引用我的概念请注明出处 !!!)