Leideanna agus cleasanna chun sonraí neamhstruchtúrtha a thiontú ó logs go ELK Stack ag úsáid GROK in Logstash

Sonraí neamhstruchtúrtha a struchtúrú le GROK

Má tá tú ag baint úsáide as an chruach Elastic (ELK) agus go bhfuil suim agat logs Logstash saincheaptha a mhapáil chuig Elasticsearch, ansin tá an post seo duitse.

Leideanna agus cleasanna chun sonraí neamhstruchtúrtha a thiontú ó logs go ELK Stack ag úsáid GROK in Logstash

Is acrainm é cruach ELK do thrí thionscadal foinse oscailte: Elasticsearch, Logstash agus Kibana. Le chéile cruthaíonn siad ardán bainistíochta loga.

  • Elasticsearch is córas cuardaigh agus anailíse é.
  • Logstash píblíne próiseála sonraí ar thaobh an fhreastalaí é a ionghabháil sonraí ó fhoinsí iolracha go comhuaineach, a chlaochlaíonn sé, agus ansin a sheolann chuig “stash” ar nós Elasticsearch.
  • Kibana ligeann sé d’úsáideoirí sonraí a shamhlú ag baint úsáide as cairteacha agus graif in Elasticsearch.

Beats tháinig níos déanaí agus is seoltóir sonraí éadrom é. Le tabhairt isteach Beats chlaochlú an Elk Stack isteach sa Cruach leaisteacha, ach ní hé sin an pointe.

Tá an t-alt seo faoi Grok, atá ina ghné i Logstash a fhéadfaidh do logs a athrú sula gcuirtear chuig an stash iad. Chun ár gcríoch, ní bheidh mé ag caint ach faoi phróiseáil sonraí ó Logstash isteach Elasticsearch.

Leideanna agus cleasanna chun sonraí neamhstruchtúrtha a thiontú ó logs go ELK Stack ag úsáid GROK in Logstash

Is scagaire é Grok taobh istigh de Logstash a úsáidtear chun sonraí neamhstruchtúrtha a pharsáil i rud struchtúrtha agus incheistithe. Suíonn sé ar bharr slonn rialta (regex) agus úsáideann sé patrúin téacs chun teaghráin i gcomhaid logála a mheaitseáil.

Mar a fheicfimid sna hailt seo a leanas, déanann úsáid Grok difríocht mhór nuair a thagann sé le bainistíocht éifeachtach logála.

Gan Grok tá do shonraí logála neamhstruchtúrtha

Leideanna agus cleasanna chun sonraí neamhstruchtúrtha a thiontú ó logs go ELK Stack ag úsáid GROK in Logstash

Gan Grok, nuair a sheoltar logs ó Logstash go Elasticsearch agus a rindreáiltear i Kibana, ní bhíonn siad le feiceáil ach i luach na teachtaireachta.

Tá sé deacair faisnéis bhríoch a cheistiú sa chás seo mar go bhfuil na sonraí logála go léir stóráilte in aon eochair amháin. Bheadh ​​​​sé níos fearr dá mbeadh na teachtaireachtaí logála eagraithe níos fearr.

Sonraí neamhstruchtúrtha ó logaí

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

Má fhéachann tú go géar ar na sonraí amh, feicfidh tú go bhfuil sé comhdhéanta de chodanna éagsúla, gach ceann díobh scartha le spás.

I gcás forbróirí níos mó taithí, is dócha gur féidir leat buille faoi thuairim a dhéanamh ar cad a chiallaíonn gach ceann de na codanna agus cad é an teachtaireacht logála sin ón nglao API. Tá cur i láthair gach míre leagtha amach thíos.

Amharc struchtúrtha ar ár sonraí

  • localhost == timpeallacht
  • GET = = modh
  • ​ /v2/applink/5c2f4bb3e9fda1234edc64d == url
  • 400 == stádas_freagra
  • 46ms == freagartha_am
  • ​ 5bc6e716b5d6cb35fc9687c0 == user_id

Mar a fheicimid i sonraí struchtúrtha, tá ordú ann do logaí neamhstruchtúrtha. Is é an chéad chéim eile próiseáil bogearraí sonraí amh. Seo an áit a lasann Grok.

Teimpléid Grok

Teimpléid Grok ionsuite

