引言
随着G行业务的高速发展,业务系统的规模日益增长,监控管理的成本也随之升高,现有的监控手段已无法很好的满足监控管理的需求。因此G行启动了ZABBIX开源监控项目,通过该项目的建设工作,在节约监控管理成本的同时,也完善了国产软件和开源软件的监控手段,提升了G行的自动化监控能力和自主可控能力。
一、ZABBIX开源监控建设背景
不少行业和单位都使用商业监控软件实现本单位的信息系统的日常运行监控,但商业监控软件在管理上存在较多痛点。
图1 监控管理的痛点
为了解决传统监控管理在日常运维中存在的痛点和问题,G行通过对数款开源监控软件的监控能力、灵活性、兼容性以及易用性等多方面进行对比选型,最终选择ZABBIX作为行内今后主要的监控工具。ZABBIX是一款功能强大的开源监控软件,它操作简单,适用于多种平台,能够支持虚拟化、云环境等多种场景的监控,且提供开放的、通用的API接口,在各个行业都有广泛的使用。
- 支持多平台的企业级分布式开源监控;
- 可实现复杂多条件告警;
- 提供多种API接口,支持二次开发;
- 自动发现和低级别发现功能
- 有丰富的社区资源支持
图2 ZABBIX支持多种监控场景
二、G行ZABBIX开源监控项目
经过前期的调研选型,确定选用ZABBIX作为行内主要监控工具,并以开源软件监控、开发测试环境监控为起点,逐步推进到总、分行生产环境所有主机、所有监控指标全部覆盖,平稳替换行内传统商业监控软件,并且在其基础上逐步实现平台化、自动化的监控统一管理。下面分别从监控部署架构、监控采集方法、监控告警策略和监控自动化四个方面,介绍G行在ZABBIX开源监控的实践历程。
2.1 监控部署架构
根据总、分行以及生产、测试划分使用多套ZABBIX软件,并采用Server-Proxy-Agent的分布式监控架构,有效地降低Server端的采集压力;同时,根据不同环境的特性采用不同的监控方案:
图3 总分行生产、测试环境监控架构
开发测试环境
监控策略的开发测试与验证环境,同时结合开发测试环境的特性(被监控主机的生命周期较短),采用自动发现+自动注册的监控方式进行自动监控。
总行生产
按监控对象类型进行分组,每组Proxy承担不同的监控职责,实现监控压力的平衡,并准确定位不同组件的作用范围。
分行生产
- ZABBIX Server部署在总行,集中化统一管理。
- 按地域划分,每家分行部署独立Proxy,Proxy各模块容器化部署,灵活调度、易于迁移和扩展。
- Proxy与Server之间数据采用压缩模式、加密传输,保障网络无压力和数据安全。
2.2 全面支持开源/信创
依赖ZABBIX开源属性,全面支持行内开源软件及信创产品的监控纳管,推进监控自主可控,具体包括:
- 操作系统:中标麒麟LINUX,银河麒麟ARM等;
- 数据库:DAMENG,MySQL,KINGBASE等;
- 中间件:宝兰德,NGINX,ROCKETMQ等;
- 大数据:KAFKA,SPARK,ES等。
2.3 监控采集方法
ZABBIX支持多种采集方式,根据监控项的不同自由定制:
- 使用Agent或SSH、WMI监控服务器软件运行情况。
- 使用DBforBix插件、JDBC协议或Agent监控数据库。
- 使用JMX(java管理扩展)、T3协议监控java类服务。
- 使用ping及web检测监控WEB应用。
- 使用log日志主动监控及时发现应用的异常。
- 使用system.run调度现有监控脚本与工具,保证现有监控工具的顺利切换。
- 使用相关项与预处理功能对监控结果解析解析拆分使用,实现一次采集多次使用,提高监控效率,降低被监控端性能压力。
图4 异构对象全面监控
2.4 监控告警策略
ZABBIX支持通过邮件、短信、微信、接口等方式发送到指定人,行通过调用ZABBIX API,读取告警数据,对告警数据进行规则解析、丰富处理和维护期处理,告警数据推统一监控管理平台后进行集中展示和告警。
2.5 监控自动化
G行数据中心的管理已实现标准化,标准化是实现监控自动化的前提。
- ZABBIX Agent通过母带、SMDB下发或脚本一键式自动部署。
- Agent开机自启动、状态检测,支持远程重启及停用。
- LLD自动发现,可自动发现系统分区、网卡,还可自定义发现主机上的数据库或中间件多实例。
- 自动注册,自动监控新设备、创建主机、关联模板、开启监控。
- 通过API实现批量添加监控主机,关联监控模版。
- 统一的监控模版与组合告警触发器相结合,满足多种监控场景。
- 简单故障自愈功能,可对报警进行分类、分级,结合脚本对一些低级本的告警固化处理方法,满足条件即可自动进行相应操作(如指定文件清理、服务拉起等),达到快速恢复故障,保障系统可用率。
三、ZABBIX开源监控阶段性成果
经过四期持续的建设,G行基本完成对商业软件的监控覆盖,在开源软件监控能力、监控自服务能力等各方面都取得长足的进展,丰富并完善监控手段,并在总、分行生产系统监控管理中发挥重要作用。ZABBIX已完成开发测试环境、总行、39家分行监控全覆盖,使用ZABBIX系统对生产环境HPUX系统进行细粒度监控,实现对商业监控软件的能力替代,同时完成39家分行的全面覆盖,正在进行商业监控软件的全面替换。
图5 ZABBIX阶段性建设成果
四、总结与展望
数字化银行离不开强有力的科技支撑。我们将不断紧跟新技术发展步伐,从基础设施、技术架构、新技术应用等多领域夯实科技基础支撑能力,为众多新技术、新架构的引入,提供全方位的监控服务。
监控思维的转变
数字化思维需要运维人员建立数据意识,以业务价值为导向,以数据服务为目标,实现监控数字化转型。
监控智能化
依赖于大数据技术,通过海量数据和机器算法,实现告警根因分析、动态基线和自动预测等智能化场景的监控应用。
技术创新
保持技术创新能力,更多新技术、新架构的使用,帮助我们更方便、高效的应对数字化转型中遇到的各种问题。
监控管理+服务
强化监控标准化的管控能力,以监控标准化作为基准,进一步优化自服务、自助式的运维监控模式,提升监控服务的覆盖度。