Amathiphu namasu okuguqula idatha engahlelekile isuka kulogi iye ku-ELK Stack usebenzisa i-GROK ku-LogStash

Ukwakha idatha engahlelekile nge-GROK

Uma usebenzisa isitaki se-Elastic (ELK) futhi unentshisekelo yokumepha amalogi angokwezifiso e-Logstash ku-Elasticsearch, lokhu okuthunyelwe kungokwakho.

Amathiphu namasu okuguqula idatha engahlelekile isuka kulogi iye ku-ELK Stack usebenzisa i-GROK ku-LogStash

Isitaki se-ELK siyisifinyezo samaphrojekthi amathathu omthombo ovulekile: i-Elasticsearch, i-Logstash ne-Kibana. Bendawonye bakha inkundla yokuphatha amalogi.

  • Islastiki wuhlelo lokusesha nokuhlaziya.
  • Logstash iyipayipi yokucubungula idatha eseceleni kweseva engenisa idatha evela emithonjeni eminingi ngesikhathi esisodwa, iyiguqule, bese iyithumela "ku-stash" njenge-Elasticsearch.
  • Kibana ivumela abasebenzisi ukuthi babone idatha besebenzisa amashadi namagrafu ku-Elasticsearch.

Beats yeza kamuva futhi ingumthumeli wedatha engasindi. Ukwethulwa kwe-Beats kuguqule i-Elk Stack yaba yi-Elastic Stack, kodwa akulona iphuzu.

Lesi sihloko sikhuluma nge-Grok, okuyisici ku-Logstash esingaguqula izingodo zakho ngaphambi kokuthi zithunyelwe ku-stash. Ngezinjongo zethu, ngizokhuluma kuphela ngokucubungula idatha kusuka ku-Logstash kuya ku-Elasticsearch.

Amathiphu namasu okuguqula idatha engahlelekile isuka kulogi iye ku-ELK Stack usebenzisa i-GROK ku-LogStash

I-Grok isihlungi esingaphakathi kwe-Logstash esisetshenziselwa ukucozulula idatha engahlelekile ibe into ehlelekile futhi ebuzwayo. Ihlala phezu kwenkulumo evamile (regex) futhi isebenzisa amaphethini ombhalo ukuze ifane neyunithi yezinhlamvu kumafayela okungena.

Njengoba sizobona ezigabeni ezilandelayo, ukusebenzisa i-Grok kwenza umehluko omkhulu uma kuziwa ekuphathweni kwelogi okuphumelelayo.

Ngaphandle kwe-Grok idatha yakho yelogi ayihlelekile

Amathiphu namasu okuguqula idatha engahlelekile isuka kulogi iye ku-ELK Stack usebenzisa i-GROK ku-LogStash

Ngaphandle kwe-Grok, lapho amalogi ethunyelwa esuka ku-Logstash eya ku-Elasticsearch futhi enikezwa ngesi-Kibana, avela kuphela enanini lomlayezo.

Ukubuza ulwazi olubalulekile kulesi simo kunzima ngoba yonke idatha yelogi igcinwa kukhiye owodwa. Kungaba ngcono uma imilayezo yelogi ihlelwe kangcono.

Idatha engahlelekile evela kulogi

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

Uma ubhekisisa idatha eluhlaza, uzobona ukuthi empeleni iqukethe izingxenye ezihlukene, ngayinye ihlukaniswe yisikhala.

Konjiniyela abanolwazi olunzulu, ungaqagela ukuthi ingxenye ngayinye isho ukuthini nokuthi lowo mlayezo welogi uvela ocingweni lwe-API. Ukwethulwa kwento ngayinye kuvezwe ngezansi.

Ukubuka okuhleliwe kwedatha yethu

  • localhost == imvelo
  • THOLA == indlela
  • ​ /v2/applink/5c2f4bb3e9fda1234edc64d == url
  • 400 ==isimo_sempendulo
  • 46ms == impendulo_isikhathi
  • ​ 5bc6e716b5d6cb35fc9687c0 == user_id

Njengoba sibona kudatha ehleliwe, kukhona i-oda lamalogi angahlelekile. Isinyathelo esilandelayo ukucutshungulwa kwesofthiwe yedatha eluhlaza. Yilapho i-Grok ikhanya khona.

Grok Izifanekiso

Izifanekiso ezakhelwe ngaphakathi ze-Grok