Tagann Logstash le breis is 100 teimpléad ionsuite chun sonraí neamhstruchtúrtha a struchtúrú. Ba cheart duit leas a bhaint as seo go cinnte nuair is féidir le haghaidh syslogs ginearálta cosúil le apache, linux, haproxy, aws agus mar sin de.

Mar sin féin, cad a tharlaíonn nuair a bhíonn logaí saincheaptha agat mar atá sa sampla thuas? Ní mór duit do theimpléad Grok féin a thógáil.

Teimpléid saincheaptha Grok

Caithfidh tú iarracht a dhéanamh do theimpléad Grok féin a thógáil. d'úsáid mé Grok Dífhabhtóir и Patrúin Grok.

Tabhair faoi deara go bhfuil comhréir teimpléad Grok mar seo a leanas: %{SYNTAX:SEMANTIC}

An chéad rud a rinne mé iarracht a dhéanamh ná dul go dtí an táb Discover sa dífhabhtóir Grok. Shíl mé go mbeadh sé iontach dá bhféadfadh an uirlis seo patrún Grok a ghiniúint go huathoibríoch, ach ní raibh sé ró-úsáideach toisc nach bhfuair sé ach dhá mheaitse.

Leideanna agus cleasanna chun sonraí neamhstruchtúrtha a thiontú ó logs go ELK Stack ag úsáid GROK in Logstash

Ag baint úsáide as an bhfionnachtain seo, thosaigh mé ag cruthú mo theimpléad féin sa dífhabhtóir Grok ag baint úsáide as an chomhréir atá le fáil ar an leathanach Elastic Github.

Leideanna agus cleasanna chun sonraí neamhstruchtúrtha a thiontú ó logs go ELK Stack ag úsáid GROK in Logstash

Tar éis imirt timpeall le comhréireanna éagsúla, bhí mé in ann ar deireadh na sonraí logála a struchtúrú ar an mbealach a bhí mé.

Leideanna agus cleasanna chun sonraí neamhstruchtúrtha a thiontú ó logs go ELK Stack ag úsáid GROK in Logstash

Nasc Dífhabhtóir Grok https://grokdebug.herokuapp.com/

Buntéacs:

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

patrún:

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

Cad a tharla sa deireadh

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

Le teimpléad Grok agus sonraí mapáilte ar láimh, is é an chéim dheireanach é a chur le Logstash.

Comhad cumraíochta Logstash.conf á nuashonrú

Ar an bhfreastalaí inar shuiteáil tú an cruach ELK, téigh go dtí an chumraíocht Logstash:

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

Greamaigh na hathruithe.

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

Tar éis do chuid athruithe a shábháil, atosaigh Logstash agus seiceáil a stádas chun a chinntiú go bhfuil sé fós ag obair.

sudo service logstash restart
sudo service logstash status

Ar deireadh, lena chinntiú go bhfuil na hathruithe i bhfeidhm, Bí cinnte d’innéacs Elasticsearch do Logstash in Kibana a nuashonrú!

Leideanna agus cleasanna chun sonraí neamhstruchtúrtha a thiontú ó logs go ELK Stack ag úsáid GROK in Logstash

Le Grok, tá do shonraí logála struchtúrtha!

Leideanna agus cleasanna chun sonraí neamhstruchtúrtha a thiontú ó logs go ELK Stack ag úsáid GROK in Logstash

Mar is féidir linn a fheiceáil san íomhá thuas, tá Grok in ann sonraí loga a mheaitseáil go huathoibríoch le Elasticsearch. Fágann sin gur fusa logaí a bhainistiú agus faisnéis a fhiosrú go tapa. In ionad tochailt trí chomhaid logála le dífhabhtú, is féidir leat an méid atá uait a scagadh, mar shampla timpeallacht nó url.

Bain triail as nathanna Grok! Má tá bealach eile agat chun é seo a dhéanamh nó má tá aon fhadhb agat leis na samplaí thuas, níl le déanamh ach trácht a scríobh thíos chun mé a chur ar an eolas.

Go raibh maith agat as léamh - agus le do thoil lean mé anseo ar Meánach le haghaidh ailt innealtóireachta bogearraí níos suimiúla!

Acmhainní

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 Nasc foinse

Cainéal teileagram ag Elasticsearch

Foinse: will.com

Add a comment