案例|兴业银行如何基于Zabbix+Grafana构建微服务自动化监控运维平台?
本文转自:潘少博、张和、戴谊. 基于Zabbix+Grafana构建微服务自动化监控运维平台[J]. 网络安全和信息化, 2020, No.54(10):81-83.
摘要 :兴业银行目前已经具备“兴业银行集中监控平台”(IBMTivoli)和“兴业银行可用性预警平台”这两个成熟、完善并优势互补的监控运维平台后,带来了服务易扩展、高可用、技术异构等诸多好处,但也使得服务器数量陡然增加,运维压力加大。笔者基于Zabbix+Grafana构建了微服务自动化监控运维平台,成功将运维工作化繁为简。
挑战
兴业银行目前服务器数量日趋增加,依然对单位的运维工作提出了更高的要求与挑战。
1. 自动化运维
服务器数量众多,必然增加人力运维的工作量和压力,且对运维工作的时效性、标准性提出更高的要求。若能便捷、规范地将已知常见的运维工作形成标准的自执行流程,无需人工干预,必能大大降低运维成本。
2. 应用层集中监控
微服务化后,整个应用分散成多个服务,现有监控平台缺乏在应用层面查看其下各类服务的整体运行情况及核心监控指标的功能,不便运维人员从宏观视角了解服务运行状况。
3. 个性化监控信息采集
微服务架构中组件繁多,各类组件所需要监控的指标不同,特定场景下可能需要实现监控指标的定制与采集(尤其是某些业务应用),需要确立灵活、简单、通用、可扩展的监控指标定义与采集机制,以应对个性化监控的需求。
4. 快速部署
微服务架构下,面对大量主机的监控需求,若具备标准、简单、快速的主机监控部署流程,可大大简化运维人员的部署、配置工作。
5. 对现有平台的补充
“兴业银行集中监控平台” (IBMTivoli)和“兴业银行可用性预警平台”作为成熟完善的监控平台,已经满足绝大多数场景下的日常运维管理需求,故仅需针对微服务场景下出现的新增需求制定合理的方案,作为对现有平台的补充。
具体实施
1. 方案阐述
针对上述的问题和需求,我们基于监控工具 Zabbix和数据可视化工具 Grafana,构建了单位微服务自动化监控运维平台,并制定相应配套方案,帮助运维人员尽早获知预警信息、及时定位解决问题,减少人力工作,保障主机及各微服务的持续稳定运行,推动单位系统的智能化、轻型化、简单化发展。
2. 开发历程
根据技术架构微服务化下新增的运维问题和需求,结合单位实际情况,我们首先进行了技术选型与方案确立工作。
Zabbix 作为业界广泛使用的企业级监控工具,具备开箱即用、灵活可扩展、分布式监控、高可用、安全保障等诸多优势。Zabbix 官方及社区已经具备大量的主机与应用监控模版可直接使用,免去极大的定制开发工作。不仅如此,通过 Zabbix的主机自动注册功能及全平台支持的监控采集工具,可快速完成主机的部署配置。另外,Zabbix 提供了自定义监控项、远程运行自定义脚本的功能,通过编写通用脚本与简单的 Web 配置,可灵活扩展,满足个性化监控、自动化运维的需求。基于以上优点,我们选择 Zabbix 作为平台的核心组件。
Zabbix 作为监控工具足够优秀,但其监控图形化视图的多样性、美观性、功能性相对较弱,且仅支持单机指标的监控视图,缺少统计视图的支持。基于此,我们选用了同样广泛使用的数据可视化工具Grafana 用于监控数据的展示。随后我们确定了平台的监控方案与部署方案,并首先在单位测试环境下进行了部署实践,将测试环境下已有的微服务主机纳入监控,并在过程中不断优化、完善方案,完成了以下工作 :
(1)主机自动监控
通过平台设置 + 脚本配置的方式,实现主机自动化安装、配置并直接纳入监控,免除繁琐手动操作。
(2)个性化监控信息采集
实现了通用的服务进程运行情况监控,与 Informix、
MySQL 等常见基础服务的个性化监控信息的采集。
(3)自动化运维机制
借助平台的告警触发机制与远程执行自定义脚本的功能,制定了自动化运维方案与脚本编写规范,并实现了服务重启等基础场景下的自动化运维流程。
(4)多样化、阶梯式告警策略
我们将平台与笔者单位消息中心实现了对接,使其支持监控告警信息以邮件、短信的形式告知相关运维人员,并基于告警问题的严重性与分类,从而实现了分级别、分类型、阶梯式的告警策略。
根据实际的监控可视化需要,我们在 Grafana 上配置了全局、应用、主机、主机服务等多个维度的监控仪表板,方便运维人员从多个视角掌握监控、告警情况,实现对主机的集中监控。最终微服务自动化监控运维平台在单位生产环境落地投产,成功支撑起微服务基础架构与“三线合一信息监督与发布平台”、人事快查等微服务架构应用的监控运维职能。
3. 创新亮点
微服务自动化监控运维平台,提供了微服务架构下从主机部署、监控数据采集、智能告警修复、自动化运维、监控可视化在内的一体化运维监控方案,具备良好的可扩展性和可定制性,极大降低人力成本,提升运维效率,可作为单位现有监控平台的补充。
4. 风险合规
平台具有灵活的用户权限架构,可以有效管理用户权限,并支持多种类型的用户,用于定义对管理功能的访问并指定默认权限。可通过在平台中分组授权员工角色保证访问权限一致。
结果
目前,微服务自动化监控运维平台已于笔者单位投产并稳定运行数月,极大地减轻运维压力,提升了整体运维效率。
运维人员日常只需要不定时关注仪表板视图上的监控指标,即可直观了解整体微服务运行情况和资源利用情况。同时,平台的自动化运维功能可以自动修复常见问题,运维人员仅需解决特殊情况下需要人工干预的问题即可。
反思与启示
与以往相比,如今的 IT基础架构无论是规模还是复杂度,都成倍增长,传统运维方式已难以负荷沉重的工作量,智能运维能有效地衔接开发与持续交付,全面提升IT 生产质量和效率。“以工具和方法,重新定义软件创新”,打造数字化生产线,结合可追溯与智能工作方式共同驱动软件精益生产,将成为单位科技面向未来的 IT 过程管理核心。
1. 推广复制
产品可在未建立或初步建立微服务架构的单位进行广泛推广。该平台致力于提供微服务架构下的一体化运维监控方案,解决部署、配置、监控、告警、故障恢复等方面原先人工和半自动的运维工作,降低管理和操作所带来的诸多风险和成本。
2. 未来展望
未来该平台可在如下方面进一步提高 :
(1)逐步将有监控需要的服务器纳入监控。
(2)结合实际需要,完善监控模版与监控仪表板。
(3)丰富自动化运维场景。
(如有侵权,请联系删除。)
延伸阅读
2021在线课本周四晚8点:告警的调用和处理!
最实用的课程,由社区专家张世宏毫无保留授课,还可以向老师交流日常疑问。点此报名本节课。
关注Zabbix开源社区
干货满满
加“小Z“入群
3000+Zabbixer已加入