Awọn imọran ati ẹtan fun iyipada data ti a ko ṣeto lati awọn akọọlẹ si ELK Stack nipa lilo GROK ni LogStash

Ṣiṣeto data ti a ko ṣeto pẹlu GROK

Ti o ba nlo akopọ Elastic (ELK) ati pe o nifẹ si aworan aworan aṣa Logstash logs si Elasticsearch, lẹhinna ifiweranṣẹ yii jẹ fun ọ.

Awọn imọran ati ẹtan fun iyipada data ti a ko ṣeto lati awọn akọọlẹ si ELK Stack nipa lilo GROK ni LogStash

Akopọ ELK jẹ adape fun awọn iṣẹ akanṣe orisun ṣiṣi mẹta: Elasticsearch, Logstash ati Kibana. Papọ wọn ṣe ipilẹ pẹpẹ iṣakoso log kan.

  • Elasticsearch jẹ wiwa ati eto itupalẹ.
  • Logstash jẹ opo gigun ti epo ti n ṣatunṣe data ẹgbẹ olupin ti nwọle data lati awọn orisun lọpọlọpọ nigbakanna, yi pada, ati lẹhinna firanṣẹ si “stash” gẹgẹbi Elasticsearch.
  • agbana gba awọn olumulo laaye lati wo data nipa lilo awọn shatti ati awọn aworan ni Elasticsearch.

Pa wá nigbamii ati ki o jẹ a lightweight data sowo. Ifihan ti Beats yipada Elk Stack sinu Stack Elastic, ṣugbọn iyẹn kii ṣe aaye naa.

Nkan yii jẹ nipa Grok, eyiti o jẹ ẹya ni Logstash ti o le yi awọn akọọlẹ rẹ pada ṣaaju fifiranṣẹ wọn si stash. Fun awọn idi wa, Emi yoo sọrọ nikan nipa sisẹ data lati Logstash sinu Elasticsearch.

Awọn imọran ati ẹtan fun iyipada data ti a ko ṣeto lati awọn akọọlẹ si ELK Stack nipa lilo GROK ni LogStash

Grok jẹ àlẹmọ inu Logstash ti o lo lati ṣe itupalẹ data ti a ko ṣeto sinu nkan ti a ṣeto ati ibeere. O joko lori oke ikosile deede (regex) o si nlo awọn ilana ọrọ lati baamu awọn okun ni awọn faili log.

Gẹgẹbi a yoo rii ni awọn apakan atẹle, lilo Grok ṣe iyatọ nla nigbati o ba de si iṣakoso log daradara.

Laisi Grok rẹ log data ni unstructured

Awọn imọran ati ẹtan fun iyipada data ti a ko ṣeto lati awọn akọọlẹ si ELK Stack nipa lilo GROK ni LogStash

Laisi Grok, nigbati awọn igbasilẹ ti firanṣẹ lati Logstash si Elasticsearch ati ti a ṣe ni Kibana, wọn han nikan ni iye ifiranṣẹ.

Ibeere alaye ti o nilari ni ipo yii nira nitori gbogbo data log ti wa ni ipamọ sinu bọtini kan. Yoo dara julọ ti awọn ifiranṣẹ log ba ṣeto dara julọ.

Awọn data ti a ko ṣeto lati awọn akọọlẹ

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

Ti o ba wo ni pẹkipẹki ni awọn aise data, o yoo ri pe o kosi oriširiši ti o yatọ si awọn ẹya ara, kọọkan niya nipa aaye kan.

Fun awọn olupilẹṣẹ ti o ni iriri diẹ sii, o le ṣe akiyesi kini awọn apakan kọọkan tumọ si ati kini ifiranṣẹ log yẹn jẹ lati ipe API. Awọn igbejade ti ohun kọọkan jẹ ilana ni isalẹ.

Ti eleto wiwo ti wa data

  • localhost == ayika
  • Gba == ọna
  • ​ /v2/applink/5c2f4bb3e9fda1234edc64d == url
  • 400 = ipo idahun
  • 46ms == idahun_akoko
  • ​ 5bc6e716b5d6cb35fc9687c0 == user_id

Gẹgẹbi a ti rii ninu data eleto, aṣẹ kan wa fun awọn akọọlẹ ti a ko ṣeto. Igbesẹ ti o tẹle ni sisẹ sọfitiwia ti data aise. Eyi ni ibi ti Grok nmọlẹ.

Grok Awọn awoṣe

Awọn awoṣe Grok ti a ṣe sinu

