Serişte û hîleyên ji bo veguheztina daneyên nesazkirî ji têketin berbi ELK Stack bi karanîna GROK-ê di LogStash de

Bi GROK-ê re daneyên nesazkirî ava kirin

Ger hûn stoka Elastic (ELK) bikar tînin û bala we dikin ku nexşeyên xwerû yên Logstash ji Elasticsearch re nexşînin, wê hingê ev post ji bo we ye.

Serişte û hîleyên ji bo veguheztina daneyên nesazkirî ji têketin berbi ELK Stack bi karanîna GROK-ê di LogStash de

Stack ELK ji bo sê projeyên çavkaniya vekirî kurteyek e: Elasticsearch, Logstash û Kibana. Bi hev re ew platformek rêveberiya têketinê ava dikin.

  • Elasticsearch sîstemeke lêgerîn û analîtîk e.
  • Logstash lûleyek hilberandina daneyê ya server-ê ye ku daneyan ji gelek çavkaniyan bi hevdemî diqulipîne, diguhezîne, û dûv re wê dişîne "veşartin"ek wekî Elasticsearch.
  • Kibana destûrê dide bikarhêneran ku bi karanîna nexş û grafikên di Elasticsearch de daneyan xuyang bikin.

Beats paşê hat û barkêşek daneya sivik e. Danasîna Beats Elk Stack veguherand Stack Elastic, lê ew ne xal e.

Ev gotar li ser Grok e, ku di Logstash de taybetmendiyek e ku dikare têketinên we veguherîne berî ku ew werin şandin. Ji bo mebestên me, ez ê tenê li ser hilanîna daneyên ji Logstash li Elasticsearch biaxivim.

Serişte û hîleyên ji bo veguheztina daneyên nesazkirî ji têketin berbi ELK Stack bi karanîna GROK-ê di LogStash de

Grok parzûnek di hundurê Logstash de ye ku tê bikar anîn da ku daneyên nesazkirî li tiştek birêkûpêk û jêpirsîn dabeş bike. Ew li ser biwêjek birêkûpêk (regex) rûniştiye û qalibên nivîsê bikar tîne da ku rêzikên di pelên têketinê de li hev bicivîne.

Wekî ku em ê di beşên jêrîn de bibînin, karanîna Grok di dema rêveberiya têketinê ya bikêr de cûdahiyek mezin dike.

Bê Grok daneyên têketina we nesazkirî ye

Serişte û hîleyên ji bo veguheztina daneyên nesazkirî ji têketin berbi ELK Stack bi karanîna GROK-ê di LogStash de

Bêyî Grok, dema ku têketin ji Logstash ji Elasticsearch re têne şandin û li Kibana têne pêşkêş kirin, ew tenê di nirxa peyamê de xuya dibin.

Lêpirsîna agahdariya watedar di vê rewşê de dijwar e ji ber ku hemî daneyên têketinê di yek keyek de têne hilanîn. Ger peyamên têketinê çêtir werin organîze kirin dê çêtir be.

Daneyên nesazkirî ji têketin

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

Ger hûn ji nêz ve li daneyên xav binêrin, hûn ê bibînin ku ew bi rastî ji beşên cûda pêk tê, ku her yek ji hêla cîhek veqetandî ye.

Ji bo pêşdebirên bi tecrube, hûn belkî dikarin texmîn bikin ka her yek ji beşan tê çi wateyê û ew peyama têketinê ji banga API-ê çi ye. Pêşniyara her babetekê li jêr tê destnîşan kirin.

Dîtina strukturkirî ya daneyên me

  • localhost == jîngeh
  • GET == rêbaz
  • ​ /v2/applink/5c2f4bb3e9fda1234edc64d == url
  • ​400 == bersiv_rewşa
  • ​ 46ms == bersiv_dem
  • ​ 5bc6e716b5d6cb35fc9687c0 == user_id

Wekî ku em di daneyên birêkûpêk de dibînin, fermanek ji bo têketinên nesazkirî heye. Pêngava paşîn hilanîna nermalava daneyên xav e. Li vir Grok dibiriqe.

Şablonên Grok

Şablonên Grok-ê yên çêkirî

