EAA技术白皮书
Copyright © 2019 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
随着新技术(例如虚拟化、云计算、EVI等)逐步部署,数据中心网络变得越来越复杂。在日益复杂的数据中心网络中,如何降低网络管理成本,如何提高网络可用性,如何部署用户私有管理策略?这些问题亟待解决。
EAA(Embedded Automation Architecture,嵌入式自动化架构)是解决上述问题的关键技术之一。它允许用户订阅感兴趣的系统软、硬件的事件(例如接口DOWN),并制定处理事件的策略。当订阅的事件发生时,EAA会执行用户定义的策略,并能通过email等形式将现场信息发送到技术支援或用户邮箱。
EAA是一个开放的自动化架构,能够应用到大多数自动管理场景,例如:
· 故障诊断、现场信息收集和初期修复。
· 定制私有配置策略。例如按照用户的要求,禁止执行某些命令。
· 防止常见的配置错误发生。例如执行某些关键命令时,如果条件不满足,则拒绝执行。
· 实现进程监控和管理。
· 用户自定义策略的自动管理场景。
EAA由多个部件组成,主要有RTM、RTN、RTD和Scheduler。
· RTM(Real-Time event Manager,实时事件管理)是EAA的核心引擎,负责管理事件的订阅和策略的执行。
· RTN(Real-Time Notify,实时消息通知)主要负责信息组装和email通知。
· RTD(Real-Time Detector,实时健康诊断)主要对关键系统软、硬件进行健康诊断,尽量在故障发生前或者故障发生初期发现故障。RTD检测到软、硬件故障时,可以触发RTM执行相关策略,例如收集第一现场信息、尝试自动修复等。
· Scheduler实现类似Linux cron/atd的功能,能够定时执行指定任务。
目前Comware V7实现了RTM和Scheduler。本文只描述RTM和Scheduler。
如图1所示,RTM技术架构包括事件源、EM(Event Monitor,事件监控)、RTM、EAA监控策略四个部分。
事件源是系统中的软件或硬件模块,它们会触发事件。例如,CLI事件源能触发命令行事件,Syslog事件源能触发日志事件。
EM根据用户配置对事件源中发生的事件进行过滤匹配,匹配成功则通知RTM执行相应监控策略。当用户配置了多个监控策略,系统会创建多个EM组件,每个EM组件监控一个事件。
RTM是设备上内嵌的、实时的策略驱动模型,也是RTM技术架构中的核心部件,负责管理监控策略,包括监控策略的创建、状态变化和执行。
通过监控策略,用户可以定义自己感兴趣的事件以及事件发生时的处理动作。
EAA支持通过CLI或者Tcl脚本来定义EAA策略,目前支持的Tcl版本为8.5.8。
· CLI监控策略:通过命令行在设备上直接配置的监控策略。熟悉设备命令行的用户可以选择使用这种监控策略,配置起来简便直观。
· Tcl监控策略:Tcl脚本编写的监控策略。EAA支持完整的Tcl 8.5.8语法,并在此基础上做了适当扩展。使用Tcl可以编写出更为灵活且功能强大的策略脚本。
图1 RTM技术架构示意图
(1) 用户创建EAA监控策略,在策略中定义自己感兴趣的事件以及事件发生时的处理动作。
(2) 监控策略被启用后,EM会实时监控事件源。当用户定制的事件发生时,RTM组件就触发相应的监控策略并自动执行监控策略中的动作。
例如,RTM与SCM(Service Control Manager,服务控制管理器)模块联动,监控进程的启动和停止,衡量系统的可靠性,并采取更灵活的EAA监控策略(不适合在SCM模块实现的策略)。
通过配置多个策略,设备能够智能地监控多种事件,并做出灵活多变的响应,从而大大地提升系统的可维护性。
事件类型 |
描述 |
cli |
监控命令行事件 配置该事件后,当用户输入指定的命令并对其进行特定操作(执行、帮助或者补全)就会触发策略执行 |
syslog |
监控日志事件 配置该事件后,当系统在指定时间段内生成指定规格的日志信息时触发监控策略执行;RTM模块产生的日志不会触发策略执行 |
process |
监控进程事件 配置该事件后,当指定进程(可以为用户命令行触发的或者系统自动触发的)发生指定状态变化(异常、关闭、启动或重启时),触发监控策略执行 |
hotplug |
监控板卡热插拔事件 配置该事件后,当插入/拔出指定板卡,均会触发监控策略执行 |
interface |
监控接口事件 接口事件中存在一个触发开关: 1. 配置该事件后,触发开关立即打开 2. 当指定接口上的指定报文的数目达到触发条件时,触发监控策略执行一次(第一次执行),并关闭触发开关,但系统会继续监控接口事件 3. 当满足重新监控条件时,重新开启触发开关 4. 如果指定接口上的指定报文的数目再次达到触发条件时,则再次触发监控策略执行一次(第二次执行),并关闭触发开关,系统继续监控接口事件 5. 如此循环 |
snmp |
监控SNMP节点值变化事件 SNMP节点值变化事件中存在一个触发开关: 1. 配置该事件后,触发开关立即打开 2. 系统根据用户配置,定时轮询设备上某个节点的值,当该值达到触发条件时,触发监控策略执行一次(第一次执行),并关闭触发开关,但系统会继续监控SNMP节点值变化事件 3. 当节点值满足重新监控条件时,重新开启触发开关 4. 当节点值再次达到触发条件时,则再次触发监控策略执行一次(第二次执行),并关闭触发开关,系统继续监控SNMP节点值变化事件 5. 如此循环 |
snmp-notification |
监控SNMP告警事件 配置该事件后,当系统生成一条告警,告警中携带的MIB对象的值到达指定条件时,触发监控策略执行 |
track |
监控Track事件 配置该事件后,当关联的Track项状态由Positive变为Negative或者Negative变为Positive时,触发监控策略执行;如果关联多个Track项,则当所有Track项状态均由Positive变为Negative或者Negative变为Positive时,触发监控策略执行 如果配置了抑制时间,触发策略的同时开始计时,定时器超时前,收到状态从由Positive变为Negative或者Negative变为Positive的消息,直接丢弃,不会处理。直到定时器超时后,收到状态由Positive变为Negative或者Negative变为Positive的消息才处理,再一次触发策略执行 |
匹配的事件发生时,RTM可以执行用户配置的动作。一个事件可以对应多个动作。每个动作都有一个编号,RTM会按照编号由大到小的顺序执行动作。
目前设备支持的动作有:
· 执行指定的命令行
· 生成一条指定内容的日志
· 主备倒换
· 重启
RTM有以下优点:
· 实时:RTM能实时监控设备并采取相应动作。
· 开放:RTM是一种开放式的框架。
¡ 对用户来说,用户可以通过CLI实现对接口、热插拔、进程等的监控,并制定相应的策略。还可以通过Tcl脚本语言(支持完整的Tcl语法和特性)实现更为灵活地控制。只要符合RTM Tcl脚本要求,用户将自行编写的Tcl脚本文件上传到设备并注册,即可实现对设备的RTM监控。这实际上为用户提供了一种二次开发的可能途径。
¡ 对开发者来说,只需要遵照RTM框架接口,开发者就很容易增加一种新的监控对象,或者新增一种策略行为。
· 安全:RTM是一种安全的框架,体现在如下几个方面:
¡ 只有管理员或授权用户才可注册策略脚本,只有注册的策略脚本才会生效运行。
¡ RTM会记录注册策略的用户信息,运行时通过RBAC避免策略脚本越权执行管理操作。
¡ RTM会对注册的策略脚本进行校验,一旦注册脚本被篡改,则不会运行除非重新注册。
· 可控:RTM会提供监控、调试、暂停运行等手段来管理策略。RTM还会限制脚本的运行时间,避免策略长时间占用系统资源。
· 联动。RTM可以与RTD、RTN联动实现“监控-行动-上报”。
Scheduler功能用来在设备上定时执行某项任务,一个任务中包括需要执行的命令、执行时间、执行任务时使用的用户角色。通过配置定时执行任务功能可以让设备在指定时刻或延迟指定时间后,自动执行指定命令,使设备能够在无人值守的情况下完成某些配置。使用该功能可以增强设备的自动控制和管理能力,提高设备的易用性。
定时执行任务有两种类型:一次性执行的任务和循环执行的任务。两种方式都支持在同一任务中执行多条命令。一次性执行的任务只能在设备的本次运行过程中执行,设备重启时,该任务不能保存到配置文件,设备重启后该任务将取消。循环执行的任务能保存到配置文件,等下次时间到达,任务将自动执行,设备重启后也可以继续生效。
如图2所示,Device A和Device D、Device E已经建立BGP会话,正常情况下,Device D、Device E发往外网的流量通过Device A转发。在Device A上配置RTM功能可以实现:当Device A连接Device C的接口Interface A状态变为Down之后,Device A能够自动感知,并禁止和Device D、Device E建立BGP会话,这样,Device D、Device E发往外网的流量可通过Device B转发。
图2 RTM典型应用组网图
使用Scheduler定时执行任务功能,可以让设备自动在某个时间点循环执行指定命令,例如,在星期一到星期五的上午八点到下午十八点开启Interface A和Interface B,其它时间关闭端口,以便起到有效节能的作用。
图3 Scheduler典型应用组网图