Tip sareng trik pikeun ngarobih data anu henteu terstruktur tina log ka ELK Stack nganggo GROK di LogStash

Structuring data teu terstruktur kalawan GROK

Upami anjeun nganggo tumpukan Elastis (ELK) sareng kabetot dina pemetaan log Logstash khusus ka Elasticsearch, maka pos ieu kanggo anjeun.

Tip sareng trik pikeun ngarobih data anu henteu terstruktur tina log ka ELK Stack nganggo GROK di LogStash

Tumpukan ELK mangrupikeun akronim pikeun tilu proyék open source: Elasticsearch, Logstash sareng Kibana. Babarengan ngabentuk platform manajemén log.

  • Elasticsearch mangrupa sistem pilarian sarta analitik.
  • logstash nyaéta pipa ngolah data sisi-server anu ngémutan data tina sababaraha sumber sakaligus, ngarobih, teras dikirimkeun ka "stash" sapertos Elasticsearch.
  • kibana ngamungkinkeun pamaké pikeun visualize data ngagunakeun grafik na grafik dina Elasticsearch.

ketukan sumping engké na mangrupakeun shipper data lightweight. Perkenalan Beats ngarobih Elk Stack kana Elastic Stack, tapi éta sanés waé.

Tulisan ieu ngeunaan Grok, anu mangrupikeun fitur dina Logstash anu tiasa ngarobih log anjeun sateuacan dikirim ka stash. Pikeun tujuan urang, kuring ngan bakal ngobrol ngeunaan ngolah data tina Logstash kana Elasticsearch.

Tip sareng trik pikeun ngarobih data anu henteu terstruktur tina log ka ELK Stack nganggo GROK di LogStash

Grok mangrupikeun saringan di jero Logstash anu dianggo pikeun ngémutan data anu henteu terstruktur kana hal anu terstruktur sareng tiasa ditaroskeun. Éta linggih di luhur ekspresi biasa (regex) sareng nganggo pola téks pikeun nyocogkeun string dina file log.

Salaku bakal urang tingali dina bagian handap, make Grok ngajadikeun bédana badag lamun datang ka manajemén log efisien.

Tanpa Grok data log anjeun henteu terstruktur

Tip sareng trik pikeun ngarobih data anu henteu terstruktur tina log ka ELK Stack nganggo GROK di LogStash

Tanpa Grok, nalika log dikirim ti Logstash ka Elasticsearch sareng dipasihan dina Kibana, aranjeunna ngan ukur muncul dina nilai pesen.

Querying informasi bermakna dina situasi ieu hésé sabab sakabeh data log disimpen dina konci tunggal. Éta langkung saé upami pesen log langkung saé diatur.

Data anu teu terstruktur tina log

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

Upami anjeun ningal sacara saksama dina data atah, anjeun bakal ningali yén éta saleresna diwangun ku sababaraha bagian, masing-masing dipisahkeun ku rohangan.

Pikeun pamekar anu langkung berpengalaman, anjeun panginten tiasa nebak naon hartosna masing-masing bagian sareng naon pesen log éta tina telepon API. Presentasi unggal item dijelaskeun di handap.

Pandangan terstruktur tina data urang

  • localhost == lingkungan
  • GET == métode
  • ​ /v2/applink/5c2f4bb3e9fda1234edc64d == url
  • 400 == response_status
  • 46ms == response_time
  • ​ 5bc6e716b5d6cb35fc9687c0 == user_id

Sakumaha urang tingali dina data terstruktur, aya pesenan pikeun log anu teu terstruktur. Lengkah saterusna nyaéta ngolah software data atah. Ieu tempat Grok bersinar.

Grok Citakan

Diwangun-di Grok témplat

Logstash hadir sareng langkung ti 100 témplat anu diwangun pikeun nyusun data anu henteu terstruktur. Anjeun pasti kudu ngamangpaatkeun ieu sabisana pikeun syslogs umum kawas Apache, linux, haproxy, aws jeung saterusna.

Nanging, naon anu lumangsung nalika anjeun gaduh log khusus sapertos conto di luhur? Anjeun kedah ngawangun template Grok anjeun nyalira.

Custom Grok témplat

Anjeun kedah nyobian ngawangun template Grok anjeun nyalira. Kuring dipaké Grok Debugger и Pola Grok.

Catet yén sintaksis template Grok nyaéta kieu: %{SYNTAX:SEMANTIC}

Hal kahiji anu kuring usahakeun nyaéta angkat ka tab manggih dina debugger Grok. Teu sangka bakal tiis lamun alat ieu bisa otomatis ngahasilkeun pola Grok, tapi teu teuing mangpaat saprak éta ngan kapanggih dua patandingan.

Tip sareng trik pikeun ngarobih data anu henteu terstruktur tina log ka ELK Stack nganggo GROK di LogStash

Ngagunakeun pamanggihan ieu, kuring mimiti nyieun template kuring sorangan dina debugger Grok ngagunakeun sintaksis kapanggih dina kaca Github elastis.

Tip sareng trik pikeun ngarobih data anu henteu terstruktur tina log ka ELK Stack nganggo GROK di LogStash

Saatos maén sareng sintaksis anu béda, kuring tungtungna tiasa nyusun data log sakumaha anu dipikahoyong.

Tip sareng trik pikeun ngarobih data anu henteu terstruktur tina log ka ELK Stack nganggo GROK di LogStash

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

Tulisan 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}

Naon anu lumangsung dina tungtungna

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

Kalayan témplat Grok sareng data anu dipetakeun dina panangan, léngkah terakhir nyaéta nambihan kana Logstash.

Ngamutahirkeun file konfigurasi Logstash.conf

Dina server dimana anjeun dipasang tumpukan ELK, buka konfigurasi Logstash:

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

Tempelkeun parobahanana.

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" ]
  }
}

Saatos nyimpen parobihan anjeun, balikan deui Logstash sareng pariksa statusna pikeun mastikeun éta masih jalan.

sudo service logstash restart
sudo service logstash status

Tungtungna, pikeun mastikeun yén parobihan parantos dianggo, Pastikeun pikeun ngapdet indéks Elasticsearch anjeun pikeun Logstash di Kibana!

Tip sareng trik pikeun ngarobih data anu henteu terstruktur tina log ka ELK Stack nganggo GROK di LogStash

Kalayan Grok, data log anjeun terstruktur!

Tip sareng trik pikeun ngarobih data anu henteu terstruktur tina log ka ELK Stack nganggo GROK di LogStash

Sakumaha urang tiasa tingali dina gambar di luhur, Grok sanggup otomatis cocog data log sareng Elasticsearch. Ieu ngagampangkeun pikeun ngatur log sareng gancang naroskeun inpormasi. Gantina ngagali file log pikeun debug, anjeun ngan saukur tiasa nyaring dumasar kana naon anu anjeun milarian, sapertos lingkungan atanapi url.

Coba ekspresi Grok! Upami anjeun gaduh cara sanés pikeun ngalakukeun ieu atanapi gaduh masalah sareng conto di luhur, tuliskeun koméntar di handap pikeun masihan terang ka kuring.

Hatur nuhun pikeun maca-sareng tuturkeun kuring di dieu dina Medium pikeun tulisan rékayasa software anu langkung narik!

Sumberdaya

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 Sumber Patalina

Saluran Telegram ku Elasticsearch

sumber: www.habr.com

Tambahkeun komentar