Tip lan trik kanggo ngowahi data sing ora terstruktur saka log menyang ELK Stack nggunakake GROK ing LogStash

Structuring data unstructured karo GROK

Yen sampeyan nggunakake tumpukan Elastic (ELK) lan kasengsem pemetaan log Logstash khusus menyang Elasticsearch, banjur kiriman iki kanggo sampeyan.

Tip lan trik kanggo ngowahi data sing ora terstruktur saka log menyang ELK Stack nggunakake GROK ing LogStash

Tumpukan ELK minangka akronim kanggo telung proyek sumber terbuka: Elasticsearch, Logstash lan Kibana. Bebarengan mbentuk platform manajemen log.

  • Elasticsearch yaiku sistem telusuran lan analitis.
  • Logstash minangka pipa pangolahan data sisih server sing nglebokake data saka macem-macem sumber bebarengan, ngowahi, banjur dikirim menyang "stash" kayata Elasticsearch.
  • kibana ngidini pangguna nggambarake data nggunakake grafik lan grafik ing Elasticsearch.

Beats teka mengko lan minangka shipper data entheng. Introduksi saka Beats ngowahi Elk Stack dadi Elastis Stack, nanging dudu titik kasebut.

Artikel iki babagan Grok, yaiku fitur ing Logstash sing bisa ngowahi log sampeyan sadurunge dikirim menyang stash. Kanggo tujuan kita, aku mung bakal ngomong babagan ngolah data saka Logstash menyang Elasticsearch.

Tip lan trik kanggo ngowahi data sing ora terstruktur saka log menyang ELK Stack nggunakake GROK ing LogStash

Grok minangka panyaring ing Logstash sing digunakake kanggo ngurai data sing ora terstruktur dadi barang sing terstruktur lan bisa ditakoni. Lenggah ing ndhuwur ekspresi biasa (regex) lan nggunakake pola teks kanggo cocog strings ing file log.

Nalika kita bakal weruh ing bagean ngisor, nggunakake Grok ndadekake prabΓ©dan amba nalika nerangake Manajemen log efisien.

Tanpa Grok data log sampeyan ora terstruktur

Tip lan trik kanggo ngowahi data sing ora terstruktur saka log menyang ELK Stack nggunakake GROK ing LogStash

Tanpa Grok, nalika log dikirim saka Logstash menyang Elasticsearch lan digawe ing Kibana, mung katon ing nilai pesen.

Njaluk informasi sing migunani ing kahanan iki angel amarga kabeh data log disimpen ing siji tombol. Iku bakal luwih apik yen pesen log luwih diatur.

Data sing ora kabentuk saka log

localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0

Yen sampeyan ndeleng kanthi cetha ing data mentah, sampeyan bakal weruh manawa data kasebut dumadi saka macem-macem bagean, saben dipisahake dening spasi.

Kanggo pangembang sing luwih berpengalaman, sampeyan bisa uga bisa ngira apa tegese saben bagean lan apa pesen log kasebut saka telpon API. Presentasi saben item kasebut ing ngisor iki.

Tampilan terstruktur saka data kita

  • localhost == lingkungan
  • GET == metode
  • ​ /v2/applink/5c2f4bb3e9fda1234edc64d == url
  • 400 == respon_status
  • 46ms == Respon_wektu
  • ​ 5bc6e716b5d6cb35fc9687c0 == user_id

Kaya sing kita deleng ing data terstruktur, ana pesenan kanggo log sing ora terstruktur. Langkah sabanjure yaiku pangolahan piranti lunak data mentah. Iki ngendi Grok cemlorot.

Grok Cithakan

Cithakan Grok sing dibangun

Logstash dilengkapi luwih saka 100 template sing dibangun kanggo nyusun data sing ora terstruktur. Sampeyan mesthine kudu njupuk kauntungan saka iki yen bisa kanggo syslogs umum kaya apache, linux, haproxy, aws lan liya-liyane.

Nanging, apa sing kedadeyan yen sampeyan duwe log khusus kaya ing conto ing ndhuwur? Sampeyan kudu nggawe template Grok dhewe.

Cithakan Custom Grok

Sampeyan kudu nyoba kanggo mbangun Cithakan Grok dhewe. tak nggo Grok Debugger ΠΈ Pola Grok.

Elinga yen sintaks template Grok kaya ing ngisor iki: %{SYNTAX:SEMANTIC}