Logstash wa pẹlu diẹ sii ju awọn awoṣe ti a ṣe sinu 100 fun siseto data ti ko ṣeto. O yẹ ki o dajudaju lo anfani eyi nigbakugba ti o ṣee ṣe fun awọn syslogs gbogbogbo bi apache, linux, haproxy, aws ati bẹbẹ lọ.

Sibẹsibẹ, kini yoo ṣẹlẹ nigbati o ni awọn akọọlẹ aṣa bi ninu apẹẹrẹ loke? O gbọdọ kọ ara rẹ Grok awoṣe.

Aṣa Grok awọn awoṣe

O ni lati gbiyanju lati kọ ara rẹ Grok awoṣe. Mo lo Grok Debugger и Awọn ilana Grok.

Ṣe akiyesi pe sintasi awoṣe Grok jẹ bi atẹle: %{SYNTAX:SEMANTIC}

Ohun akọkọ ti Mo gbiyanju lati ṣe ni lọ si taabu naa Iwari ni Grok debugger. Mo ro pe yoo dara ti ọpa yii ba le ṣe agbekalẹ ilana Grok laifọwọyi, ṣugbọn ko wulo pupọ nitori o rii awọn ere-kere meji nikan.

Awọn imọran ati ẹtan fun iyipada data ti a ko ṣeto lati awọn akọọlẹ si ELK Stack nipa lilo GROK ni LogStash

Lilo wiwa yii, Mo bẹrẹ ṣiṣẹda awoṣe ti ara mi ni Grok debugger nipa lilo sintasi ti a rii lori oju-iwe Elastic Github.

Awọn imọran ati ẹtan fun iyipada data ti a ko ṣeto lati awọn akọọlẹ si ELK Stack nipa lilo GROK ni LogStash

Lẹhin ti ndun ni ayika pẹlu awọn ọna kika oriṣiriṣi, Mo ni anfani nipari lati ṣe agbekalẹ data log ni ọna ti Mo fẹ.

Awọn imọran ati ẹtan fun iyipada data ti a ko ṣeto lati awọn akọọlẹ si ELK Stack nipa lilo GROK ni LogStash

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

Ọrọ atilẹba:

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

Àpẹẹrẹ:

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

Kini o ṣẹlẹ ni ipari

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

Pẹlu awoṣe Grok ati data ti a ya ni ọwọ, igbesẹ ti o kẹhin ni lati ṣafikun si Logstash.

Ṣiṣe imudojuiwọn faili iṣeto Logstash.conf

Lori olupin nibiti o ti fi akopọ ELK sori ẹrọ, lọ si iṣeto Logstash:

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

Lẹẹmọ awọn ayipada.

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

Lẹhin fifipamọ awọn ayipada rẹ, tun bẹrẹ Logstash ki o ṣayẹwo ipo rẹ lati rii daju pe o tun n ṣiṣẹ.

sudo service logstash restart
sudo service logstash status

Ni ipari, lati rii daju pe awọn ayipada ti ni ipa, Rii daju lati ṣe imudojuiwọn atọka Elasticsearch rẹ fun Logstash ni Kibana!

Awọn imọran ati ẹtan fun iyipada data ti a ko ṣeto lati awọn akọọlẹ si ELK Stack nipa lilo GROK ni LogStash

Pẹlu Grok, data log rẹ ti ṣeto!

Awọn imọran ati ẹtan fun iyipada data ti a ko ṣeto lati awọn akọọlẹ si ELK Stack nipa lilo GROK ni LogStash

Gẹgẹbi a ti le rii ninu aworan ti o wa loke, Grok ni agbara lati baamu data log laifọwọyi pẹlu Elasticsearch. Eyi jẹ ki o rọrun lati ṣakoso awọn akọọlẹ ati alaye ibeere ni kiakia. Dipo ti walẹ nipasẹ awọn faili log lati yokokoro, o le jiroro ni àlẹmọ nipasẹ ohun ti o n wa, gẹgẹbi agbegbe tabi url kan.

Fun Grok expressions a gbiyanju! Ti o ba ni ọna miiran lati ṣe eyi tabi ni awọn iṣoro eyikeyi pẹlu awọn apẹẹrẹ loke, kan kọ asọye ni isalẹ lati jẹ ki mi mọ.

O ṣeun fun kika-ati jọwọ tẹle mi nibi lori Alabọde fun awọn nkan imọ-ẹrọ sọfitiwia ti o nifẹ diẹ sii!

Oro

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 Orisun ọna asopọ

Telegram ikanni nipasẹ Elasticsearch

orisun: www.habr.com

Fi ọrọìwòye kun