问:如何解析一个可能有词空词组合的词?



几乎确定了这些日志,但是很难处理提供fail2ban操作的日志部分。它通常是一个单词,但有时是两个单词之间有一个空格。我不知道如何解决这个问题,非常感谢您的帮助。我做了大量的研究,但没有找到一个明确的答案,甚至尝试了各种解决方案。

在下面的示例中,您将看到Restore Ban禁止,. 这就是我想要隔离的。

示例日志:

2021-10-20 19:50:39,638 fail2ban.actions        [31705]: NOTICE  [sshd] Restore Ban 68.183.15.177
2021-10-20 16:08:16,315 fail2ban.actions        [6428]: NOTICE  [sshd] Ban 141.98.10.121
2021-10-20 17:21:23,807 fail2ban.filter         [6428]: INFO    [sshd] Found 159.75.130.111 - 2021-10-20 17:21:23

当前神交:

fail2banRule01 %{date("yyyy-MM-dd HH:mm:ss,SSS"):Datetime}s+fail2ban.%{word}s+[%{number:PID}]:s+%{word:Level}s+[%{word:Jail}]s+%{word:ActionType}s+%{ipv4:ClientIP}(s+-s+%{date("yyyy-MM-dd HH:mm:ss"):ActionDate})?

注意:这将在Datadog的日志处理结构中。

找到了问题的答案。从字型改为数据

这是现在的grok:

fail2banRule01 %{日期("yyyy-MM-dd HH: mm: ss, SSS"): Datetime} s + fail2ban. %{词} s +[%{号码:PID}]: s + %{词:水平} s +[%{词:监狱}] s + %{数据:ActionType} s + % {ipv4: ClientIP} ( s + - s + %{日期("yyyy-MM-dd HH: mm: ss"): ActionDate}) ?

有问题的日志:

2021-10-20 19:50:39,638 fail2ban.actions        [31705]: NOTICE  [sshd] Restore Ban 68.183.15.177

使用data的输出:

{
"Datetime": 1634759439638,
"PID": 31705,
"Level": "NOTICE",
"Jail": "sshd",
"ActionType": "Restore Ban",
"ClientIP": "68.183.15.177"
}

最新更新