匹配多个事件

在一个规则中,您可以匹配来自同一来源的一个或多个事件。一旦所有事件都匹配,它就会执行操作。两个额外的变量被传递到 playbook 中

  • 事件

  • 事实

示例

condition:
  all:
   - event.i == 1
   - event.i == 2

传递到 playbook 中的变量将具有以下值

{
    "variables": {
        "events": {
            "m_0": {
                "i": 1
            },
            "m_1": {
                "i": 2
            }
        },
        "facts": {
            "m_0": {
                "i": 1
            },
            "m_1": {
                "i": 2
            }
        }
    }
}

带赋值的示例

condition:
  all:
   - events.first << event.i == 1
   - events.second << event.i == 2

传递到 playbook 中的变量将具有以下值

{
    "variables": {
        "events": {
            "first": {
                "i": 1
            },
            "second": {
                "i": 2
            }
        },
        "facts": {
            "first": {
                "i": 1
            },
            "second": {
                "i": 2
            }
        }
    }
}

备注

相同的事件表达式不能使用多次。在下面的例子中,event.i == 1 已被使用两次,因此它不会匹配任何内容

condition:
  all:
   - events.first << event.i == 1
   - event.i == 1

在下面的例子中,event.i == 2 已被使用两次,因此它不会匹配任何内容

condition:
     all:
       - events.saveme << event.i == 2 and event.i > 0
       - event.i == 2

一旦一个事件匹配,它就会被移除,并且不会匹配任何后续条件。这种情况将有效,因为事件表达式不同

condition:
     all:
       - events.saveme << event.i == 2 and event.i > 0
       - event.i == 0