配置事件策略以执行操作模式命令
操作模式命令在 运行 Junos OS 的设备上执行操作或提供诊断输出。它们使您能够查看有关设备当前运行状态的统计数据和信息。它们还使您能够采取纠正措施,例如重新启动软件进程、使物理接口卡 (PIC) 脱机和重新联机、切换到冗余接口以及调整标签交换协议 (LSP) 带宽。有关操作模式命令的详细信息,请参阅 CLI Explorer。
您可以配置执行操作模式命令的事件策略,并将这些命令的输出上传到指定位置进行分析,方法是在 [edit event-options]
层次结构级别包括以下语句:
[edit event-options] policy policy-name { events [ events ]; then { execute-commands { commands { "command"; } output-filename filename; output-format (text | xml); destination destination-name; } } }
在该语句中 events
,您可以列出多个事件。如果发生一个或多个列出的事件,则事件进程将执行为语句配置的 commands
操作模式命令。以引号 (" "
) 将每个命令括起来。事件进程会按其在配置中显示的顺序发出命令。例如,在以下配置中,执行 policy1
将首先发出 命令的原因 show interfaces
,然后执行 show chassis alarms
命令:
[edit event-options policy policy1 then execute-commands] user@host# show commands { "show interfaces"; "show chassis alarms"; }
命令中可包含变量,以便在命令语法中自动包含来自触发事件的数据。事件进程会将每个变量更换为触发策略时所包含的值。您可以使用以下表格的命令变量:
-
{$$.attribute-name}
—双美元标志 ($$
) 符号表示触发策略的事件。与属性名称结合使用时,变量解析为与触发事件关联的属性的值。例如,{$$.interface-name}
解析与触发事件关联的接口名称。 -
{$event.attribute-name}
- 带有活动名称 ($event
) 符号的单美元标志表示与之匹配event
的最新事件。与属性名称结合使用时,变量解析为与该事件关联的属性的值。例如,当策略发出show interfaces {$COSD_CHAS_SCHED_MAP_INVALID.interface-name}
命令时,{$COSD_CHAS_SCHED_MAP_INVALID.interface-name}
变量会解析到与事件进程缓存的最新COSD_CHAS_SCHED_MAP_INVALID
事件关联的接口名称。 -
{$*.attribute-name}
—带有星号 ($*
) 符号的美元标志代表与任何关联事件匹配的最新事件。该变量可解析到与最近事件相关的属性值,该事件与策略配置中指定的任何关联事件匹配。
对于给定事件,您可以查看可在操作模式命令中引用的事件属性列表,方法是发出 help syslog event
命令:
user@host> help syslog event
例如,在以下命令输出中,尖括号中的文本 (< >
) 显示 classifier-type
事件属性 cosd_unknown_classifier
:
user@host> help syslog cosd_unknown_classifier Name: COSD_UNKNOWN_CLASSIFIER Message: rtsock classifier type <classifier-type> is invalid ...
查看事件属性列表的另一种方式是在层次结构级别下[edit event-options policy policy-name]
发出set attributes-match event?
配置模式命令:
[edit event-options policy policy-name] user@host# set attributes-match event ?
例如,在以下命令输出中, event.attribute
列表显示 classifier-type
事件的 cosd_unknown_classifier
一个属性:
[edit event-options policy policy-name] user@host# set attributes-match cosd_unknown_classifier? Possible completions: <from-event-attribute> First attribute to compare cosd_unknown_classifier.classifier-type
在本 set
命令中,事件名称和问号 (?
) 之间没有空间。
要查看可参考的所有事件属性的列表,请在层次结构级别发出set attributes-match ?
[edit event-options policy policy-name]
配置模式命令:
[edit event-options policy policy-name] user@host# set attributes-match ? Possible completions: <from-event-attribute> First attribute to compare acct_accounting_ferror acct_accounting_fopen_error ...
事件进程执行命令时,会将带有命令输出的文件上传到语句中 destination
指定的位置。语句中 destination
包含在层次结构级别上配置的目标 [edit event-options destinations]
名称。有关更多信息,请参阅 示例:按事件策略定义文件存档目标。
在语句中 output-filename
,定义文件名中包含的描述性字符串。每个上传的文件还包括文件名中的主机名和时间戳,以确保每个文件名都是唯一的。如果在 1 秒内多次触发策略,则将索引号附加到文件名中,以确保文件名仍然唯一。索引号范围为 001 到 999。
从 Junos OS 14.1R3 版开始,会更改事件生成的输出文件的命名约定和格式。事件执行在层次结构级别中 [edit event-options policy policy-name then execute-commands commands]
定义的命令并生成包含命令输出的文件时,该文件的名称取决于设备上运行的 Junos OS 版本。在 Junos OS 14.1R3 版本之前,文件名具有以下命名约定:
hostname_output-filename_YYYYMMDD_HHMMSS_index-number
从 Junos OS 14.1R3 版开始,文件名会在时间戳之后放置 output-filename 字符串。
hostname_YYYYMMDD_HHMMSS_output-filename_index-number
例如,在运行 Junos OS 版本 14.1R3 或更高版本的名为 r1 的设备上,如果将 output-filename
语句配置为 ifl 事件,并且此事件策略在 1 秒内触发三次,则文件命名为:
r1_20060623_132333_ifl事件
r1_20060623_132333_ifl events_001
r1_20060623_132333_ifl-events_002
默认情况下,命令输出格式为 Junos 可扩展标记语言 (XML)。将语 output-format text
句配置为将命令输出格式化为 ASCII 文本。