Molaidhean is cleasan airson dàta neo-structaraichte a thionndadh bho logaichean gu ELK Stack a’ cleachdadh GROK ann an LogStash

A’ structaradh dàta neo-structaraichte le GROK

Ma tha thu a’ cleachdadh a’ chruach Elastic (ELK) agus gu bheil ùidh agad ann a bhith a’ mapadh logaichean àbhaisteach Logstash gu Elasticsearch, tha am post seo dhutsa.

Molaidhean is cleasan airson dàta neo-structaraichte a thionndadh bho logaichean gu ELK Stack a’ cleachdadh GROK ann an LogStash

Tha an stac ELK na acronaim airson trì pròiseactan stòr fosgailte: Elasticsearch, Logstash agus Kibana. Còmhla tha iad nan àrd-ùrlar riaghlaidh log.

  • Elasticsearch Is e siostam sgrùdaidh agus anailis a th’ ann.
  • Logstash na loidhne-phìoban giollachd dàta taobh an fhrithealaiche a bhios a’ toirt a-steach dàta bho ghrunn thùsan aig an aon àm, ga chruth-atharrachadh, agus an uairsin ga chuir gu “stash” leithid Elasticsearch.
  • Kibana a’ leigeil le luchd-cleachdaidh dàta fhaicinn a’ cleachdadh chlàran agus ghrafaichean ann an Elasticsearch.

Beats thàinig e nas fhaide air adhart agus tha e na shoitheach dàta aotrom. Le toirt a-steach Beats dh’ atharraich an Elk Stack gu bhith na Stac Elastic, ach chan e sin as coireach.

Tha an artaigil seo mu dheidhinn Grok, a tha na fheart ann an Logstash as urrainn do logaichean atharrachadh mus tèid an cur chun stash. Airson ar n-adhbharan, cha bhith mi a’ bruidhinn ach mu bhith a’ giullachd dàta bho Logstash gu Elasticsearch.

Molaidhean is cleasan airson dàta neo-structaraichte a thionndadh bho logaichean gu ELK Stack a’ cleachdadh GROK ann an LogStash

Tha Grok na chriathrag taobh a-staigh Logstash a thathas a’ cleachdadh gus dàta neo-structaraichte a pharsadh gu rudeigin structaraichte agus ceasnachail. Bidh e na shuidhe air mullach abairt àbhaisteach (regex) agus a’ cleachdadh pàtrain teacsa gus sreangan ann am faidhlichean log a mhaidseadh.

Mar a chì sinn anns na h-earrannan a leanas, tha cleachdadh Grok a’ dèanamh eadar-dhealachadh mòr nuair a thig e gu riaghladh èifeachdach air logaichean.

Às aonais Grok tha an dàta log agad gun structar

Molaidhean is cleasan airson dàta neo-structaraichte a thionndadh bho logaichean gu ELK Stack a’ cleachdadh GROK ann an LogStash

Às aonais Grok, nuair a thèid logaichean a chuir bho Logstash gu Elasticsearch agus an toirt seachad ann an Kibana, cha nochd iad ach ann an luach na teachdaireachd.

Tha e duilich fiosrachadh brìoghmhor a cheasnachadh san t-suidheachadh seo leis gu bheil a h-uile dàta log air a stòradh ann an aon iuchair. Bhiodh e na b’ fheàrr nam biodh na teachdaireachdan log air an eagrachadh nas fheàrr.

Dàta neo-structaraichte bho logaichean

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

Ma choimheadas tu gu dlùth air an dàta amh, chì thu gu bheil e dha-rìribh air a dhèanamh suas de phàirtean eadar-dhealaichte, gach fear air a sgaradh le àite.

Airson luchd-leasachaidh nas eòlaiche, is dòcha gu bheil thu comasach air tomhas dè tha gach pàirt a 'ciallachadh agus dè an teachdaireachd log a th' ann bhon ghairm API. Tha taisbeanadh gach nì air a mhìneachadh gu h-ìosal.

Sealladh structarail den dàta againn

  • localhost == àrainneachd
  • GET == modh
  • ​ /v2/applink/5c2f4bb3e9fda1234edc64d == url
  • 400 == inbhe_freagairt
  • 46ms == àm freagairt
  • ​ 5bc6e716b5d6cb35fc9687c0 == user_id

Mar a chì sinn ann an dàta structarail, tha òrdugh ann airson logaichean neo-structaraichte. Is e an ath cheum giollachd bathar-bog de dhàta amh. Seo far a bheil Grok a’ deàrrsadh.

Teamplaidean Grok

