Nā ʻōlelo aʻoaʻo a me nā hoʻopunipuni no ka hoʻololi ʻana i ka ʻikepili i kūkulu ʻole ʻia mai nā lāʻau i ELK Stack me ka hoʻohana ʻana iā GROK ma LogStash

Ke kūkulu ʻana i ka ʻikepili i hoʻonohonoho ʻole ʻia me GROK

Inā ʻoe e hoʻohana nei i ka waihona Elastic (ELK) a makemake ʻoe i ka palapala ʻana i nā logstash maʻamau i Elasticsearch, a laila nou kēia pou.

Nā ʻōlelo aʻoaʻo a me nā hoʻopunipuni no ka hoʻololi ʻana i ka ʻikepili i kūkulu ʻole ʻia mai nā lāʻau i ELK Stack me ka hoʻohana ʻana iā GROK ma LogStash

ʻO ka ELK stack kahi acronym no ʻekolu papahana open source: Elasticsearch, Logstash a me Kibana. Hoʻohui pū lākou i kahi kahua hoʻokele log.

  • Elasticsearch he ʻōnaehana ʻimi a me ka nānā ʻana.
  • ʻO Logstash he pipeline hoʻoponopono ʻikepili ʻaoʻao server e hoʻokomo i ka ʻikepili mai nā kumu he nui i ka manawa like, hoʻololi iā ia, a laila hoʻouna iā ia i kahi "stash" e like me Elasticsearch.
  • kibana hiki i nā mea hoʻohana ke nānā i ka ʻikepili me ka hoʻohana ʻana i nā pakuhi a me nā kiʻi ma Elasticsearch.

Kau hele mai ma hope a he mea lawe ʻikepili māmā. ʻO ka hoʻokomo ʻana o Beats i hoʻololi i ka Elk Stack i ka Elastic Stack, akā ʻaʻole ia ke kumu.

ʻO kēia ʻatikala e pili ana iā Grok, kahi hiʻohiʻona i Logstash hiki ke hoʻololi i kāu mau lāʻau ma mua o ka hoʻouna ʻia ʻana i ka stash. No kā mākou kumu, e kamaʻilio wale wau e pili ana i ka hoʻoili ʻana i ka ʻikepili mai Logstash i Elasticsearch.

Nā ʻōlelo aʻoaʻo a me nā hoʻopunipuni no ka hoʻololi ʻana i ka ʻikepili i kūkulu ʻole ʻia mai nā lāʻau i ELK Stack me ka hoʻohana ʻana iā GROK ma LogStash

He kānana ʻo Grok i loko o Logstash i hoʻohana ʻia e hoʻokaʻawale i ka ʻikepili i kūkulu ʻole ʻia i kahi mea i kūkulu ʻia a hiki ke nīnau ʻia. Noho ʻo ia ma luna o kahi ʻōlelo maʻamau (regex) a hoʻohana i nā ʻano kikokikona e hoʻohālikelike i nā kaula i nā faila log.

E like me kā mākou e ʻike ai ma nā ʻāpana aʻe, ʻo ka hoʻohana ʻana iā Grok e hoʻololi nui i ka wā e pili ana i ka hoʻokele log kūpono.

Me ka ʻole o Grok ʻaʻole i hoʻonohonoho ʻia kāu ʻikepili log

Nā ʻōlelo aʻoaʻo a me nā hoʻopunipuni no ka hoʻololi ʻana i ka ʻikepili i kūkulu ʻole ʻia mai nā lāʻau i ELK Stack me ka hoʻohana ʻana iā GROK ma LogStash

Me ka ʻole o Grok, ke hoʻouna ʻia nā lāʻau mai Logstash i Elasticsearch a hāʻawi ʻia ma Kibana, ʻike wale ʻia lākou i ka waiwai memo.

Paʻakikī ka nīnau ʻana i ka ʻike koʻikoʻi ma kēia kūlana no ka mea mālama ʻia nā ʻikepili log a pau i hoʻokahi kī. ʻOi aku ka maikaʻi inā ʻoi aku ka maikaʻi o ka hoʻonohonoho ʻana i nā memo log.

ʻIke i hoʻonohonoho ʻole ʻia mai nā lāʻau

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

Inā ʻoe e nānā pono i ka ʻikepili maka, e ʻike ʻoe aia i loko o nā ʻāpana like ʻole, i hoʻokaʻawale ʻia kēlā me kēia me kahi ākea.

No nā mea hoʻomohala ʻoi aku ka ʻike, hiki paha iā ʻoe ke koho i ke ʻano o kēlā me kēia ʻāpana a me ke ʻano o kēlā memo log mai ke kelepona API. Hōʻike ʻia ka hōʻike o kēlā me kēia mea ma lalo nei.

Nānā i kūkulu ʻia o kā mākou ʻikepili

  • localhost == kaiapuni
  • GET == ala
  • ​ /v2/applink/5c2f4bb3e9fda1234edc64d == url
  • 400 == pane_kūlana
  • 46ms == pane_manawa
  • ​ 5bc6e716b5d6cb35fc9687c0 == user_id

E like me kā mākou e ʻike ai i ka ʻikepili i kūkulu ʻia, aia kahi kauoha no nā lāʻau i kūkulu ʻole ʻia. ʻO ka hana aʻe, ʻo ia ka hoʻoponopono polokalamu o ka ʻikepili maka. ʻO kēia kahi e ʻālohilohi ai ʻo Grok.

