短信告警机制在预警信息发布平台中的应用
2022-10-18卢焕卿毕玮刘延瑞
卢焕卿 毕玮 刘延瑞
摘要:为满足用户对青岛市预警信息发布平台高稳定性、高可用性的需求,该文在平台中设计并应用了一套集数据采集、数据分析、数据存储、数据校验以及数据处理于一体的短信告警机制,其中数据处理包括了数据展示和短信发送。经测试证明,该短信告警系统监控能够在采集到预警信息发布平台故障信息时,通过使用手机短信这一成熟的数据传输方式向业务值班手机发送告警短信,确保值班人员第一时间得到提醒,及时地维护平台安全与稳定、保障预警信息能及时进行发送。
关键词:短信告警机制;数据采集;数据存储;数据校验;数据处理
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2022)25-0114-04
开放科学(资源服务) 标识码(OSID) :
近年来,随着公众对各类突发事件预警服务需求的逐渐提高,各先进省市对预警信息发布平台的建设做了大量的研究工作[1-4]。青岛市也吸取各优秀省市经验,建设了青岛市预警信息发布平台。平台建成后用于发布全市突发事件预警信息,因突发事件的突发性、偶然性以及发生后产生的危害性,平台用户对预警信息发布的时效性、平台的稳定性和可用性都有着相当高的需求,预警信息发布平台亟须一种安全保障机制确保在平台出现故障后第一时间得到处理。
当预警发布平台有故障出现时,运维值班人员应第一时间获悉并处理。但在实际业务中,值班人员可能因就餐、临时处理其他工作等原因暂时离开值班场所,未能及时得到故障信息,延迟了处理时间从而对有效防灾减灾造成不可预估的影响,为此国内气象学者在平台保障机制方面做了多方努力。
王宜明基于Java语言利用InetSocketAddress类的相关方法配合数据库,实现了对网络中硬件设备以及重要业务平台和服务运行状态的自动监测,并向相关人员发送短信[5]。王赟等基于WebService技术直接接入电信短信网关,实现了气象预警短信的高效发布[6]。贾泽莘借鉴主流的广播电视安全播出告警信息发布技术,设计了一套适用于广播电视无线发射台站安全播出的告警短信发布系统[7]。任川等基于CIMISS统一数据环境建设了辽宁省自动气象站短信监控平台,监控气象资料传输情况,在传输异常时自动向管理人员、技术人员发送短信,以便尽快解决故障[8]。崔倩等设计了气象综合业务监控短信报警系统,能够及时掌握自动气象站、区域气象站、网络等设备的运行状态,并迅速以短信形式通知相關人员做出相应反应[9]。甄廷忠研究了雷达业务短信预警的两种方法,分别实现了通过邮件短信提醒和短信网关平台短信提醒[10]。上述学者在相关业务平台中引入短信机制分别实现了研究预期,较好地满足了平台需求与保障效果。
一套完善的预警发布平台监控及其短信告警机制可对青岛市预警发布平台中的软、硬件设备以及网络链路进行实时监控。当采集到平台故障信息时,立刻向业务值班手机发送短信,让值班人员随时、直观、便捷地掌握平台运行情况并及时采取处理措施,切实提高预警发布平台的稳定性。
1 短信告警机制功能设计
依据减少资源投入和利旧原则,短信告警机制开发时充分考虑预警信息发布平台现有的互联网和MySQL数据库条件,使用与平台一致的Springboot框架、跨平台Java开发语言进行开发。
1.1 告警机制结构设计
短信告警机制监控正在运行的渠道、网络链路以及服务器等运行情况,共分为数据采集、数据分析、数据存储、短信接口调用、数据校验等过程。渠道模块、网络链路模块和服务器模块分别是预警发布平台的功能模块,并且有前台显示界面,数据采集服务与各功能模块建立监控接口,监控内容主要包括网络链路状态、渠道状态、服务器的CPU使用率、内存使用率、磁盘空间占用率等。当数据采集服务采集到符合条件的数据时,分别存储到MySQL数据库运行监控表中,并调用短信发布接口查询数据库中存储的值班手机号码进行短信发送(图1) 。需要注意的是,短信发送前需经过数据校验和加密技术加密。
1.2 告警机制功能设计
(1) 数据采集。数据是短信告警机制的核心,没有数据的短信告警机制是无法进行短信发布的。渠道监控、网络链路监控通过程序开发的心跳监测接口实时监测渠道状态是否运行正常,网络链路是否中断;服务器模块采用ZABBIX全面监控,ZABBIX AGENT安装在被监视的目标服务器上,主要是采集内存占用率、磁盘空间占用率、CPU占用率等数据。
为避免短信重复和资源浪费,采集到的重复数据每24小时发送一次告警短信,如果24小时内重复采集到CPU使用率超过75%的数据,则只发布一次告警短信。另外数据采集频率可根据具体业务灵活配置定时任务,以达到实际业务要求。
(2) 数据分析。从通过数据采集获取的数据中提取、筛选有用的信息,切实发挥短信提醒的作用。渠道运行异常、网络链路中断为一次有效数据;服务器内存占用率、磁盘使用率、CPU占用率超过75%的阈值时为一次有效数据,有效数据进入数据存储过程。
(3) 数据存储。渠道运行异常数据、网络链路中断数据、经数据分析有效的服务器异常数据等应立即存储到MySQL数据库运行监控表中,为数据展示和报表处理提供基础数据。当运行监控表中有新记录存储时,一方面进行前端数据展示,另一方面调用短信发送接口按照和运营商沟通的短信格式生成短信,通过查询手机号管理表返回短信接收号码,并进入下一过程。
(4) 手机号管理。为确定短信接收对象,告警机制在数据库中建立手机号管理表记录保存值班人员手机号码。该表建立后,需将值班手机号码提前录入。手机号码都是11位的,在MySQL中使用int会导致丢失精度。为方便处理,该字段使用varchar数据类型。
(5) 数据展示。为把运行监控表中的数据记录可视化,数据展示过程将这些数据以醒目的红色字体或红色标记直观地展示在综合监控大屏上,便于值班人员察觉,能够更快速地定位问题。
(6) 数据校验。为保障数据安全性、有效性、准确性,短信发送之前告警机制会进行一系列校验,对短信运营商提前分配的用户名和密码进行校验、服务器IP白名单校验、短信发布参数校验、短信发布内容校验、手机号格式校验和去重、短信发送阈值校验等。
(7) 短信发送。成功通过校验的数据使用DES对称加密技术进行加密,然后使用RSA非对称加密技术加密DES密钥,最后生成接口规定格式的数据包,该数据包将被直接发送到短信运营商网关,经运营商短信服务分析处理后进行短信发送,值班手机很快会接收到短信告警机制发出的短信,提醒值班人员第一时间关注平台故障并进行分析处理。短信发送后自动进行日志存储,记录短信发送总条数、成功数及失败数。
2 运营商协议接口
短信告警机制主要利用通信运营商提供的短信服务进行短信发送。运营商短信技术成熟且稳定,其性能符合预警发布平台短信告警机制进行短信发送时及时、高效的基本要求。
2.1 通信协议
短信告警机制实现了与通信运营商短信服务的集成整合,预警发布平台与运营商短信平台之间的数据交互使用HTTP协议,采用Rest风格的HTTP接口。在数据传输中需要通过签名验证,对数据进行加密传输,确保数据保密性、真实性。
2.2 接口请求参数
经过和通信运营商沟通协商,提前约定了话术,获取到个性化的话术码,并根据话术确定接口请求参数,如表1。
2.3 Josn调用实例
{
"wordId":"D0411_",
"exeNo":"122",
"variableOne":"A",
"variableTwo":"B",
"variableThree":"C",
"variableFour":"D",
"variableFive":"E",
"dataList":
["7XriOZZjl53Cj4kqBqiWHQ==",
"7XriOZZjl52DH18y4pmx/A==",
"7XriOZZjl53DkmgYIM8BTg=="]
}
其中話术码需提前向运营商申请,由运营商进行分配,并约定好短信格式,即话术;各变量标识为话术中可变部分,话术即由各变量标识组合而成;手机号为手机号管理表中存储的值班手机号码,需提前录入数据库手机号管理表中,为保障安全性和隐私性,此处手机号需通过DES特定密钥加密发送。接收短信手机号可多个,因此该字段使用List数据结构。
2.4 接口响应参数
接口响应参数主要记录短信发布成功或失败的数量,并以此为依据在下月10号前和运营商核对短信数量、核算短信费用。
2.5 Json响应实例
{
"msg":"success",
"code":"02000",
"data":
{"failCount":0,
"successCount":3,
"resultList":[
{"contactId":"0629171330100000000081","tel":"7XriOZZjl53Cj4kqBqiWHQ=="},
{"contactId":"0629171330100000000082","tel":"7XriOZZjl52DH18y4pmx/A=="},
{"contactId":"0629171330100000000083","tel":"7XriOZZjl53DkmgYIM8BTg=="}
]
}
}
结果状态码表示本次短信发送的状态,其中01000表示发送成功,02000表示发送失败。结果描述是对结果状态码的中文描述,可以更直观地了解和观察短信发送结果。成功发送数据合集包含了短信发送成功的手机号(此处手机号传输过程中仍需加密) ,还包含了由通信运营商添加的流水号。
3 测试结果
测试阶段主要从告警机制的功能性角度进行分析和测试,并给出最后测试结果。为保证信息安全性,凡涉及服务器IP地址以及手机号信息的,图示中部分用*号代替或作模糊处理。
3.1 渠道模块监控测试
当预警发布平台的渠道模块有任意渠道运行状态出现异常时,如本次测试中设置虚拟演播室渠道异常(图2) ,短信告警机制将立即发送告警短信到值班手机上,值班手机实际接收到短信如图3所示。
3.2 链路模块监控测试
当预警发布平台网络链路模块出现链路中断导致通信异常或服务异常时,如本次测试中设置气象内网部分链路异常,用虚线进行表示(图4) ,短信告警机制立即发送链路告警短信至值班手机,值班手机实际接收到短信如图5所示。
3.3 服务器模块监控测试
服务器磁盘使用率、CPU使用率、内存使用率的阈值均设置为75%,当各使用率大于该阈值时,如本次测试中设置139服务器内存使用率81.44%(图6) ,短信告警机制立即发送内存告警短信到值班手机上,值班手机实际接收到短信如图7所示。
4 结束语
通过测试证明在预警发布平台应用短信告警机制切实发挥了提醒作用,能在预警发布平台出现渠道、网络链路、服务器故障时第一时间发送短信到值班手机上,提醒值班人员及时关注并作出下一步处理,使值班人员能够方便、高效、可靠地展开平台运维工作降低整体运维成本,同时提升预警发布平台的稳定性、实用性、可用性。
参考文献:
[1] 傅仁壮,吴坤悌,赵员春,等.市级突发事件预警信息发布平台的实现及维护[J].科技传播,2015,7(10):141-142.
[2] 李剑莉,罗永夔,蒋镇.基于大数据技术的重庆市预警信息发布平台研究与设计[J].数字技术与应用,2018,36(1):170-171.
[3] 张超华,刘建宏,张鑫,等.宁夏气象灾害预警信息发布平台的设计与实现[J].长江信息通信,2021,34(9):126-128.
[4] 陈防.重庆市突发事件预警信息发布平台设计[J].信息化建设,2015(11):20.
[5] 王宜明.局域网状态自动监测及告警系统设计与实现[J].电脑知识与技术,2020,16(5):35-37,50.
[6] 王赟,段燕楠,姚愚,等.基于Web Service的气象预警短信发布系统设计与实现[J].气象科技,2012,40(3):384-387.
[7] 贾泽莘.广播电视无线发射台站安全播出告警信息短信发布系统[J].视听,2019(5):16-17.
[8] 任川,时倩,陈雨,等.基于CIMISS数据环境的短信监控平台的设计实现[J].电脑知识与技术,2018,14(3):48-49,58.
[9] 崔倩,崔万里,李厚发,等.气象综合业务监控短信报警系统[J].现代农业科技,2012(20):265,267.
[10] 甄廷忠,江龙,康道俊.气象雷达业务短信预警的两种实现方法[J].电脑编程技巧与维护,2014(8):86-87,96.
【通联编辑:代影】