Teamplaidean Grok a chaidh a thogail a-steach

Tha Logstash a’ tighinn le còrr air 100 teamplaidean togte airson structaradh dàta neo-structaraichte. Bu chòir dhut gu cinnteach brath a ghabhail air seo nuair as urrainnear airson syslogs coitcheann leithid apache, linux, haproxy, aws agus mar sin air adhart.

Ach, dè thachras nuair a bhios logaichean àbhaisteach agad mar san eisimpleir gu h-àrd? Feumaidh tu an teamplaid Grok agad fhèin a thogail.

Teamplaidean Custom Grok

Feumaidh tu feuchainn ris an teamplaid Grok agad fhèin a thogail. Chleachd mi Grok Debugger и Pàtranan Grok.

Thoir an aire gu bheil co-chòrdadh teamplaid Grok mar a leanas: %{SYNTAX:SEMANTIC}

B' e a' chiad rud a dh'fheuch mi ri dhèanamh a dhol dhan tab Faigh a-mach anns an Grok debugger. Bha mi a’ smaoineachadh gum biodh e math nam b’ urrainn don inneal seo pàtran Grok a ghineadh gu fèin-ghluasadach, ach cha robh e ro fheumail leis nach do lorg e ach dà gheama.

Molaidhean is cleasan airson dàta neo-structaraichte a thionndadh bho logaichean gu ELK Stack a’ cleachdadh GROK ann an LogStash

A’ cleachdadh an lorg seo, thòisich mi a’ cruthachadh mo theamplaid fhìn anns an Grok debugger a’ cleachdadh a’ cho-chòrdadh a lorgar air duilleag Elastic Github.

Molaidhean is cleasan airson dàta neo-structaraichte a thionndadh bho logaichean gu ELK Stack a’ cleachdadh GROK ann an LogStash

Às deidh dhomh a bhith a’ cluich timcheall le diofar cho-chòrdalachd, bha e comasach dhomh mu dheireadh an dàta log a structaradh mar a bha mi ag iarraidh.

Molaidhean is cleasan airson dàta neo-structaraichte a thionndadh bho logaichean gu ELK Stack a’ cleachdadh GROK ann an LogStash

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

Teacs tùsail:

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

Pattern:

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

Dè thachair aig a 'cheann thall

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

Le teamplaid Grok agus dàta mapte na làimh, is e an ceum mu dheireadh a chuir ri Logstash.

Ag ùrachadh am faidhle rèiteachaidh Logstash.conf

Air an fhrithealaiche far an do chuir thu a-steach an stac ELK, rachaibh gu rèiteachadh Logstash:

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

Cuir a-steach na h-atharrachaidhean.

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

Às deidh dhut na h-atharrachaidhean agad a shàbhaladh, ath-thòisich Logstash agus thoir sùil air an inbhe aige gus dèanamh cinnteach gu bheil e fhathast ag obair.

sudo service logstash restart
sudo service logstash status

Mu dheireadh, gus dèanamh cinnteach gu bheil na h-atharrachaidhean air tighinn gu buil, Dèan cinnteach gun ùraich thu do chlàr Elasticsearch airson Logstash ann an Kibana!

Molaidhean is cleasan airson dàta neo-structaraichte a thionndadh bho logaichean gu ELK Stack a’ cleachdadh GROK ann an LogStash

Le Grok, tha structar an dàta log agad!

Molaidhean is cleasan airson dàta neo-structaraichte a thionndadh bho logaichean gu ELK Stack a’ cleachdadh GROK ann an LogStash

Mar a chì sinn san ìomhaigh gu h-àrd, tha Grok comasach air dàta log a mhaidseadh gu fèin-ghluasadach le Elasticsearch. Tha seo ga dhèanamh nas fhasa logaichean a riaghladh agus fiosrachadh a cheasnachadh gu sgiobalta. An àite a bhith a’ cladhach tro fhaidhlichean loga gu deasbug, faodaidh tu dìreach sìoladh a rèir na tha thu a’ sireadh, leithid àrainneachd no url.

Feuch abairtean Grok! Ma tha dòigh eile agad air seo a dhèanamh no ma tha duilgheadas sam bith agad leis na h-eisimpleirean gu h-àrd, dìreach sgrìobh beachd gu h-ìosal gus innse dhomh.

Taing airson leughadh - agus feuch an lean thu mi an seo air Meadhanach airson artaigilean innleadaireachd bathar-bog nas inntinniche!

Stòrasan

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 Ceangal stòr

Telegram sianal le Elasticsearch

Source: www.habr.com

Cuir beachd ann