news 2026/4/15 10:34:57

什么是故障策略中心

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
什么是故障策略中心

文章目录

    • 为什么需要故障策略中心?
    • 故障策略中心是如何工作的
    • 故障策略中心的典型应用场景



故障策略中心(Event Versus Action:EVA)是一种利用Python或JSON脚本对设备采集的数据进行分析、判断及故障处理的功能。设备支持EVA功能后,可以为客户提供更加高效、智能的故障判断和处理方案。


为什么需要故障策略中心?

近年来,网络设备陆续支持YANG能力后,网管系统可以通过Telemetry/Netconf/Restconf等通道订阅Xpath(Yang文件中的节点)获取数据,并通过对这些数据的实时分析,判断设备是否发生故障并及时处理。然而在实际网络应用中,没有配备网管系统的网络设备仍然存在故障定位耗时耗力以及集中式巡检间隔长、有效性低的问题。

针对这些问题,华为公司研发了EVA功能,通过对现有的开放可编程系统(Open Programmability System,OPS)Python库进行扩展,实现了面向Telemetry的KPI数据订阅,通过对KPI数据的编排,构建基于KPI事件和日志事件的策略应对方案,实现对新增故障的快速自愈。设备开启EVA功能后,在故障判断与处理方面,支持用户自定义订阅数据,由设备自主判断并执行对应策略;在巡检方面,支持设备自主采集,解耦采集时长和设备数量,支持双驱动分析数据。设备级故障下发设备自主分析,实时记录故障快照。

EVA可以向用户提供如下服务:

  • 基于脚本的数据开放能力
    EVA借助设备的可编程能力,支持用户在脚本中定义数据订阅接口,包括监控CPU利用率变化等事件。

  • 强大的数据处理能力
    EVA提供了数据计算和数据判断两大类函数。其中,数据计算函数包括平均值,最大值,最小值等,用户可以在脚本中直接调用这些函数处理订阅的数据。

  • 自定义策略和开放的故障编排能力
    EVA支持用户自定义策略,可以通过故障策略公式对一个或多个故障进行组合。

  • 自主动作执行能力
    EVA提供自主的动作执行能力,在故障策略事件触发时,自动执行自定义策略中的动作对设备进行故障处理。

故障策略中心是如何工作的

EVA的工作流程如下图所示:

EVA工作流程

  1. 用户在自定义的脚本中引入EVA模块。
  2. 将编写好的JSON或Python格式脚本上传到设备。
  3. 对脚本进行安装和注册。
  4. EVA会自动解析脚本并运行用户在脚本中定义的内容。
  5. 设备通过分析订阅的数据来进行数据展示或故障判定。如果经判断发生故障,通过策略匹配来执行对应动作。

通过在EVA脚本中使用事件定义故障发生的现象,使用策略和任务/动作定义故障发生之后操作。当设备故障发生后,自动记录故障数据,无需运维人员再手动搜集现场数据。

自定义python脚本

defcondition():e1=eva.Event()kpi1=e1.addkpi()e1.ret=eva.avg()s1=eva.Strategy()s1.formula=e1 action1=eva.log()s1.addaction(action1)

在上述脚本中:

  • 事件(Event):用户描述对数据的订阅,处理和判断。
  • 日志事件(LogEvent):用于描述向系统订阅日志。
  • 策略(Strategy):用于描述事件的编排和执行动作。
  • 动作(action):用于定义设备的行为,包括命令行的下发、对数据进行运算等。

自定义JSON脚本

  • 单任务脚本样例如下:
{"ItemName":{"description":"","define":{},"events":{},"strategy":"","tasks":{}}}
  • 巡检脚本样例如下:
{"ItemName1":{"description":"","define":{},"events":{},"strategy":"","tasks":{}}}{"ItemName2":{"description":"","define":{},"events":{},"strategy":"","tasks":{}}}{"ItemName3":{"description":"","define":{},"events":{},"strategy":"","tasks":{}}}

在上述脚本中:

  • 描述(description):对脚本的简单描述。
  • 全局变量(define):用来定义用于整个脚本的全局变量,最多支持15个全局变量,不支持引用其他变量。
  • 事件(event):用于定义脚本运行的入口条件。
  • 策略(strategy):用于定义任务(task)或动作(action)执行的事件或事件组合条件。
  • 任务(task):用于定义由策略触发执行的动作(action)以及多个动作之间的关系,每个任务包含一个动作。对于业务逻辑比较复杂的情况,可以定义多个任务,并在任务中定义与其他任务的跳转关系。循环类的业务逻辑,也在任务中定义。

故障策略中心的典型应用场景

配置基于JSON巡检脚本的故障策略中心

在巡检场景中,用户自定义JSON脚本存放在SFTP服务器上,希望通过故障策略中心功能采集设备的路由信息、接口诊断信息和设备健康信息。JSON脚本为巡检脚本,脚本中定义了采集设备的路由信息、接口诊断信息和设备健康信息的命令。

通过故障策略中心巡检设备组网图

可以采用如下思路配置:

  1. 编写JSON脚本,在脚本中定义事件、策略和任务。

  2. 上传JSON脚本至设备。

  3. 安装并注册JSON脚本。

step1 编写JSON脚本,在脚本中定义事件、策略和任务。

