Torohevitra sy fika amin'ny famadihana angona tsy voarindra avy amin'ny logs ho ELK Stack mampiasa GROK ao amin'ny LogStash

Fandrafetana angon-drakitra tsy voarindra miaraka amin'ny GROK

Raha mampiasa ny stack Elastic (ELK) ianao ary liana amin'ny fanaovana sari-tany ny logstash mahazatra amin'ny Elasticsearch, dia ho anao ity lahatsoratra ity.

Torohevitra sy fika amin'ny famadihana angona tsy voarindra avy amin'ny logs ho ELK Stack mampiasa GROK ao amin'ny LogStash

Ny stack ELK dia fanafohezana ny tetikasa open source telo: Elasticsearch, Logstash ary Kibana. Miara-mamorona sehatra fitantanana log izy ireo.

  • Elasticsearch dia rafitra fikarohana sy famakafakana.
  • logstash dia fantsona fanodinana angon-drakitra amin'ny lafiny mpizara izay mampiditra angon-drakitra avy amin'ny loharano maro miaraka, manova azy, ary avy eo mandefa azy any amin'ny "stash" toy ny Elasticsearch.
  • kibana ahafahan'ny mpampiasa mijery angon-drakitra amin'ny fampiasana tabilao sy tabilao ao amin'ny Elasticsearch.

mitempo tonga taty aoriana ary mpandefa data maivana. Ny fampidirana ny Beats dia nanova ny Elk Stack ho Elastic Stack, saingy tsy izany no hevitra.

Ity lahatsoratra ity dia momba an'i Grok, izay singa iray ao amin'ny Logstash izay afaka manova ny dianao alohan'ny handefasana azy any amin'ny stash. Ho an'ny tanjonay dia hiresaka momba ny fanodinana angon-drakitra avy amin'ny Logstash mankany Elasticsearch fotsiny aho.

Torohevitra sy fika amin'ny famadihana angona tsy voarindra avy amin'ny logs ho ELK Stack mampiasa GROK ao amin'ny LogStash

Ny Grok dia sivana ao anatin'ny Logstash izay ampiasaina handinihana ny angona tsy voarafitra ho zavatra voarafitra sy azo anontaniana. Mipetraka eo an-tampon'ny fomba fiteny mahazatra (regex) izy io ary mampiasa lamina lahatsoratra mba hampifanaraka ny tady amin'ny rakitra log.

Araka ny ho hitantsika amin'ireto fizarana manaraka ireto, ny fampiasana Grok dia mitondra fiovana lehibe raha resaka fitantanana logs mahomby.

Raha tsy misy Grok dia tsy voarindra ny angon-drakitrao

Torohevitra sy fika amin'ny famadihana angona tsy voarindra avy amin'ny logs ho ELK Stack mampiasa GROK ao amin'ny LogStash

Raha tsy misy Grok, rehefa alefa avy any Logstash mankany amin'ny Elasticsearch ny logs ary adika amin'ny Kibana, dia hita ao amin'ny sandan'ny hafatra ihany izy ireo.

Sarotra ny manontany fampahalalana manan-danja amin'ity toe-javatra ity satria voatahiry ao anaty fanalahidy tokana ny angon-drakitra rehetra. Tsara kokoa raha voalamina tsara ny hafatra ao anaty log.

Data tsy voarafitra avy amin'ny logs

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

Raha mijery akaiky ny angon-drakitra manta ianao dia ho hitanao fa tena misy ampahany samihafa izy io, samy misaraka amin'ny habaka iray.

Ho an'ny mpamorona efa za-draharaha kokoa, azonao atao ny maminavina ny dikan'ny ampahany tsirairay sy ny dikan'io hafatra log io avy amin'ny antso API. Ny fanolorana ny singa tsirairay dia voasoritra etsy ambany.

Fijery voarafitra momba ny angonay

  • localhost == tontolo iainana
  • GET == fomba
  • ​ /v2/applink/5c2f4bb3e9fda1234edc64d == url
  • 400 == response_status
  • 46ms == Respon_time
  • ​ 5bc6e716b5d6cb35fc9687c0 == user_id

Araka ny hitantsika amin'ny angona voarafitra dia misy baiko ho an'ny logs tsy voarindra. Ny dingana manaraka dia ny fanodinana rindrambaiko momba ny angona manta. Eto no mamirapiratra i Grok.

