1,立项背景:在医院信息部门工作,负责医院系统开发和运维工作,传统的监控软件很难实现全范围监控,如网络,接口,业务系统,服务器cpu、内存、存储,院内核心业务,数据库等,并且出现问题不能及时预警,漏报误报占比太高,就从核心业务开始自己写监控,逐步扩展到数据库,接口,总线平台,数据中心等其他模块,现在院内运维基本依赖这套监控系统,运行很多年,功能也比较完善。
2,核心功能:实现网络,接口,业务系统,服务器cpu、内存、存储,院内核心业务,数据库,通过钉钉,小程序,短信,电话,工单系统等方式,及时把预警消息推送到个人和群,督促系统管理员及时处理。
3,业务流程:任务监控,没隔三分钟跑一次所有监控列表,记录数据到数据库了日志,有问题节点间隔30秒再跑一次监控,自定义每个节点监控次数,达到设定上限开始推送预警消息到个人和运维群,防止误报,个人未处理第二次预警时推送工单,拨打电话。
发表过论文“医院监控系统的设计与应用实践”
1,设计思路,用观察者模式,通过维护监控列表,跑任务,监控系统,网络运行情况,通过插件,第三方api,snmp协议,爬虫等方式监控第三方系统,因为有的公司不提供接口,但是又必须到第三方系统获取系统报错日志,运行状态等,需要实现验证码识别,http获取token,获取关键页面数据,解析数据,分析系统运行状态,如总线平台对列情况,失败记录,数据上报评分情况等。使用的技术有python实现加解密,数据解析,通过nginx发布一些服务,c#实现前台监控列表维护和插件,M语言实现任务调度,cache数据库存数据和数据分析,javascript编写脚本。