{"inspection_1":{"description":"Collect IP routing information","events":{"e1":{"trigger":"eva.singleCollect()"}},"strategy":"e1","tasks":{"mainTask":{"parameters":{"IProute_cmdArray":["display bgp peer","display isis peer","display ospf peer"]},"action":"eva.cliArray(\"user\",${IProute_cmdArray})"}}}}//采集设备的路由信息{"inspection_2":{"description":"Collect statistics on error packets and diagnosis information on the interfaces","events":{"e1":{"trigger":"eva.singleCollect()"}},"strategy":"e1","tasks":{"mainTask":{"parameters":{"Interface_cmdArray":["display interface troubleshooting","display interface counters errors","display interface brief"]},"action":"eva.cliArray(\"user\",${Interface_cmdArray})"}}}}//采集设备的接口诊断信息{"inspection_3":{"description":"Collect system management information","events":{"e1":{"trigger":"eva.singleCollect()"}},"strategy":"e1","tasks":{"mainTask":{"parameters":{"Health_cmdArray":["display debugging","display device","display health"]},"action":"eva.cliArray(\"user\",${Health_cmdArray})"}}}}//采集设备健康信息

step2 上传JSON脚本至设备。

[DeviceA]sftp client-transfilegethost-ip10.2.1.1username client001 password Helloworld@6789sourcefile CollectInformation.json//DeviceA作为SFTP客户端从SFTP服务器下载脚本文件CollectInformation.json(JSON脚本存放在SFTP服务器上)。

step3 安装并注册JSON脚本。

<DeviceA>install eva script CollectInformation.json inspection

配置基于Python脚本的故障策略中心

用户自定义Python脚本存放在SFTP服务器上,希望通过故障策略中心功能监控CPU利用率和内存利用率的变化。Python脚本中定义了当CPU利用率和内存利用率大于90%时,系统自动打印CPU和内存利用率高的告警日志,提示网络维护工程师及时进行设备维护。


通过故障策略中心监控CPU变化的设备组网图

可以采用如下思路配置:

  1. 编写Python脚本,自定义事件和故障处理策略。

  2. 上传Python脚本至设备。

  3. 安装并注册Python脚本。

step1 编写Python脚本,在脚本中自定义事件和故障处理策略。

importeva defcondition():e1=eva.Event()kpi1=e1.addkpi("huawei-cpu-memory:cpu-memory/board-cpu-infos/board-cpu-info/system-cpu-usage")e1.ret=eva.avg(kpi1,10)>90e2=eva.Event()kpi2=e2.addkpi("huawei-cpu-memory:cpu-memory/board-memory-infos/board-memory-info/os-memory-usage")e2.ret=eva.avg(kpi2,10)>90s1=eva.Strategy()s1.formula=e1&e2 s1.validTime=10action1=eva.log("board ${e1.slot-id}--${e1.cpu-id} cpu and memory simultaneously overload")s1.addaction(action1)//编写自定义用户脚本cpuMemHigh.py,用于订阅系统CPU利用率和内存利用率。计算最近10次的平均值,当CPU利用率和内存利用率的平均值都大于90%时,则打印告警日志。

step2 上传Python脚本至设备。

[DeviceA]sftp client-transfilegethost-ip10.2.1.1username client001 password Helloworld@6789sourcefile cpuMemHigh.py//DeviceA作为SFTP客户端从SFTP服务器下载脚本文件cpuMemHigh.py(Python脚本存放在SFTP服务器上)。

step3 安装并注册Python脚本。

<DeviceA>ops install file cpuMemHigh.py//安装Python脚本。<DeviceA>ops run python evamain.py install cpuMemHigh.p//注册Python脚本。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 0:27:31

【农业传感器PHP数据可视化实战】:手把手教你打造高效农田监控系统

第一章&#xff1a;农业传感器PHP数据可视化实战导论在现代农业系统中&#xff0c;传感器网络被广泛用于监测土壤湿度、环境温度、光照强度等关键参数。将这些实时采集的数据通过Web界面进行可视化展示&#xff0c;有助于农户和农业技术人员快速掌握农田状态。PHP作为一种成熟且…

作者头像 李华
网站建设 2026/4/14 11:24:05

21届智能车赛规则之外的技术延伸:将ACE-Step用于车载娱乐音效生成

将ACE-Step用于车载娱乐音效生成&#xff1a;从智能车赛到边缘AI的跨界实践 在第21届全国大学生智能汽车竞赛的赛道上&#xff0c;一辆小车平稳过弯、加速冲刺——它的动作精准&#xff0c;控制系统毫秒级响应。但真正让人眼前一亮的是&#xff0c;当它成功完成一圈时&#xff…

作者头像 李华
网站建设 2026/4/14 12:02:11

【纤维协程资源释放全攻略】:掌握高效内存管理的5大核心技巧

第一章&#xff1a;纤维协程资源释放的核心意义在现代高并发系统中&#xff0c;纤维&#xff08;Fiber&#xff09;作为一种轻量级的用户态线程&#xff0c;被广泛应用于提升程序的执行效率与资源利用率。然而&#xff0c;若未能妥善管理其生命周期&#xff0c;尤其是未及时释放…

作者头像 李华
网站建设 2026/4/11 8:40:43

掌握这3种R语言方法,轻松实现气象数据中百年一遇极值识别

第一章&#xff1a;气象数据的 R 语言极端值检测在气象数据分析中&#xff0c;识别极端天气事件&#xff08;如极端高温、强降雨等&#xff09;是风险评估与气候建模的关键步骤。R 语言提供了丰富的统计工具和可视化函数&#xff0c;能够高效实现极端值检测。常用方法包括基于广…

作者头像 李华