使用Regex解析Cisco系统日志

时间:2019-03-13 17:49:20

标签: regex splunk

我想解析三种日志:

消息1:为移动aa:aa:aa:aa:aa:aa:aa创建的用户名条目(random@somewhere.org)的长度(253)

预期匹配项:

  • random@somewhere.org
  • aa:aa:aa:aa:aa:aa

消息2:删除了移动设备aa:aa:aa:aa:aa:aa的用户名​​条目(hello)

预期匹配项:

  • 你好
  • aa:aa:aa:aa:aa:aa

消息#3 来宾用户使用用户帐户(randomnonexistentuser)登录,MAC地址aa:aa:aa:aa:aa:aa:aa,IP地址127.0.0.1。

预期匹配项:

  • 不存在随机用户
  • aa:aa:aa:aa:aa:aa
  • 127.0.0.1

到目前为止,我拥有此正则表达式来标识MAC地址(在三个示例中的两个示例中标记为移动地址):https://regex101.com/r/qFE95M/14

我也有这个正则表达式...

(?P<IP_address>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})

...查找IP地址。但是,我不确定如何仅使该命名组为可选,并将其与MAC地址段绑定在一起。

最后,我有这个正则表达式...

^[^\(\n]*\((?P<user_account>[^\)]+)\)

...查找用户名(可以是电子邮件地址,单个单词等)。但同样,我不确定如何将其与其他两个命名组联系起来。

如何将这三个匹配项进行协调,以便在上面的三个消息中找到它们?

1 个答案:

答案 0 :(得分:1)

类似这样的东西应该可以让您在一个命名的组中进行所有操作:https://regex101.com/r/qFE95M/15