Logstash bi zêdetirî 100 şablonên çêkirî yên ji bo pêkhatina daneyên nesazkirî tê. Pêdivî ye ku hûn bê guman ji vê yekê sûd werbigirin dema ku ji bo syslogên gelemperî yên wekî apache, linux, haproxy, aws û hwd.

Lêbelê, gava ku we têketinên xwerû yên mîna mînaka jorîn hebin, çi diqewime? Divê hûn şablonê Grok-a xwe ava bikin.

Şablonên Custom Grok

Pêdivî ye ku hûn hewl bidin ku şablona xweya Grok ava bikin. Min bi kar anî Grok Debugger и Grok Patterns.

Têbînî ku hevoksaziya şablonê Grok wiha ye: %{SYNTAX:SEMANTIC}

Yekem tiştê ku min hewl da ku ez biçim tabê bû Kişfkirin di debuggerê Grok de. Min difikirî ku ew ê xweş be ger ev amûr bikaribe bixweber nimûneyek Grok çêbike, lê ew ne pir bikêr bû ji ber ku wê tenê du hevber dîtin.

Serişte û hîleyên ji bo veguheztina daneyên nesazkirî ji têketin berbi ELK Stack bi karanîna GROK-ê di LogStash de

Bi karanîna vê vedîtinê, min bi karanîna hevoksaziya ku li ser rûpela Elastic Github tê dîtin dest bi çêkirina şablonê xwe di debuggerê Grok de kir.

Serişte û hîleyên ji bo veguheztina daneyên nesazkirî ji têketin berbi ELK Stack bi karanîna GROK-ê di LogStash de

Piştî ku bi hevoksaziyên cihêreng re lîstin, min di dawiyê de karî daneyên têketinê bi awayê ku min dixwest ava bikim.

Serişte û hîleyên ji bo veguheztina daneyên nesazkirî ji têketin berbi ELK Stack bi karanîna GROK-ê di LogStash de

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

Orjînal nivîs:

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

Mînak:

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

Di dawiyê de çi bû

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

Di destê şablonê Grok û daneyên nexşandî de, gava paşîn ev e ku meriv wê li Logstash zêde bike.

Nûvekirina pelê veavakirina Logstash.conf

Li ser servera ku we stûyê ELK saz kiriye, biçin veavakirina Logstash:

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

Guhertinan bixin.

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

Piştî tomarkirina guhertinên xwe, Logstash ji nû ve bidin destpêkirin û rewşa wê kontrol bikin da ku pê ewle bibin ku ew hîn jî dixebite.

sudo service logstash restart
sudo service logstash status

Di dawiyê de, ji bo ku piştrast bikin ku guhertin bandor bûne, Ji bo Logstash li Kibana pêbaweriya xwe ya Elasticsearch nûve bikin!

Serişte û hîleyên ji bo veguheztina daneyên nesazkirî ji têketin berbi ELK Stack bi karanîna GROK-ê di LogStash de

Bi Grok re, daneyên têketina we têne saz kirin!

Serişte û hîleyên ji bo veguheztina daneyên nesazkirî ji têketin berbi ELK Stack bi karanîna GROK-ê di LogStash de

Wekî ku em di wêneyê jor de dibînin, Grok dikare bixweber daneyên têketinê bi Elasticsearch re hevber bike. Bi vî rengî birêvebirina têketin û bi lez lêpirsîna agahdariyê hêsantir dike. Li şûna ku hûn pelên têketinê bikolin da ku xeletiyê bikin, hûn dikarin bi tenê tiştê ku hûn lê digerin, wekî hawîrdorek an url-ê fîlter bikin.

Gotinên Grok biceribînin! Ger rêyek weya din heye ku hûn vê yekê bikin an jî bi mînakên jorîn re pirsgirêkên we hebin, tenê şîroveyek li jêr binivîsin da ku ez agahdar bikim.

Spas ji bo xwendinê-û ji kerema xwe min li vir li ser Medium bişopînin ji bo bêtir gotarên endezyariya nermalavê!

Çavkaniyên

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 Girêdana çavkaniyê

Kanala Telegram ji aliyê Elasticsearch

Source: www.habr.com

Add a comment