做监控源于我们早期做运维服务的必然需求,我们的愿望是基于Zabbix这个强大开源平台,结合实际一线运维工作的需要+ITIL等运维理论,做成类似MIUI一样的开发、易用、实用、人性和美观的全新的监控平台。
架构设计
下图是我们的软件逻辑架构:
这个架构有两个最重要的基础:
1. 将Hosts区分为主机、网络通讯设备、数据库、中件间、业务系统、虚拟机、硬件、链路等实体IT基础架构组件;
2. 深度定制的基于Zabbix API实现,以PHP语言实现,把Zabbix原生页面保留在系统后台。
软件平台在功能逻辑上分为四层
基础层:这一层以一个分布式、高可用、高并发的软件服务端为基础,构建以被驯服了的监控模板、指标和阀值为基础的底层监控体系,这一层纯粹是我们使用Zabbix的积累和经验。
功能层:基于Zabbix API实现的管理功能,这些功能抽取了大部企事业单位的监控需求的公约数。
展示层:监控效率的显性化表达,大屏设计,业务地图(CFIA的显性化),网络拓扑图,大部分客户都会需要的业务量监控的显性化集成,业务量监控本身又是另外一个话题,当然这里的业务量核心在于源数据的获取,剩下的套路都基本一致,设计指标,设置阀值,触发告警通知等
接口层:主要对接外部接口,如IM、短信、邮件、声音等
在功能上最大的三个特点是结合生产实际:实现了拓扑的自动生成、自定制投屏和业务地图(CFIA,故障组件影响分析树),拉近了Zabbix和业务生产运维的实际需要。
前端交互
界面采用了Twitter开源的Bootstrap的前端框架,图表采用了Baidu开源的ECharts控件。