news 2026/4/3 3:19: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/3/31 18:05:03

告别网页束缚:BaiduPCS-Go让百度网盘操作飞起来

还在为百度网盘网页版的缓慢加载和复杂操作而烦恼吗&#xff1f;今天我要向你介绍一个真正的网盘管理神器——BaiduPCS-Go。这款基于Go语言开发的百度网盘命令行客户端&#xff0c;将彻底改变你对网盘文件管理的认知。 【免费下载链接】BaiduPCS-Go 项目地址: https://gitco…

作者头像 李华
网站建设 2026/3/20 17:25:41

RunAsDate:C实现的时间模拟工具开发指南

项目概述 【免费下载链接】RunAsDate 类型于 RunAsDate 软件&#xff0c;C#实现代码 项目地址: https://gitcode.com/malaohu/RunAsDate RunAsDate是一个基于C#开发的时间模拟工具&#xff0c;能够在Windows系统上为目标应用程序创建独立的时间环境。该项目使用Visual S…

作者头像 李华
网站建设 2026/4/2 11:13:47

PHP内存泄漏频发?(Rust扩展解决方案大公开)

第一章&#xff1a;PHP内存泄漏频发&#xff1f;(Rust扩展解决方案大公开)PHP作为广泛使用的Web开发语言&#xff0c;在长时间运行的CLI任务或常驻进程中&#xff0c;频繁遭遇内存泄漏问题。根源通常在于Zend引擎的内存管理机制对复杂数据结构清理不及时&#xff0c;或扩展层资…

作者头像 李华
网站建设 2026/3/30 20:15:52

Hackintool完全攻略:新手也能轻松配置黑苹果系统

还在为黑苹果复杂的配置流程而烦恼吗&#xff1f;Hackintool作为黑苹果社区的多功能工具&#xff0c;集成了从硬件检测到驱动配置的全方位功能。这款开源工具能够帮助你快速识别系统硬件、生成补丁文件、优化USB端口&#xff0c;让黑苹果配置变得简单高效。 【免费下载链接】Ha…

作者头像 李华
网站建设 2026/4/1 0:52:59

缓存命中率低?Symfony 8五大陷阱你中了几个,

第一章&#xff1a;缓存命中率低&#xff1f;Symfony 8五大陷阱你中了几个在高性能应用开发中&#xff0c;缓存是提升响应速度的核心机制。然而&#xff0c;即使使用了 Symfony 8 的强大缓存系统&#xff0c;许多开发者仍面临缓存命中率低的问题。这通常并非框架缺陷&#xff0…

作者头像 李华
网站建设 2026/4/1 13:43:37

PHP代码审计陷阱频发,医疗数据如何守住安全底线?

第一章&#xff1a;医疗数据PHP安全审计的现状与挑战随着电子病历系统和远程医疗服务的普及&#xff0c;基于PHP构建的医疗信息系统日益增多。这类系统常处理敏感的患者信息&#xff0c;如身份证明、诊断记录和医保数据&#xff0c;因此成为网络攻击的重点目标。然而&#xff0…

作者头像 李华