Parsowanie logów GROKiem

Parsowanie logów GROKiem
mustang_ex
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 98
0

Mam fizyczny serwer na którym są różne usługi. Jest tam i httpd raportujący logi klasycznie do /var/log/httpd/*

Logów uzbierało się 333gb

Chcę z nich wyłuskać dane typu hostIP, hostname itp

Jest grok tylko za czorta nie obczajam

Po wielu MAG dowiedziałem się że IP można zapisać:

Kopiuj
%{IP:ip}
99xmarcin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2420
1

A nie możesz lepszym grepem jak https://www.dewanahmed.com/ripgrep/ po prostu regexem pojechać?

PS. Miejmy nadzieje że masz backup tych logów jeżeli trzymasz je z powodów complience (np. prawo komunikacyjne wymaga).

mustang_ex
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 98
0

@0xmarcin grep + regex brzmi fajnie, było testowane i nawet działa, ale przy tej ilości logów jest mało praktyczne.

99xmarcin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2420
0

No to co Ci poradzę, ripgrep jest naprawdę szybki na macierzy SSD będzie tak szybko jak in mem.
Dodatkowo przecież to może cały czas chodzić w tle jako proces low prio i zapisywać wyniki do pliku...

Inna opcja to "zainjestować" na stosie ELK i jak się przeindeksuje to będziesz miał to co chcesz.
Kosztuje wiele wysiłku, nie warto jak to ma być one-time efford.

Na koniec opcja atomowa, napisz w C lub C++ lub Go kawałek kodu który wyłuskuje dane jakie chcesz i będzie po kłopocie...

333gb - to nie jest dużo...

mustang_ex
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 98
0

@0xmarcin ok potestuje ripgrep 😀

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.