告警同步方法以及通知去重方法与流程
本技术涉及数据同步,尤其涉及一种告警同步方法以及通知去重方法。
背景技术:
1、告警同步被广泛应用于分布式部署的系统中,用于使各侧的告警保持一致。设备在本地产生告警后需经链路传送至服务端,而链路存在发生故障的可能,因此设备上通常设置有本地存储空间,以便在链路故障时暂存告警。
2、相关技术中,设备在链路故障期间将产生的告警写入本地存储空间,待链路恢复连通后,将本地存储空间内的告警整体传送至服务端,以完成告警同步。
3、然而,链路故障期间产生大量告警难以与中心高效同步,导致告警一致性较低。
技术实现思路
1、鉴于上述问题,本技术提供了一种告警同步方法以及通知去重方法。
2、本技术提供了一种告警同步方法,应用于边缘节点,包括:在网络状态为降级状态的情况下,按照多个告警事件向中心节点上报的顺序生成上报序列信息,其中,降级状态为边缘节点与中心节点之间的上报未中断但上报质量不满足预设条件的网络状态;获取中心节点发送的接收序列信息,其中,接收序列信息为中心节点接收到边缘节点上报的告警事件后生成的序列信息;将上报序列信息和接收序列信息进行匹配,确定降级状态期间上报失败的告警事件,并将上报失败的告警事件上报至中心节点。
3、通过采取上述技术方案,本技术识别出降级状态,使得链路虽未断开却已无法可靠承载上报的这一区间不再被误认为通信正常,避免了该区间内的告警丢失长期处于无人察觉的状态;通过在降级状态下按照上报顺序生成上报序列信息,使得每一次上报动作都具备可追溯的位置标识,为事后判定丢失范围提供了依据;通过引入中心节点在实际接收到告警事件后生成的接收序列信息,并将其与边缘节点侧的上报序列信息进行匹配,使得丢失与否的判定依据由发送端的请求返回结果转变为接收端的实际接收结果,从而能够识别出边缘节点侧未获得任何失败信号、却实际未被中心节点接收的告警事件,解决了此类丢失在边缘节点侧不可自知的问题;通过仅对匹配后确定为上报失败的告警事件进行补报,使得恢复动作的数据量被收敛至真实缺失的部分,避免了全量重传对已经劣化的链路造成二次冲击以及由重复上报引发的告警噪声,从而在不增加链路负担的前提下保障了降级期间告警数据的最终完整。
4、进一步地,根据上报序列信息和接收序列信息,确定降级状态期间上报失败的告警事件,并将告警事件上报至中心节点,包括:根据上报序列信息和接收序列信息确定数据缺失区间;按照每个区间预设数量的告警事件将数据缺失区间划分为多个区间;将多个区间内的告警事件依次压缩后上报至中心节点。
5、通过采取上述技术方案,本技术先由两类序列信息的匹配结果收敛出数据缺失区间,再按照每个区间预设数量的告警事件将缺失区间切分为多个区间并逐区间压缩上报,使得单次上报的数据量始终处于可控范围,避免了在承载能力已经下降的链路上因单次报文过大而反复超时失败;同时以区间为补报的基本单位,使得补报过程具备了可分段推进、可分段确认的结构,配合压缩进一步降低了补报对链路带宽的占用,从而使降级状态下的数据追平能够以与链路当前承载能力相适应的节奏平稳完成。
6、进一步地,将多个区间内的告警事件依次压缩后上报至中心节点,包括:对区间内的告警事件的产生时刻位于同一时间窗口内且指示的事件类型相同的多个告警事件进行合并,得到合并事件;将合并事件和区间内未参与合并的告警事件按照上报序列信息的顺序进行压缩,得到区间对应的数据包,其中,数据包携带区间对应的上报序列信息的范围;将数据包依次上报至中心节点。
7、通过采取上述技术方案,本技术在压缩之前先对产生时刻位于同一时间窗口内且事件类型相同的多个告警事件进行合并,使得由同一故障源在短时间内引发的重复告警在补报阶段即被收敛为合并事件,既减少了需要传输的数据量,又降低了补报完成后下游产生大量重复通知的可能;通过将合并事件与未参与合并的告警事件按照上报序列信息的顺序压缩为数据包,使得数据包内部的事件次序与原始上报次序保持一致,便于中心节点按序处理;通过使数据包携带对应的上报序列信息的范围,使得中心节点能够明确知晓本次数据包所应覆盖的序列区间,为接收侧的完整性校验以及后续的确认与二次补报提供了可比对的基准。
8、进一步地,将数据包依次上报至中心节点之后,还包括:接收中心节点返回的确认信息,其中,确认信息包括中心节点已存储的来自边缘节点的目标告警事件的接收序列信息;根据数据包携带的上报序列信息的范围和接收序列信息,确定范围内中心节点未存储的目标上报序列信息;在边缘节点存储的告警事件中存在目标上报序列信息对应的告警事件的情况下,将目标上报序列信息对应的告警事件重新上报至中心节点。
9、通过采取上述技术方案,本技术在补报动作完成后进一步接收中心节点返回的、以已存储事件为内容的确认信息,并将其与数据包携带的序列范围再次比对,使得补报过程自身在降级链路上可能出现的再次丢失同样能够被发现,形成了上报、校验、重报的闭环;通过将判定标准明确为中心节点是否已存储而非边缘节点是否发送成功,使得数据一致性的认定始终以接收端的落地结果为准,避免了发送成功即视为同步完成所带来的误判;通过在本地仍存在对应告警事件的情况下才执行重新上报,使得重报动作限定在确实可被补齐的范围内,避免了对已被清理事件的无效重试。
10、进一步地,还包括:在将多个区间内的告警事件依次上报的过程中,记录同步进度信息,其中,同步进度信息包括已上报完成的区间的上报序列信息和当前上报的区间内已上报的告警事件的上报序列信息;在上报中断的情况下,保留同步进度信息,并在网络状态再次切换为在线状态或降级状态后,根据同步进度信息确定上报的断点位置,从断点位置继续将告警事件上报至中心节点。
11、通过采取上述技术方案,本技术在逐区间补报的过程中同时记录已完成区间以及当前区间内已上报事件的上报序列信息,使得同步进度被细化到区间之内的单个事件粒度;通过在上报中断时保留同步进度信息并在网络状态恢复为在线状态或降级状态后据此确定断点位置继续上报,使得补报过程具备了断点续传的能力,避免了因中途中断而不得不从缺失区间起点重新开始所造成的重复传输与时间浪费,从而在网络反复波动的场景下依然能够使同步进度单向累积、逐步收敛。
12、进一步地,网络状态包括在线状态、降级状态和离线状态;方法还包括:在网络状态为在线状态且与中心节点之间连续上报超时的次数超过第一预设次数的情况下,将网络状态切换为降级状态;在网络状态为降级状态且第二预设次数的告警事件连续上报失败或重试队列中待上报的告警事件数量超过预设阈值的情况下,将网络状态切换为离线状态,其中,重试队列为缓存需要重新上报的告警事件的队列;在网络状态为离线状态且对中心节点的网络探测成功的情况下,将网络状态切换为降级状态;在网络状态为降级状态,通信恢复正常且告警事件同步完成的情况下,将网络状态切换为在线状态。
13、通过采取上述技术方案,本技术为在线状态、降级状态和离线状态之间的迁移给出了以连续上报超时次数、连续上报失败次数、重试队列积压量以及网络探测结果为依据的具体触发条件,使得状态判定建立在边缘节点可自行观测的客观量之上而无需依赖外部指令;通过使离线状态在探测成功后先切换为降级状态而非直接切换为在线状态,使得离线期间积压的告警事件获得了一个专门用于追平的过渡阶段,避免了刚恢复连通即被视为完全正常而将积压数据遗留;通过要求降级状态在通信恢复正常且告警事件同步完成两个条件同时满足时才切换为在线状态,使得在线状态的含义被约束为数据已经追平,避免了链路指标先行恢复而缺失数据仍未补齐时状态被提前置为在线所导致的丢失残留。
14、进一步地,还包括:在获取到网络状态的切换请求的情况下,确定当前时刻与上一次执行网络状态切换的时刻之间的时间间隔;在时间间隔小于预设间隔的情况下,记录切换请求指示的目标网络状态并启动防抖动定时器,在防抖动定时器到期后将网络状态切换为目标网络状态;在时间间隔大于或等于预设间隔的情况下,响应切换请求执行网络状态的切换。
15、通过采取上述技术方案,本技术在响应切换请求之前先考察当前时刻与上一次切换时刻之间的时间间隔,并在间隔过短时以记录目标网络状态、启动防抖动定时器并延迟执行的方式完成切换,使得网络质量在判定阈值附近往复波动时状态不会随之高频翻转,避免了同步任务、重试策略与通知通道因状态反复变更而不断启停所造成的资源消耗与告警重复;同时在间隔达到预设间隔时立即响应切换请求,使得抖动抑制不以牺牲状态跟随的及时性为代价,兼顾了状态判定的稳定性与灵敏度。
16、进一步地,还包括:在网络状态为降级状态的情况下,将告警事件重试上报至中心节点,在重试次数达到预设次数仍上报失败的情况下将告警事件转存至本地数据库;在网络状态为离线状态的情况下,停止向中心节点上报,将告警事件存储至本地数据库并通过本地通知通道发送告警通知。
17、通过采取上述技术方案,本技术针对降级状态与离线状态配置了差异化的处置策略:在降级状态下先行重试上报并在重试次数达到预设次数后才转存至本地数据库,使得链路尚具备部分承载能力时告警仍以实时上报为主,仅在确实无法送达时才转入本地留存,兼顾了告警的时效性与不丢失;在离线状态下停止向中心节点上报,避免了对已确认不可达的链路持续发起无效请求所造成的资源占用与队列膨胀,同时通过本地数据库留存以及本地通知通道发出告警通知,使得中心节点不可达期间告警仍能被运维人员感知,避免了告警在此期间完全静默。
18、本技术还提供了一种通知去重方法,应用于中心节点,包括:获取告警事件的通知状态,通知状态包括边缘节点上报的通知状态以及中心节点的通知状态;在触发针对告警事件的告警通知的情况下,根据通知状态,确定是否发送告警事件的告警通知。
19、通过采取上述技术方案,本技术使中心节点在触发告警通知时所依据的通知状态同时涵盖边缘节点上报的通知状态与中心节点自身的通知状态,使得告警事件在边缘侧是否已被通知这一信息能够参与中心侧的通知决策,解决了边缘节点在降级状态或离线状态下已通过本地通知通道发出通知、而相应告警事件在补报至中心节点后又被中心节点再次通知所造成的同一故障重复告知问题;通过将去重判定放在通知触发环节而非事件存储环节,使得告警事件本身仍被完整保留以供追溯,同时对外呈现的通知不再重复,从而在保证数据完整性的前提下抑制了跨节点的通知冗余。
20、进一步地,根据通知状态,确定是否发送告警事件的告警通知,包括:在告警事件的边缘节点上报的通知状态以及中心节点的通知状态中任一状态指示告警事件已被通知的情况下,跳过发送告警事件的告警通知;在告警事件的边缘节点上报的通知状态以及中心节点的通知状态均指示告警事件未被通知的情况下,发送告警事件的告警通知。
21、通过采取上述技术方案,本技术以两个通知状态中任一指示已被通知即跳过发送、两者均指示未被通知才发送作为判定规则,使得同一告警事件在边缘侧与中心侧合计至多被通知一次,避免了同一故障因通知责任在网络状态切换前后发生转移而被重复告知;同时由于仅在两侧均未通知时才发送,使得不存在任何一侧已完成通知的情形下告警仍会被正常发出,保证了去重不会演变为漏报,从而在重复通知与遗漏通知之间取得了确定的平衡。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com