Как анализировать динамические журналы с помощью grok и logstash? - PullRequest
0 голосов
/ 23 октября 2019

Я новичок в logstash и grok и пытаюсь проанализировать журналы, которые выглядят так:

2019-10-23 08:44:38.457  INFO 99999 [ID1=645ae2ae-a9a6-412f-b079-f0495aa9b713, ID2=62702, ID3=3e37ee7c-4e09-4924-be2f-66008dd19032] ---
2019-10-23 08:44:38.796 DEBUG 99999 [ID1=6cf44468-5baa-470b-9ee2-2aa7a74a858f] ---
2019-10-23 08:44:38.849 DEBUG 99999 [ID3=5766d625-366b-4ce6-9a3a-f5e5db3ea65d, ID1=6cf44468-5baa-470b-9ee2-2aa7a74a858f] ---

UUID1 может быть первым или последним. UUID2 может отсутствовать.

Как я могу разобрать с помощью grok и сохранить все UUID, если они есть?

Заранее спасибо.

1 Ответ

0 голосов
/ 23 октября 2019

Я бы не использовал Грок для этого. Я уверен, что это может быть сделано, так как вы можете иметь дополнительные поля в шаблоне grok, но я думаю, что рассечение лучше подходит ...

    dissect { mapping => { "message" => '%{[@metadata][timestamp]} %{+[@metadata][timestamp]->} %{level} %{pid} [%{[@metadata][kvStuff]}] %{}' } }
    date { match => [ "[@metadata][timestamp]", "YYY-MM-dd HH:mm:ss.SSS" ] }
    kv { source => "[@metadata][kvStuff]" field_split => "," trim_key => " " }
...