I-Logstash iza nezifanekiso ezakhelwe ngaphakathi ezingaphezu kwe-100 zokuhlela idatha engahlelekile. Kufanele nakanjani usebenzise lokhu noma nini lapho kungenzeka kuma-syslogs ajwayelekile afana ne-apache, i-linux, i-haproxy, i-aws njalonjalo.

Nokho, kwenzekani uma unamalogi angokwezifiso njengasesibonelweni esingenhla? Kufanele wakhe isifanekiso sakho se-Grok.

Izifanekiso ze-Grok zangokwezifiso

Kufanele uzame ukwakha isifanekiso sakho se-Grok. ngisebenzise I-Grok Debugger ΠΈ Amaphethini e-Grok.

Qaphela ukuthi i-syntax yesifanekiso se-Grok imi kanje: %{SYNTAX:SEMANTIC}

Into yokuqala engizame ukuyenza kwaba ukuya kuthebhu Discover ku-debugger ye-Grok. Bengicabanga ukuthi kuzoba kuhle uma leli thuluzi likwazi ukukhiqiza ngokuzenzakalelayo iphethini ye-Grok, kodwa alizange libe wusizo kakhulu njengoba lithole ukufana okubili kuphela.

Amathiphu namasu okuguqula idatha engahlelekile isuka kulogi iye ku-ELK Stack usebenzisa i-GROK ku-LogStash

Ngisebenzisa lokhu kutholwa, ngaqala ukudala isifanekiso sami ku-Grok debugger ngisebenzisa i-syntax etholakala ekhasini le-Elastic Github.

Amathiphu namasu okuguqula idatha engahlelekile isuka kulogi iye ku-ELK Stack usebenzisa i-GROK ku-LogStash

Ngemva kokudlala ngama-syntaxes ahlukene, ekugcineni ngikwazile ukuhlela idatha yelogi ngendlela engangifuna ngayo.

Amathiphu namasu okuguqula idatha engahlelekile isuka kulogi iye ku-ELK Stack usebenzisa i-GROK ku-LogStash

Isixhumanisi se-Grok Debugger https://grokdebug.herokuapp.com/

Umbhalo wangempela:

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

Iphethini:

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

Kwenzekani ekugcineni

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

Ngesifanekiso se-Grok kanye nedatha emephu esandleni, isinyathelo sokugcina ukuyengeza ku-Logstash.

Ibuyekeza ifayela lokumisa le-Logstash.conf

Kuseva lapho ofake khona isitaki se-ELK, iya ekucushweni kwe-Logstash:

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

Namathisela izinguquko.

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

Ngemva kokulondoloza izinguquko zakho, qala kabusha i-Logstash futhi uhlole isimo sayo ukuze uqiniseke ukuthi isasebenza.

sudo service logstash restart
sudo service logstash status

Okokugcina, ukwenza isiqiniseko sokuthi izinguquko seziqalile ukusebenza, Qiniseka ukuthi ubuyekeza inkomba yakho ye-Elasticsearch ye-Logstash e-Kibana!

Amathiphu namasu okuguqula idatha engahlelekile isuka kulogi iye ku-ELK Stack usebenzisa i-GROK ku-LogStash

Nge-Grok, idatha yakho yelogi yakhiwe!

Amathiphu namasu okuguqula idatha engahlelekile isuka kulogi iye ku-ELK Stack usebenzisa i-GROK ku-LogStash

Njengoba sibona esithombeni esingenhla, i-Grok iyakwazi ukufanisa ngokuzenzakalelayo idatha yelogi ne-Elasticsearch. Lokhu kwenza kube lula ukuphatha amalogi kanye nokubuza ngokushesha ulwazi. Esikhundleni sokumba amafayela elogi ukuze ulungise iphutha, ungavele uhlunge ngalokho okufunayo, njengendawo ezungezile noma i-url.

Zama izinkulumo ze-Grok! Uma unenye indlela yokwenza lokhu noma unezinkinga ngezibonelo ezingenhla, mane ubhale amazwana ngezansi ukuze ungazise.

Ngiyabonga ngokufundaβ€”futhi ngicela ungilandele lapha ku-Medium ukuze uthole izindatshana ezithakazelisayo zobunjiniyela besofthiwe!

Izinsiza

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 Isixhumanisi somthombo

Isiteshi socingo ngo Islastiki

Source: www.habr.com

Engeza amazwana