Grok Templates

Modely Grok namboarina

Logstash dia tonga miaraka amin'ny maodely naorina 100 mahery handrafetana angona tsy voarindra. Tokony hanararaotra izany ianao isaky ny azo atao ho an'ny syslogs ankapobeny toy ny apache, linux, haproxy, aws sy ny sisa.

Na izany aza, inona no mitranga rehefa manana logs manokana toy ny ohatra etsy ambony ianao? Tsy maintsy manamboatra ny maodely Grok anao manokana ianao.

Custom Grok templates

Tsy maintsy manandrana manamboatra ny maodely Grok anao manokana ianao. nampiasako Grok Debugger ΠΈ Grok Patterns.

Mariho fa ny syntax template Grok dia toy izao manaraka izao: %{SYNTAX:SEMANTIC}

Ny zavatra voalohany nandramako natao dia ny mankany amin'ny tabilao Discover ao amin'ny Grok debugger. Nihevitra aho fa ho tsara raha afaka mamorona modely Grok ho azy io fitaovana io, saingy tsy dia ilaina loatra satria lalao roa ihany no hitany.

Torohevitra sy fika amin'ny famadihana angona tsy voarindra avy amin'ny logs ho ELK Stack mampiasa GROK ao amin'ny LogStash

Tamin'ny fampiasana an'io fahitana io dia nanomboka namorona ny mΓ΄dely manokana aho tao amin'ny Grok debugger tamin'ny fampiasana ny syntax hita ao amin'ny pejy Elastic Github.

Torohevitra sy fika amin'ny famadihana angona tsy voarindra avy amin'ny logs ho ELK Stack mampiasa GROK ao amin'ny LogStash

Rehefa avy nilalao tamin'ny syntax samihafa aho dia afaka nandrafitra ny angon-drakitra tamin'ny fomba tiako.

Torohevitra sy fika amin'ny famadihana angona tsy voarindra avy amin'ny logs ho ELK Stack mampiasa GROK ao amin'ny LogStash

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

Lahatsoratra tany am-boalohany:

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

Pattern:

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

Inona no nitranga tamin'ny farany

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

Miaraka amin'ny maodely Grok sy ny angon-drakitra voarakitra an-tanana, ny dingana farany dia ny manampy azy amin'ny Logstash.

Fanavaozana ny rakitra fikirakirana Logstash.conf

Ao amin'ny mpizara izay nametrahanao ny stack ELK, mandehana any amin'ny fikirakirana Logstash:

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

Apetaho ireo fanovana.

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

Aorian'ny fitehirizana ny fanovanao, avereno indray ny Logstash ary jereo ny sata misy azy mba hahazoana antoka fa mbola miasa izy.

sudo service logstash restart
sudo service logstash status

Farany, mba hahazoana antoka fa nisy fiantraikany ny fanovana, Aza hadino ny manavao ny indeksanao Elasticsearch ho an'ny Logstash ao Kibana!

Torohevitra sy fika amin'ny famadihana angona tsy voarindra avy amin'ny logs ho ELK Stack mampiasa GROK ao amin'ny LogStash

Miaraka amin'ny Grok, voarafitra ny angon-drakitrao!

Torohevitra sy fika amin'ny famadihana angona tsy voarindra avy amin'ny logs ho ELK Stack mampiasa GROK ao amin'ny LogStash

Araka ny hitantsika amin'ny sary etsy ambony, Grok dia afaka mampifanaraka ny angon-drakitra log miaraka amin'ny Elasticsearch. Izany dia manamora ny fitantanana ny diary sy ny fangatahana fampahalalana haingana. Raha tokony hikaroka fisie log debug ianao dia azonao atao ny manivana fotsiny amin'ny zavatra tadiavinao, toy ny tontolo iainana na url.

Andramo ny fomba fiteny Grok! Raha manana fomba hafa hanaovana izany ianao na manana olana amin'ireo ohatra etsy ambony dia manorata fanehoan-kevitra eto ambany mba hampandre ahy.

Misaotra namakyβ€”ary araho azafady aho eto amin'ny Medium raha mila lahatsoratra momba ny injeniera rindrambaiko mahaliana kokoa!

loharanon-karena

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/

Sal Loharano loharano

Fantsona Telegram avy amin'ny Elasticsearch

Source: www.habr.com

Add a comment