带有空格和不可预测日志的 Grok 过滤器

问题描述 投票:0回答:0

我正在尝试设置一些 grok 过滤器以将我的防火墙日志拉入 Elastic。

我遇到的问题是日志是不可预测的,有些字段有空格,我不知道如何匹配。

所以用日志

<140>May 10 08:00:00 FW-Firewal-1 SN123456789 (2023-05-10T08:00:00) firewall: msg_id="3000-0148" Allow INTERNET Client-LAN 52 tcp 20 126 192.168.1.1 192.168.2.1 50713 445 offset 8 S 417387653 win 61690 (My-Firewall-Policy)

我下面的 grok 模式很好用

%{INT:syslog_pri}>%{MONTH:month} %{MONTHDAY:day} %{TIME:time} %{HOSTNAME:hostname} %{WORD:serial_number} \(%{TIMESTAMP_ISO8601:timestamp}\) %{NOTSPACE:process} msg_id="%{DATA:msg_id}" %{WORD:action} %{WORD:src_network} %{WORD:dst_network} %{NUMBER:packet_length:int} %{NOTSPACE:protocol} %{NUMBER:metric:int} %{NUMBER:ttl:int} %{IP:source_ip} %{IP:destination_ip} %{NUMBER:source_port:int} %{NUMBER:destination_port:int} %{WORD} %{INT} %{WORD} %{INT} %{WORD} %{INT} %{GREEDYDATA:rule_name}

我遇到的问题是这些日志可能会有所不同,例如 src_network 和 dst_network 通常可以是多个单词。 E.G Client LAN 而不是 Client-LAN。在这些情况下,我的过滤器显然与它们不匹配。我正在努力寻找一种方法来匹配包含空格的字符串。

elasticsearch logstash-grok
© www.soinside.com 2019 - 2024. All rights reserved.