Wangsulan: Bab ingkang pisanan aku nyoba kanggo pindhah menyang tab Nggoleki ing debugger Grok. Aku panginten iku bakal kelangan yen alat iki bisa kanthi otomatis generate pola Grok, nanging ora banget migunani amarga mung ketemu loro cocog.

Tip lan trik kanggo ngowahi data sing ora terstruktur saka log menyang ELK Stack nggunakake GROK ing LogStash

Nggunakake panemuan iki, aku miwiti nggawe cithakan dhewe ing debugger Grok nggunakake sintaks sing ditemokake ing kaca Github Elastis.

Tip lan trik kanggo ngowahi data sing ora terstruktur saka log menyang ELK Stack nggunakake GROK ing LogStash

Sawise muter-muter nganggo sintaksis sing beda-beda, pungkasane aku bisa nggawe struktur data log kaya sing dikarepake.

Tip lan trik kanggo ngowahi data sing ora terstruktur saka log menyang ELK Stack nggunakake GROK ing LogStash

Grok Debugger Link https://grokdebug.herokuapp.com/

Teks asli:

localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0

Pola:

%{WORD:environment} %{WORD:method} %{URIPATH:url} %{NUMBER:response_status} %{WORD:response_time} %{USERNAME:user_id}

Apa sing kedadeyan ing pungkasan

{
  "environment": [
    [
      "localhost"
    ]
  ],
  "method": [
    [
      "GET"
    ]
  ],
  "url": [
    [
      "/v2/applink/5c2f4bb3e9fda1234edc64d"
    ]
  ],
  "response_status": [
    [
      "400"
    ]
  ],
  "BASE10NUM": [
    [
      "400"
    ]
  ],
  "response_time": [
    [
      "46ms"
    ]
  ],
  "user_id": [
    [
      "5bc6e716b5d6cb35fc9687c0"
    ]
  ]
}

Kanthi template Grok lan data sing dipetakan ing tangan, langkah pungkasan yaiku nambahake menyang Logstash.

Nganyari file konfigurasi Logstash.conf

Ing server ing ngendi sampeyan nginstal tumpukan ELK, pindhah menyang konfigurasi Logstash:

sudo vi /etc/logstash/conf.d/logstash.conf

Tempel owah-owahan.

input { 
  file {
    path => "/your_logs/*.log"
  }
}
filter{
  grok {
    match => { "message" => "%{WORD:environment} %{WORD:method} %{URIPATH:url} %{NUMBER:response_status} %{WORD:response_time} %{USERNAME:user_id}"}
  }
}
output {
  elasticsearch {
    hosts => [ "localhost:9200" ]
  }
}

Sawise nyimpen pangowahan sampeyan, miwiti maneh Logstash lan priksa statuse kanggo mesthekake yen isih bisa digunakake.

sudo service logstash restart
sudo service logstash status

Pungkasan, kanggo mesthekake yen owah-owahan wis ditrapake, Priksa manawa sampeyan nganyari indeks Elasticsearch kanggo Logstash ing Kibana!

Tip lan trik kanggo ngowahi data sing ora terstruktur saka log menyang ELK Stack nggunakake GROK ing LogStash

Kanthi Grok, data log sampeyan wis kabentuk!

Tip lan trik kanggo ngowahi data sing ora terstruktur saka log menyang ELK Stack nggunakake GROK ing LogStash

Kaya sing bisa dideleng ing gambar ing ndhuwur, Grok bisa kanthi otomatis cocog data log karo Elasticsearch. Iki nggawe luwih gampang kanggo ngatur log lan cepet njaluk informasi. Tinimbang ngeduk file log kanggo debug, sampeyan mung bisa nyaring miturut apa sing sampeyan goleki, kayata lingkungan utawa url.

Coba ekspresi Grok! Yen sampeyan duwe cara liya kanggo nindakake iki utawa duwe masalah karo conto ing ndhuwur, mung nulis komentar ing ngisor iki supaya aku ngerti.

Matur nuwun kanggo maca-lan tindakake kula ing Medium kanggo artikel teknik piranti lunak sing luwih menarik!

Sumber Daya

https://www.elastic.co/blog/do-you-grok-grok
https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns
https://grokdebug.herokuapp.com/

PS Link menyang sumber

Saluran Telegram dening Elasticsearch

Source: www.habr.com

Add a comment