使用关联事件触发事件策略
您可以配置关联两个或多个事件的策略。如果已指定相关事件发生,则它们将导致发生特定操作。例如,当发生事件后的五分钟(300 秒)内生成 UI_CONFIGURATION_ERROR 事件时,可能需要发出某些操作UI_COMMIT_PROGRESS命令。再举个例子,如果一个事件在 60 秒间隔内DCD_INTERFACE_DOWN两次,可能需要上传一个特定文件。
要配置关联事件的策略,在层级包含以下 [edit event-options]
语句:
[edit event-options] policy policy-name { events [ events ]; within seconds { events [ events ]; not events [ events ]; trigger (on | after | until) event-count; } attributes-match { event1.attribute-name equals event2.attribute-name; event.attribute-name matches regular-expression; event1.attribute-name starts-with event2.attribute-name; } then { ... } }
在 events
语句中,您可以列出多个事件。要查看可在事件策略中引用的事件列表,请发出 set event-options policy policy-name events ?
配置模式命令:
user@host# set event-options policy policy-name events ? Possible completions: <event> [ Open a set of values acct_accounting_ferror acct_accounting_fopen_error ...
在事件策略中可参考的一些系统日志消息不会列在命令的输出 set event-options policy policy-name events ?
中。有关在事件策略中引用这些系统日志消息的信息,请参阅 使用 非标准系统日志消息 来触发事件策略。
此外,您还可以参考内部生成的事件,在 生成内部事件 以 触发事件策略 中讨论。
只有在符合某些条件(您可以在 和 语句中指定)的情况下,才能执行在 语句中 then
within
配置 attributes-match
的操作。
您可以配置一个策略,仅在指定的时间间隔内发生其他事件后执行的策略。您可通过包含 语句来 within seconds events
此操作。只有当第一个语句中的一个或多个事件在语句中的一个或多个事件后的已配置秒数内发生时,策略 events
才 within seconds events
执行。秒数可以从 60 到 604,800。语句 not
仅在事件未在配置的时间间隔内发生时,才执行策略。
例如,如果在 、 或发生后 event3
60 秒之内发生 , event4
event5
event1
将执行以下 event2
策略:
[edit event-options] policy 1 { events [ event3 event4 event5 ]; within 60 events [ event1 event2 ]; then { ... } }
该 attributes-match
语句将两个事件关联在一起,如下所示:
event1.attribute-name equals event2.attribute-name
—只有在指定的属性等于 的指定属性event1
时,才执行event2
策略。event.attribute-name matches regular-expression
—仅在指定的属性与正则表达式event
匹配时执行策略。有关详细信息,请参阅 使用正则表达式来优化触发策略的事件集。event1.attribute-name starts-with event2.attribute-name
—只有当 指定的 属性以 指定的 属性开头时,才能event1
执行event2
策略。
如果 语句包括 或 选项,或者如果其中包含一个选项,其中包含不在层次结构级别指定的事件的 语句,则必须在同一策略配置中包含一个或多个 attributes-match
equals
starts-with
matches
[edit event-options policy policy-name events]
within
语句。
从版本 11.1 Junos OS开始,您可以使用语句中的事件策略变量来区分触发事件 attributes-match
属性和关联事件属性。双美元符号 ( ) 表示触发策略并解析触发事件属性 $$
{$$.attribute-name}
的值的事件。触发事件是您可以在层级配置 [edit event-options policy policy-name events]
的事件。对于事件关联,使用事件名称 ( ) 表示法的单个美元符号表示与事件名称匹配的最近事件,并解析到与事件关联的属性 $event
{$event.attribute-name}
值。
在下面的示例中,如果 5 分钟内执行四次或以上提交,策略将执行语句下的操作,并且一个或多个关联事件的用户名与触发事件的用户名相同。 then
policy multiple-commits { events ui_commit; attributes-match { {$$.user-name} equals {$ui_commit.user-name}; } within 300 { trigger after 3; events ui_commit; } then ... }
要查看可参考的所有事件属性的列表,请发出 help syslog event
操作模式命令。此命令的输出显示尖括号 (<>) 中的事件<>。以下输出显示可针对事件引用三个 ACCT_ACCOUNTING_SMALL_FILE_SIZE
属性: 、 和 filename
file-size
record-size
。
user@host> help syslog ACCT_ACCOUNTING_SMALL_FILE_SIZE Name: ACCT_ACCOUNTING_SMALL_FILE_SIZE Message: File <filename> size (<file-size>) is smaller than record size (<record-size>)
您可以使用管道 ( ) 符号过滤搜索 |
的输出。以下示例列出了可用于管道符号的过滤器:
user@host> help syslog | ? Possible completions: count Count occurrences display Show additional kinds of information except Show only text that does not match a pattern find Search for first occurrence of pattern hold Hold text without exiting the --More-- prompt last Display end of output only match Show only text that matches a pattern no-more Don't paginate output request Make system-level requests resolve Resolve IP addresses save Save output text to file trim Trim specified number of columns from start of line
有关使用管道符号的信息,请参阅 CLI 指南。
查看可参考属性的另一种方式是在层次结构级别发出 命令, set attributes-match event?
[edit event-options policy policy-name]
如以下示例所示:
[edit event-options policy p1] user@host# set attributes-match acct_accounting_small_file_size? Possible completions: <from-event-attribute> First attribute to compare acct_accounting_small_file_size.filename acct_accounting_small_file_size.filesize acct_accounting_small_file_size.record-size
在 set
此命令中,事件名称和问号 ( ) 之间没有空格 ?
。