Nā Kūlana Grok

ʻO nā hiʻohiʻona Grok i kūkulu ʻia

Hele mai ʻo Logstash me 100 mau hiʻohiʻona i kūkulu ʻia no ka hoʻonohonoho ʻana i ka ʻikepili i kūkulu ʻole ʻia. Pono ʻoe e hoʻohana pono i kēia inā hiki i nā syslogs maʻamau e like me apache, linux, haproxy, aws a pēlā aku.

Eia naʻe, he aha ka hopena inā loaʻa iā ʻoe nā lāʻau maʻamau e like me ka laʻana ma luna? Pono ʻoe e kūkulu i kāu iho Grok template.

Nā hoʻohālike Grok maʻamau

Pono ʻoe e hoʻāʻo e kūkulu i kāu iho Grok template. Ua hoʻohana au Grok Debugger и Nā Kumu Grok.

E hoʻomanaʻo ʻo ka syntax template Grok penei: %{SYNTAX:SEMANTIC}

ʻO ka mea mua aʻu i hoʻāʻo ai e hele i ka pā Mob i ka Grok debugger. Manaʻo wau he mea ʻoluʻolu inā hiki i kēia hāmeʻa ke hoʻohua i kahi kumu Grok, akā ʻaʻole maikaʻi loa ia no ka mea ua loaʻa ʻelua mau pāʻani.

Nā ʻōlelo aʻoaʻo a me nā hoʻopunipuni no ka hoʻololi ʻana i ka ʻikepili i kūkulu ʻole ʻia mai nā lāʻau i ELK Stack me ka hoʻohana ʻana iā GROK ma LogStash

Me ka hoʻohana ʻana i kēia ʻike, hoʻomaka wau e hana i kaʻu iho ma ka Grok debugger me ka hoʻohana ʻana i ka syntax i loaʻa ma ka ʻaoʻao Elastic Github.

Nā ʻōlelo aʻoaʻo a me nā hoʻopunipuni no ka hoʻololi ʻana i ka ʻikepili i kūkulu ʻole ʻia mai nā lāʻau i ELK Stack me ka hoʻohana ʻana iā GROK ma LogStash

Ma hope o ka pāʻani ʻana me nā syntax ʻokoʻa, ua hiki iaʻu ke kūkulu i ka ʻikepili log e like me kaʻu i makemake ai.

Nā ʻōlelo aʻoaʻo a me nā hoʻopunipuni no ka hoʻololi ʻana i ka ʻikepili i kūkulu ʻole ʻia mai nā lāʻau i ELK Stack me ka hoʻohana ʻana iā GROK ma LogStash

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

kikokikona kumu:

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

kumu:

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

He aha ka hopena

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

Me ka Grok template a me ka palapala ʻikepili i ka lima, ʻo ka hana hope e hoʻohui iā ia i Logstash.

Hoʻohou i ka faila hoʻonohonoho Logstash.conf

Ma ke kikowaena kahi āu i hoʻokomo ai i ka waihona ELK, e hele i ka hoʻonohonoho Logstash:

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

Hoʻopili i nā hoʻololi.

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

Ma hope o ka mālama ʻana i kāu mau hoʻololi, e hoʻomaka hou iā Logstash a nānā i kona kūlana e ʻike pono e hana mau ana.

sudo service logstash restart
sudo service logstash status

ʻO ka hope, e hōʻoia i ka hopena o nā loli, E ʻoluʻolu e hōʻano hou i kāu helu Elasticsearch no Logstash ma Kibana!

Nā ʻōlelo aʻoaʻo a me nā hoʻopunipuni no ka hoʻololi ʻana i ka ʻikepili i kūkulu ʻole ʻia mai nā lāʻau i ELK Stack me ka hoʻohana ʻana iā GROK ma LogStash

Me Grok, ua hoʻonohonoho ʻia kāu ʻikepili log!

Nā ʻōlelo aʻoaʻo a me nā hoʻopunipuni no ka hoʻololi ʻana i ka ʻikepili i kūkulu ʻole ʻia mai nā lāʻau i ELK Stack me ka hoʻohana ʻana iā GROK ma LogStash

E like me kā mākou e ʻike ai ma ke kiʻi ma luna, hiki iā Grok ke hoʻohālikelike i ka ʻikepili log me Elasticsearch. He mea maʻalahi kēia i ka mālama ʻana i nā lāʻau a me ka huli ʻana i ka ʻike. Ma kahi o ka ʻeli ʻana i nā faila log e debug, hiki iā ʻoe ke kānana ma o ka mea āu e ʻimi nei, e like me kahi kaiapuni a i ʻole url.

E ho'āʻo i nā ʻōlelo Grok! Inā loaʻa iā ʻoe kahi ala ʻē aʻe e hana ai i kēia a i ʻole nā ​​pilikia me nā hiʻohiʻona ma luna, e kākau wale i kahi manaʻo ma lalo e haʻi mai iaʻu.

Mahalo no ka heluhelu ʻana—a e ʻoluʻolu e hahai mai iaʻu ma ʻaneʻi ma Medium no nā ʻatikala ʻenehana lako polokalamu hoihoi!

Nā Punawai

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 Loulou i kahi kumu

Kaila Telegram na Elasticsearch

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka