Konsèy ak ke trik nouvèl pou konvèti done ki pa estriktire soti nan mòso bwa nan ELK Stack lè l sèvi avèk GROK nan LogStash

Estriktire done ki pa estriktire ak GROK

Si w ap itilize pil Elastic (ELK) epi w enterese nan kat mòso Logstash koutim sou Elasticsearch, Lè sa a, pòs sa a se pou ou.

Konsèy ak ke trik nouvèl pou konvèti done ki pa estriktire soti nan mòso bwa nan ELK Stack lè l sèvi avèk GROK nan LogStash

Pile ELK a se yon akwonim pou twa pwojè sous louvri: Elasticsearch, Logstash ak Kibana. Ansanm yo fòme yon platfòm jesyon boutèy demi lit.

  • Elasticsearch se yon sistèm rechèch ak analyse.
  • logstash se yon tiyo pwosesis done bò sèvè ki enjere done ki soti nan plizyè sous ansanm, transfòme li, epi answit voye li nan yon "kachèt" tankou Elasticsearch.
  • kibana pèmèt itilizatè yo vizyalize done lè l sèvi avèk tablo ak graf nan Elasticsearch.

Bat te vini pita epi li se yon ekspedye done ki lejè. Entwodiksyon Beats te transfòme Elk Stack nan Elastic Stack, men se pa pwen an.

Atik sa a se sou Grok, ki se yon karakteristik nan Logstash ki ka transfòme mòso bwa ou anvan yo voye yo nan kachèt la. Pou rezon nou an, mwen pral sèlman pale sou pwosesis done ki soti nan Logstash nan Elasticsearch.

Konsèy ak ke trik nouvèl pou konvèti done ki pa estriktire soti nan mòso bwa nan ELK Stack lè l sèvi avèk GROK nan LogStash

Grok se yon filtè andedan Logstash ki itilize pou analize done ki pa estriktire nan yon bagay ki estriktire ak keksyon. Li chita sou tèt yon ekspresyon regilye (regex) epi li sèvi ak modèl tèks pou matche ak fisèl nan dosye log.

Kòm nou pral wè nan seksyon sa yo, lè l sèvi avèk Grok fè yon gwo diferans lè li rive jesyon efikas boutèy demi lit.

San yo pa Grok done boutèy demi lit ou a pa estriktire

Konsèy ak ke trik nouvèl pou konvèti done ki pa estriktire soti nan mòso bwa nan ELK Stack lè l sèvi avèk GROK nan LogStash

San yo pa Grok, lè mòso bwa yo voye soti nan Logstash nan Elasticsearch ak rann nan Kibana, yo sèlman parèt nan valè mesaj la.

Rekèt enfòmasyon ki gen sans nan sitiyasyon sa a difisil paske tout done boutèy demi lit yo estoke nan yon sèl kle. Li ta pi bon si mesaj boutèy demi lit yo te pi byen òganize.

Done san estrikti ki soti nan mòso bwa

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

Si ou gade ak anpil atansyon nan done yo anvan tout koreksyon, ou pral wè ke li aktyèlman konsiste de diferan pati, chak separe pa yon espas.

Pou devlopè ki gen plis eksperyans, ou ka pwobableman devine kisa chak nan pati yo vle di ak ki sa mesaj boutèy la soti nan apèl la API. Prezantasyon chak atik yo dekri anba a.

View estriktire nan done nou yo

  • localhost == anviwònman
  • GET == metòd
  • ​ /v2/applink/5c2f4bb3e9fda1234edc64d == url
  • 400 == repons_estati
  • 46ms == tan repons
  • ​ 5bc6e716b5d6cb35fc9687c0 == user_id

Kòm nou wè nan done estriktire, gen yon lòd pou mòso bwa ki pa estriktire. Pwochen etap la se pwosesis lojisyèl nan done anvan tout koreksyon. Sa a se kote Grok klere.

Grok Modèl

Modèl Grok entegre yo

Logstash vini ak plis pase 100 modèl entegre pou estriktire done ki pa estriktire. Ou ta dwe definitivman pran avantaj de sa a chak fwa sa posib pou syslogs jeneral tankou apache, linux, haproxy, aws ak sou sa.

Sepandan, sa k ap pase lè ou gen mòso bwa koutim tankou nan egzanp ki anwo a? Ou dwe konstwi pwòp modèl Grok ou.

Custom Grok modèl

Ou dwe eseye bati pwòp modèl Grok ou a. Mwen te itilize Grok Debugger и Grok Modèl.

Remake byen ke sentaks modèl Grok la se jan sa a: %{SYNTAX:SEMANTIC}

Premye bagay mwen te eseye fè se te ale nan tab la Dekouvri nan debogaj Grok la. Mwen te panse ke li ta fre si zouti sa a ta ka otomatikman jenere yon modèl Grok, men li pa t 'twò itil paske li sèlman jwenn de alimèt.

Konsèy ak ke trik nouvèl pou konvèti done ki pa estriktire soti nan mòso bwa nan ELK Stack lè l sèvi avèk GROK nan LogStash

Sèvi ak dekouvèt sa a, mwen te kòmanse kreye pwòp modèl mwen nan debogaj Grok lè l sèvi avèk sentaks yo jwenn sou paj Elastic Github la.

Konsèy ak ke trik nouvèl pou konvèti done ki pa estriktire soti nan mòso bwa nan ELK Stack lè l sèvi avèk GROK nan LogStash

Apre mwen fin jwe ak sentaks diferan, mwen te finalman kapab estrikti done boutèy la fason mwen te vle.

Konsèy ak ke trik nouvèl pou konvèti done ki pa estriktire soti nan mòso bwa nan ELK Stack lè l sèvi avèk GROK nan LogStash

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

Tèks orijinal:

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

modèl:

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

Sa ki te pase a la fen

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

Avèk modèl Grok la ak done kat nan men, dènye etap la se ajoute li nan Logstash.

Mete ajou dosye konfigirasyon Logstash.conf la

Sou sèvè a kote ou enstale pil ELK la, ale nan konfigirasyon Logstash la:

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

Kole chanjman yo.

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

Apre ou fin sove chanjman ou yo, rekòmanse Logstash epi tcheke estati li yo pou asire w ke li toujou ap travay.

sudo service logstash restart
sudo service logstash status

Finalman, pou asire ke chanjman yo te pran efè, Asire w ou mete ajou endèks Elasticsearch ou a pou Logstash nan Kibana!

Konsèy ak ke trik nouvèl pou konvèti done ki pa estriktire soti nan mòso bwa nan ELK Stack lè l sèvi avèk GROK nan LogStash

Avèk Grok, done log ou estriktire!

Konsèy ak ke trik nouvèl pou konvèti done ki pa estriktire soti nan mòso bwa nan ELK Stack lè l sèvi avèk GROK nan LogStash

Kòm nou ka wè nan imaj ki anwo a, Grok se kapab otomatikman matche done log ak Elasticsearch. Sa fè li pi fasil pou jere mòso bwa ak byen vit rechèch enfòmasyon. Olye pou yo fouye nan dosye log pou debogaj, ou ka tou senpleman filtre pa sa w ap chèche, tankou yon anviwònman oswa yon url.

Bay ekspresyon Grok yon eseye! Si w gen yon lòt fason pou w fè sa oswa si w gen nenpòt pwoblèm ak egzanp ki anwo yo, jis ekri yon kòmantè anba a pou fè m konnen.

Mèsi pou lekti-e tanpri swiv mwen isit la sou Mwayen pou plis atik enteresan lojisyèl jeni!

Resous

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 Sous Sous

Channel Telegram pa Elasticsearch

Sous: www.habr.com

Add nouvo kòmantè