08-EAA配置
本章节下载: 08-EAA配置 (364.91 KB)
目 录
EAA(Embedded Automation Architecture,嵌入式自动化架构)是集成在系统软件中的一系列相关软件模块的总称。
使用EAA功能:
· 用户可以定制一系列监控策略,在策略中定义自己感兴趣的事件以及事件发生时的处理动作。监控策略被启用后,系统会实时监控设备的运行,当用户定制的事件发生时,就触发相应的监控策略并自动执行监控策略中的动作。
· 设备能够智能地监控多种事件,并做出灵活多变的响应,从而大大地提升系统的可维护性。
图1-1 EAA框架示意图
EAA框架如图1-1所示,它包括事件源、EM(Event Monitor,事件监控)模块、RTM(Real-Time Event Manager,实时事件管理)模块和EAA监控策略。
事件源是系统中的软件或硬件模块,它们会触发事件。例如,CLI事件源能触发命令行事件,Syslog事件源能触发日志事件。
EM根据用户配置对事件源中发生的事件进行过滤匹配,匹配成功则通知RTM执行相应监控策略。当用户配置了多个监控策略,系统会创建多个EM模块,每个EM组件监控一个事件。
RTM是EAA的核心部件,负责管理监控策略,包括监控策略的创建、状态变化和执行。
通过监控策略,用户可以定义自己感兴趣的事件以及事件发生时的处理动作。
监控策略有两种配置方式:一种是通过命令行来配置,一种是通过Tcl脚本来定义。通过命令行配置的监控策略称为基于CLI的监控策略,以下简称CLI监控策略;通过Tcl脚本定义的监控策略称为基于Tcl的监控策略,以下简称Tcl监控策略。
CLI监控策略通过如下命令行来定义:一条event命令、一条或多条(不超过232条)action命令、一条或多条(不超过64条)user-role命令、一条running-time命令以及一条commit命令。其中:
· event命令用来定义监控策略的触发事件。目前,EAA能够监控的事件类型如表1-1所示。
事件的名称 |
描述 |
cli |
监控命令行事件 配置该事件后,当用户输入指定的命令并对其进行特定操作(执行、帮助或者补全)就会触发策略执行 |
syslog |
监控日志事件 配置该事件后,当系统在指定时间段内生成指定规格的日志信息时触发监控策略执行;RTM模块产生的日志不会触发策略执行 |
process |
监控进程事件 配置该事件后,当指定进程(可以为用户命令行触发的或者系统自动触发的)发生指定状态变化(异常、关闭、启动或重启时),触发监控策略执行 |
hotplug |
监控板卡热插拔事件 配置该事件后,当插入/拔出指定板卡,均会触发监控策略执行 |
interface |
监控接口事件 接口事件中存在一个触发开关: (1) 配置该事件后,触发开关立即打开 (2) 当指定接口上的指定报文的数目达到start-op start-op start-val start-val参数指定的条件时,触发监控策略执行一次(第一次执行),并关闭触发开关,但系统会继续监控接口事件 (3) 当满足restart-op restart-op restart-val restart-val参数指定的条件时,才重新开启触发开关 (4) 如果指定接口上的指定报文的数目再次达到start-op start-op start-val start-val参数指定的条件时,则再次触发监控策略执行一次(第二次执行),并关闭触发开关,系统继续监控接口事件 (5) 如此循环 |
snmp |
监控SNMP节点值变化事件 SNMP节点值变化事件中存在一个触发开关: (1) 配置该事件后,触发开关立即打开 (2) 系统根据用户配置,定时轮询设备上某个节点的值,当该值达到start-op start-op start-val start-val指定的条件时,触发监控策略执行一次(第一次执行),并关闭触发开关,但系统会继续监控SNMP节点值变化事件 (3) 当节点值满足restart-op restart-op restart-val restart-val指定的条件时,才重新开启触发开关 (4) 当节点值再次达到start-op start-op start-val start-val指定的条件时,则再次触发监控策略执行一次(第二次执行),并关闭触发开关,系统继续监控SNMP节点值变化事件 (5) 如此循环 |
snmp-notification |
监控SNMP告警事件 配置该事件后,当系统生成一条告警,告警中携带的MIB对象(由oid参数指定)的值到达oid-val oid-val op op指定的条件时,触发监控策略执行 |
track |
监控Track事件 配置该事件后,当关联的Track项状态由Positive变为Negative或者Negative变为Positive时,触发监控策略执行;如果关联多个Track项,则最后一个处于Positive(Negative)状态的Track项变为Negative(Positive)时,触发监控策略执行 如果配置了抑制时间,触发策略的同时开始计时,定时器超时前,收到状态从Positive(Negative)变为 Negative(Positive)的消息,直接丢弃,不会处理。直到定时器超后,收到状态从Positive(Negative)变为 Negative(Positive)的消息才处理,再一次触发策略执行 |
· action命令用来定义事件发生时,监控策略将执行的动作。目前支持的动作有执行指定的命令行、生成一条指定内容的日志、主备倒换和重启。
· user-role命令用来指定执行监控策略的用户角色。用户角色中定义了允许用户操作哪些系统功能以及资源对象,设备支持的每条命令都有缺省用户角色,如果监控策略中指定的用户角色权限比命令行的缺省用户角色的权限小,则不能执行该命令以及该命令后面的所有动作。如果指定的用户角色不存在,则监控策略不能执行。如果给某个监控策略配置了多个用户角色,则使用这些用户角色权限的并集去执行该策略。例如,给某策略配置了用户角色A和B,如果策略中的动作是角色A或者B允许执行的,则策略可以执行;如果策略中存在角色A和B都不能执行的命令,则该命令以及该命令后面的所有动作都不能执行。关于用户角色的详细描述请参见“基础配置指导”中的“RBAC”。
· running-time命令用来指定监控策略的运行时间,运行时间达到时即使策略没有执行完毕,也会立即停止执行策略。该命令用于限制策略的运行时间,以免策略长时间运行占用系统资源。而策略是否会触发以及停止后是否会被再次触发则由event配置决定。
· commit命令用来启用CLI监控策略。CLI监控策略创建和定义后,必须启用才能生效。
Tcl监控策略通过Tcl脚本来定义。按内容Tcl脚本可以分为两大部分:首行和其它部分。首行用于定义事件、用户角色和运行时间;从第二行开始,定义监控事件发生时执行的动作脚本。
用户创建Tcl监控策略并绑定Tcl脚本后,设备会首先解析Tcl脚本首行,获取监控事件、用户角色、运行时间,并立即下发以上配置且生效。当事件发生后从第二行开始执行动作脚本。
Tcl脚本首行的格式为::platformtools::rtm::event_register eventname arg1 arg2 arg3 …user-role role-name1 | [ user-role role-name2 | [ ] ] [ running-time running-time ]。其中:
· eventname用来指定事件的类型,Tcl监控策略中支持的事件类型同CLI监控策略,详情请参见表1-1。
· arg用来指定事件的匹配规则,具体定义与相应event命令中的参数规格一致,请参考EAA命令手册。当arg内容中包含空格时,请在arg内容的两端添加英文格式的双引号,形如"a b c"。
· user-role用来指定执行脚本的用户角色,参数含义和配置要求同CLI监控策略。
· running-time用来指定脚本运行的最大时间,参数含义和配置要求同CLI监控策略。
Tcl监控策略支持如下三类动作:
· Tcl语言标准命令。
· EAA模块的专属Tcl命令。
· 设备支持的其它命令行。
EAA环境变量指的是专用于监控策略的环境变量。环境变量由<环境变量名、环境变量值>字对组成。在配置监控策略的动作时,我们可以在应该输入参数的地方输入“$环境变量名”,表示此处需要引用环境变量值。系统在运行监控策略的时候,会自动用环境变量值去替代“$环境变量名”。如果要修改监控参数的值,只需在系统视图下,修改环境变量值即可,而无需进入监控策略视图,修改监控策略下的具体配置。因此,定义和使用环境变量可以简化监控策略的配置,提高监控策略的灵活性和易用性。
目前,EAA支持的环境变量包括内部环境变量和用户自定义环境变量。
(1) 内部环境变量
设备缺省支持的环境变量,用户不能创建、删除和修改。内部环境变量名均以“_”开头,内部环境变量的值由系统决定。内部环境变量又包括两类:一类是公共环境变量,另一类是非公共环境变量。
· 公共环境变量可用于所有类型的事件:其中_event_id、_event_type、_event_type_string在系统启动时生成,关联的事件类型不同,其值不同,其值一旦确定不能更改;_event_time、_event_severity在运行时产生。
· 非公共环境变量只能用于对应的事件,其值在事件触发时获得,它标示当前事件的部分信息。例如,HOTPLUG事件对应的内部环境变量为“_slot”,当1号单板被插拔的时候,环境变量“_slot”的值为1;当2号单板被插拔的时候,环境变量“_slot”的值为2。
目前EAA支持内部环境变量如表1-2所示。
(2) 用户自定义环境变量
用户定义环境变量名可包含数字、字符或者“_”,但不能以“_”开头。用户自定义环境变量可用于所有类型的事件,其值由用户配置决定。用户定义环境变量可修改、删除。
事件 |
内部环境变量的名称 |
描述 |
CLI |
_cmd |
匹配上的命令 |
SYSLOG |
_syslog_pattern |
匹配的日志信息的内容 |
HOTPLUG |
_slot |
发生热插拔的单板所在的槽位号 |
INTERFACE |
_ifname |
接口的名称 |
SNMP |
_oid |
SNMP操作中携带的OID |
_oid_value |
OID对应节点的值 |
|
SNMP TRAP |
_oid |
SNMP告警信息中携带的OID |
PROCESS |
_process_name |
进程的名称 |
公共环境变量 |
_event_id |
事件的ID |
_event_type |
事件的类型 |
|
_event_type_string |
事件类型的描述 |
|
_event_time |
事件发生的时间 |
|
_event_severity |
事件的严重级别 |
使用本特性,用户可以自定义EAA环境变量的名称和值,以便定义监控策略时可以引用。引用环境变量时,环境变量名前面必须加“$”符号,表示引用,如定义了名称为“hostname”的环境变量,引用时需写成“$hostname”。
表1-3 配置EAA环境变量
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置环境变量 |
rtm environment envname env-value |
缺省情况下,不存在用户自定义的环境变量。 系统中支持一系列内部环境变量,如表1-2所示 |
CLI监控策略配置任务如下:
(1) 创建CLI监控策略
(2) (可选)配置EAA监控的日志缓冲区的大小
(3) (可选)配置邮件自动发送功能参数
(4) 配置事件
(5) 配置动作
(6) 配置用户角色
(7) 配置运行时间
(8) 启用CLI监控策略
表1-4 创建CLI监控策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建CLI监控策略并进入CLI监控策略视图 |
rtm cli-policy policy-name |
- |
只有CLI监控策略的触发事件为日志事件时,才需要配置本功能。
为EAA策略配置日志事件,并确认执行后,系统会将生成的日志同时复制一份放入EAA监控的日志缓冲区。EAA模块将该缓冲区中的日志取出并和日志事件进行匹配,如果匹配成功,则执行动作;如果匹配失败,则不执行动作。
通常情况下,这个日志缓冲区的大小采用缺省值即可。当某特性功能异常或者用户开启了多个调试开关时,设备会在短时间内产生大量日志,导致一些日志来不及匹配便被丢弃。此时可根据当前设备内存的使用情况,适当增加EAA监控的日志缓冲区的大小。
表1-5 配置EAA监控的日志缓冲区的大小
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置EAA监控的日志缓冲区的大小 |
rtm event syslog buffer-size buffer-size |
缺省情况下,EAA监控的日志缓冲区的大小为50000条 |
EAA提供邮件自动发送功能:当指定的事件发生时,EAA可以生成指定内容的邮件,通过发送端本命令邮件服务器,将邮件发动给指定的接收者。使用该功能,用户可以通过EAA收集设备运维信息,并周期发送给网络管理员。
EAA邮件自动发送功能通常会这样配置:
· 配置事件
通过event命令,配置发送邮件的触发事件。例如使用event period命令配置按周期发送邮件。
· 配置邮件自动发送功能参数
配置邮件发送者的账户名、密码、使用的发送端邮箱服务器等参数。
· 配置动作
¡ 通过action cli命令收集设备运维信息。如果设备执行命令行时,有提示或显示信息输出,这些信息将以附件的形式,通过邮件发送出去。
¡ 通过action email命令配置邮件接收者、邮件主题、邮件正文。通过在邮件标题或者内容中引用环境变量,可以将设备生成的Trap、日志通过邮件发送出去。
· 配置用户角色
· 配置运行时间
这样,只要指定的事件发生,EAA会自动通过邮件,将设备运维信息发送给网络管理员(邮件接收者)。
建议用户只关注重要的告警和运维数据,把邮件发送频率控制在发送端邮件服务器可接受的范围内(通常为每分钟100封邮件之内)。如果邮件发送频率超过发送端邮件服务器可接受的范围,会导致超出范围的邮件发送失败。
表1-6 配置邮件自动发送功能参数
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置发送端邮件服务器的域名 |
rtm email domain domain-name |
缺省情况下,未配置发送端邮件服务器的域名 |
配置邮件发送者的账号和密码 |
rtm email username username password { cipher | simple } password |
缺省情况下,未配置邮件发送者账号密码 邮件发送者的账号和密码必须与发送端邮件服务器上注册的账号和密码一致,否则,邮件将发送失败 |
配置设备可发送的最大邮件的大小 |
rtm email max-size size |
缺省情况下,设备可发送的最大邮件为2MB 邮件不能超过本命令以及发送端邮件服务器规定的最大邮件的大小,否则,邮件将发送失败 |
为避免触发条件的不确定性,多次执行event命令配置监控事件时,最后一次配置并且commit的事件生效。
表1-7 配置事件
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建CLI监控策略并进入CLI监控策略视图 |
rtm cli-policy policy-name |
缺省情况下,不存在CLI监控策略 如果CLI监控策略已创建,则直接进入CLI监控策略视图 |
配置命令行事件 |
event cli { async [ skip ] | sync } mode { execute | help | tab } pattern regular-exp |
缺省情况下,未配置命令行事件 |
配置板卡热插拔事件(独立运行模式) |
event hotplug [ insert | remove ] slot slot-numbe |
缺省情况下,未配置热插拔事件 |
配置板卡热插拔事件(IRF模式) |
event hotplug [ insert | remove ] chassis chassis-number slot slot-number |
缺省情况下,未配置热插拔事件 |
配置接口事件 |
event interface interface-list monitor-obj monitor-obj start-op start-op start-val start-val restart-op restart-op restart-val restart-val [ interval interval ] |
缺省情况下,未配置接口事件 |
配置周期事件 |
event period interval |
为周期事件指定的周期应大于等于策略执行动作的持续时间,以免动作还未执行完毕,周期已经到达,触发EAA重新执行动作 |
配置进程事件(独立运行模式) |
event process { exception | restart | shutdown | start } [ name process-name [ instance instance-id ] ] [ slot slot-number ] |
缺省情况下,未配置进程事件 |
配置进程事件(IRF模式) |
event process { exception | restart | shutdown | start } [ name process-name [ instance instance-id ] ] [ chassis chassis-number [ slot slot-number ] ] |
缺省情况下,未配置进程事件 |
配置SNMP操作事件 |
event snmp oid oid monitor-obj { get | next } start-op start-op start-val start-val restart-op restart-op restart-val restart-val [ interval interval ] |
缺省情况下,未配置SNMP操作事件 |
配置SNMP告警事件 |
event snmp-notification oid oid oid-val oid-val op op [ drop ] |
缺省情况下,未配置SNMP告警触发事件 |
配置日志事件 |
event syslog priority { priority | all } msg msg occurs times period period |
缺省情况下,未配置日志事件 |
配置Track事件 |
event track track-list state { negative | positive } [ suppress-time suppress-time ] |
缺省情况下,未配置Track事件 |
用户可为CLI监控策略配置多个动作,系统会按照动作的编号由小到大顺序执行这些动作。如果新配置的动作的编号和已有动作的编号相同,最后一次配置并且commit的生效。
表1-8 配置动作
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入CLI监控策略视图 |
rtm cli-policy policy-name |
缺省情况下,不存在CLI监控策略 如果CLI监控策略已创建,则直接进入CLI监控策略视图 |
配置事件发生时执行指定的命令行 |
action number cli command-line |
缺省情况下,监控策略下未配置CLI动作 |
配置事件发生时执行发送邮件操作 |
action number email receiver rx-list subject subject [ content content ] |
缺省情况下,事件发生时不会执行发送邮件操作 |
配置事件发生时执行重启操作(独立运行模式) |
action number reboot [ slot slot-number ] |
缺省情况下,监控策略下未配置重启动作 |
配置事件发生时执行重启操作(IRF模式) |
action number reboot [ chassis chassis-number [ slot slot-number] ] |
缺省情况下,监控策略下未配置重启动作 |
配置事件发生时进行主备倒换 |
action number switchover |
缺省情况下,监控策略下未配置主备倒换动作 |
配置事件发生时发送指定的LOG |
action number syslog priority priority facility local-number msg msg-body |
缺省情况下,监控策略下未配置日志动作 |
|
|
|
(可选)配置执行CLI监控策略时使用的用户角色 |
user-role role-name |
缺省情况下,执行CLI监控策略时使用的用户角色为创建该策略的用户的角色 安全日志管理员角色与其它用户角色互斥:配置安全日志管理员角色后,系统会自动删除已配置的其它用户角色;配置其它用户角色后,系统会自动删除已配置的安全日志管理员角色 |
(可选)配置事件发生时CLI监控策略的运行时间 |
running-time time |
缺省情况下,CLI监控策略的运行时间为20秒 |
启用CLI监控策略 |
commit |
缺省情况下,CLI监控策略未被启用 |
配置本功能时,安全日志管理员角色与其它用户角色互斥:
· 配置安全日志管理员角色后,系统会自动删除已配置的其它用户角色;
· 配置其它用户角色后,系统会自动删除已配置的安全日志管理员角色。
表1-9 配置用户角色
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入CLI监控策略视图 |
rtm cli-policy policy-name |
缺省情况下,不存在CLI监控策略 如果CLI监控策略已创建,则直接进入CLI监控策略视图 |
配置执行CLI监控策略时使用的用户角色 |
user-role role-name |
缺省情况下,执行CLI监控策略时使用的用户角色为创建该策略的用户的角色 |
本功能配置的时间应小于周期事件指定的周期,以免动作还未执行完毕,周期已经到达,触发EAA重新执行动作。
表1-10 配置运行时间
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入CLI监控策略视图 |
rtm cli-policy policy-name |
缺省情况下,不存在CLI监控策略 如果CLI监控策略已创建,则直接进入CLI监控策略视图 |
配置CLI监控策略执行动作的持续时间 |
running-time time |
缺省情况下,CLI监控策略执行动作的持续时间为20秒 多次执行本命令时,最后一次配置并且commit的生效 |
配置CLI监控策略后,必须启用CLI监控策略,CLI监控策略下的配置才会生效。
表1-11 启用CLI监控策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入CLI监控策略视图 |
rtm cli-policy policy-name |
缺省情况下,不存在CLI监控策略 如果CLI监控策略已创建,则直接进入CLI监控策略视图 |
启用CLI监控策略 |
commit |
缺省情况下,CLI监控策略未被启用 |
Tcl监控策略启用后,不允许修改Tcl脚本。如需修改,请先停用Tcl监控策略,修改后,再启用Tcl监控策略。否则,Tcl监控策略将不能运行。
请参照以下步骤来配置Tcl监控策略:
(1) 如果监控策略中要用到系统内部环境变量,请先了解相应环境变量的值;如果监控策略中要用到的环境变量不是系统缺省支持的,请先定义,具体配置请参见“1.2 配置EAA环境变量”。
(2) 使用Tcl脚本编辑工具或者普通文档编辑工具,编辑格式符合要求的Tcl脚本。目前支持的Tcl版本为8.5.8。
(3) 使用FTP或者TFTP功能将Tcl脚本下载到设备上,FTP及TFTP具体配置请参见“基础配置指导”中的“FTP和TFTP”。
(4) 创建Tcl监控策略。
表1-12 配置Tcl监控策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建并启用Tcl监控策略,并将该策略与Tcl脚本绑定 |
rtm tcl-policy policy-name tcl-filename |
缺省情况下,不存在Tcl监控策略 配置Tcl监控策略时,tcl-filename请使用相对路径并确保所有的主控板上都存在该脚本,以免主备倒换或脚本所在主控板故障、拔出后,策略无法执行 |
使用本特性可以暂停运行所有的监控策略。如果要将暂停运行的所有策略恢复运行,请使用undo rtm scheduler suspend命令。
表1-13 配置Tcl监控策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
暂停运行所有的监控策略 |
rtm scheduler suspend |
- |
在完成上述配置后,在任意视图下执行display命令可以显示配置后EAA的运行情况,通过查看显示信息验证配置的效果。
表1-14 EAA显示和维护
操作 |
命令 |
显示用户自定义的EAA环境变量配置 |
display rtm environment [ var-name ] |
显示监控策略的相关信息 |
display rtm policy { active | registered [ verbose ] } [ policy-name ] |
显示CLI监控策略下生效的具体配置 |
display current-configuration |
显示CLI监控策略下生效的具体配置(请在CLI监控策略视图下执行该命令) |
display this |
配置一个Tcl监控策略,当设备执行包含字符串display this的命令时,让系统自动发送日志信息rtm_tcl_test is running。
图1-2 配置Tcl监控策略
# 在PC上使用写字板或者word编辑Tcl策略脚本rtm_tcl_test.tcl,内容如下:
::platformtools::rtm::event_register cli sync mode execute pattern display this user-role network-admin
::platformtools::rtm::action syslog priority 1 facility local4 msg rtm_tcl_test is running
以上脚本的含义为:当设备执行包含字符串display this的命令时,让系统自动发送日志信息rtm_tcl_test is running。
# 通过TFTP将rtm_tcl_test.tcl下载到设备上。
<Device> tftp 1.2.1.1 get rtm_tcl_test.tcl
# 创建并启用Tcl监控策略,并将它和Tcl脚本rtm_tcl_test.tcl绑定。
<Device> system-view
[Device] rtm tcl-policy test rtm_tcl_test.tcl
[Device] quit
· 通过display rtm policy registered命令可以看到存在策略名为test,策略类型为Tcl的策略。
<Device> display rtm policy registered
Total number: 1
Type Event TimeRegistered PolicyName
TCL CLI Jan 01 09:47:12 2019 test
· 打开允许日志输出的开关,执行display this命令,有rtm_tcl_test is running日志输出,同时有策略运行成功的日志输出。
<Device> terminal monitor
The current terminal is enabled to display logs.
<Device> system-view
[Device] info-center enable
Information center is enabled.
[Device] quit
<Device> display this
%Jan 1 09:50:04:634 2019 Device RTM/1/RTM_ACTION: -MDC=1 rtm_tcl_test is running
%Jan 1 09:50:04:636 2019 Device RTM/6/RTM_POLICY: -MDC=1 TCL policy test is running successfully.
#
return
配置一个CLI监控策略,当设备执行包含数字、字母(大小写均可)的命令行的帮助操作时,让系统自动发送日志信息hello world,并创建一个VLAN。
# 创建CLI监控策略,名称为test。
<Device> system-view
[Device] rtm cli-policy test
# 配置监控事件:监控包含数字、字母(大小写均可)的命令行的帮助。
[Device-rtm-test] event cli async mode help pattern [a-zA-Z0-9]
# 事件发生时,发送优先级为4,日志记录工具为local3,信息为hello world的日志。
[Device-rtm-test] action 0 syslog priority 4 facility local3 msg “hello world”
# 事件发生时,进入系统视图。
[Device-rtm-test] action 2 cli system-view
# 事件发生时,创建VLAN 2。
[Device-rtm-test] action 3 cli vlan 2
# 配置策略运行时间。当策略运行时间超过此值时,策略将终止执行,并输出策略执行失败信息。
[Device-rtm-test] running-time 2000
# 配置用户角色network-admin具有执行该策略的权限。
[Device-rtm-test] user-role network-admin
# 确认执行该策略。
[Device-rtm-test] commit
· 通过display rtm policy registered查看,可以看到策略名为test,策略类型为CLI的策略。
[Device-rtm-test] display rtm policy registered
Total number: 1
Type Event TimeRegistered PolicyName
CLI CLI Jan 1 14:56:50 2019 test
· 打开允许日志输出的开关,并对包含字母d的命令进行帮助,可以看到有信息为“hello world”的日志输出,同时有策略运行成功的日志输出。
[Device-rtm-test] return
<Device> terminal monitor
The current terminal is enabled to display logs.
<Device> system-view
[Device] info-center enable
Information center is enabled.
[Device] quit
<Device> d?
debugging
delete
diagnostic
diagnostic-logfile
dir
display
<Device>d%Jan 1 14:57:20:218 2019 Device RTM/4/RTM_ACTION: -MDC=1 "hello world"
%Aug 1 14:58:11:170 2019 Device RTM/6/RTM_POLICY_SUCCESS: -MDC=1 CLI policy test is running successfully.
Device A和Device D、Device E已经建立BGP会话,正常情况下,Device D、Device E发往外网的流量通过Device A转发。现要求通过对Device A进行配置实现:当Device A连接Device C的接口GigabitEthernet1/0/1状态变为Down之后,Device A能够自动感知,并禁止和Device D、Device E建立BGP会话,这样,Device D、Device E发往外网的流量可通过Device B转发。
图1-3 EAA和Track联动配置组网图
# 查看当前的BGP对等体的状态和统计信息。
<DeviceA> display bgp peer ipv4
BGP local router ID: 1.1.1.1
Local AS number: 100
Total number of peers: 3 Peers in established state: 3
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
10.2.1.2 200 13 16 0 0 00:16:12 Established
10.3.1.2 300 13 16 0 0 00:10:34 Established
10.3.2.2 300 13 16 0 0 00:10:38 Established
# 配置Track项监控接口GigabitEthernet1/0/1的状态。
<DeviceA> system-view
[DeviceA] track 1 interface gigabitethernet 1/0/1
# 配置Tcl监控策略,当GigabitEthernet1/0/1状态变为Down之后,Device A能够自动感知,并禁止和Device D、Device E建立BGP会话。
[DeviceA] rtm cli-policy test
[DeviceA-rtm-test] event track 1 state negative
[DeviceA-rtm-test] action 0 cli system-view
[DeviceA-rtm-test] action 1 cli bgp 100
[DeviceA-rtm-test] action 2 cli peer 10.3.1.2 ignore
[DeviceA-rtm-test] action 3 cli peer 10.3.2.2 ignore
[DeviceA-rtm-test] user-role network-admin
[DeviceA-rtm-test] commit
[DeviceA-rtm-test] quit
# 将GigabitEthernet1/0/1关闭。
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] shutdown
# 在DeviceA上使用display bgp peer ipv4命令查看BGP对等体的状态和统计信息,无显示信息,表示BGP对等体数量为0。
配置一个CLI监控策略,用于实现:当用户执行带有字符串loopback0的命令时,
· 系统会自动创建LoopBack0接口。
· 将该接口的IP地址配置为1.1.1.1/24。
· 将匹配到的命令行通过日志打印输出。
# 创建环境变量loopback0IP,将其值配置为1.1.1.1。
<Device> system-view
[Device] rtm environment loopback0IP 1.1.1.1
# 创建CLI监控策略,名称为test。
[Device] rtm cli-policy test
# 配置监控事件:用户执行带有字符串loopback0的命令。
[Device-rtm-test] event cli async mode execute pattern loopback0
# 事件发生时,系统会自动创建LoopBack0接口,将该接口的IP地址配置为1.1.1.1/24,并将匹配到的命令行通过日志打印输出。
[Device-rtm-test] action 0 cli system-view
[Device-rtm-test] action 1 cli interface loopback 0
[Device-rtm-test] action 2 cli ip address $loopback0IP 24
[Device-rtm-test] action 3 syslog priority 0 facility local7 msg $_cmd
[Device-rtm-test] user-role network-admin
[Device-rtm-test] commit
[Device-rtm-test] return
<Device>
· 打开允许日志输出的开关,当用户执行带有字符串loopback0的命令时,系统会将匹配到的命令行通过日志打印输出,同时有策略运行成功的日志输出。
<Device> terminal monitor
The current terminal is enabled to display logs.
<Device> system-view
[Device] info-center enable
Information center is enabled.
[Device] interface loopback0
[Device-LoopBack0]
%Jan 1 09:46:10:592 2019 Device RTM/7/RTM_ACTION: -MDC=1 interface loopback0
%Jan 1 09:46:10:613 2019 Device RTM/6/RTM_POLICY: -MDC=1 CLI policy test is running successfully.
· 显示接口信息,发现已存在LoopBack0接口,IP地址为1.1.1.1。
[Device-LoopBack0] display interface loopback brief
Brief information on interfaces in route mode:
Link: ADM - administratively down; Stby - standby
Protocol: (s) - spoofing
Interface Link Protocol Primary IP Description
Loop0 UP UP(s) 1.1.1.1
[Device-LoopBack0]
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!