L-istrutturar tad-dejta mhux strutturata bil-GROK
Jekk qed tuża l-munzell Elastic (ELK) u huma interessati fl-immappjar ta 'logs Logstash tad-dwana għal Elasticsearch, allura din il-kariga hija għalik.
Il-munzell ELK huwa akronimu għal tliet proġetti ta 'sors miftuħ: Elasticsearch, Logstash u Kibana. Flimkien jiffurmaw pjattaforma ta' ġestjoni taz-zkuk.
- Elasticsearch hija sistema ta’ tfittxija u analitika.
- logstash huwa pipeline tal-ipproċessar tad-dejta fuq in-naħa tas-server li jinġerixxi dejta minn sorsi multipli simultanjament, jittrasformaha, u mbagħad jibgħatha lil "stash" bħal Elasticsearch.
- kibana jippermetti lill-utenti jivviżwalizzaw id-dejta billi jużaw mapep u graffs f'Elasticsearch.
Taħbita daħal aktar tard u huwa shipper tad-data ħafif. L-introduzzjoni ta 'Beats trasformat l-Elk Stack fil-Elastic Stack, iżda dak mhux il-punt.
Dan l-artikolu huwa dwar Grok, li hija karatteristika f'Logstash li tista' tittrasforma z-zkuk tiegħek qabel ma jintbagħtu fl-istash. Għall-finijiet tagħna, se nitkellem biss dwar l-ipproċessar tad-dejta minn Logstash f'Elasticsearch.
Grok huwa filtru ġewwa Logstash li jintuża biex jeżamina data mhux strutturata f'xi ħaġa strutturata u li tista' tiġi mistoqsija. Hija tiltaqa 'fuq espressjoni regolari (regex) u tuża mudelli ta' test biex tqabbel is-sekwijiet fil-fajls log.
Kif se naraw fit-taqsimiet li ġejjin, l-użu ta 'Grok jagħmel differenza kbira meta niġu għall-ġestjoni effiċjenti ta' log.
Mingħajr Grok id-dejta tal-ġurnal tiegħek mhix strutturata
Mingħajr Grok, meta zkuk jintbagħtu minn Logstash għal Elasticsearch u mogħtija f'Kibana, jidhru biss fil-valur tal-messaġġ.
L-istħarriġ ta' informazzjoni sinifikanti f'din is-sitwazzjoni huwa diffiċli minħabba li d-dejta kollha tal-log hija maħżuna f'ċavetta waħda. Ikun aħjar jekk il-messaġġi log kienu organizzati aħjar.
Dejta mhux strutturata minn zkuk
localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0
Jekk tħares mill-qrib lejn id-dejta mhux ipproċessata, tara li fil-fatt tikkonsisti minn partijiet differenti, kull waħda separata bi spazju.
Għal aktar żviluppaturi b'esperjenza, tista' probabilment taqta' xi tfisser kull waħda mill-partijiet u x'inhu dak il-messaġġ log mis-sejħa API. Il-preżentazzjoni ta' kull oġġett hija deskritta hawn taħt.
Veduta strutturata tad-dejta tagħna
- localhost == ambjent
- GET == metodu
- /v2/applink/5c2f4bb3e9fda1234edc64d == url
- 400 == risposta_istat
- 46ms == ħin tar-rispons
- 5bc6e716b5d6cb35fc9687c0 == user_id
Kif naraw fid-dejta strutturata, hemm ordni għal zkuk mhux strutturati. Il-pass li jmiss huwa l-ipproċessar tas-softwer tad-dejta mhux ipproċessata. Dan huwa fejn jiddi Grok.
Mudelli Grok
Mudelli Grok inkorporati
Logstash jiġi b'aktar minn 100 mudell integrat għall-istrutturar tad-dejta mhux strutturata. Għandek definittivament tieħu vantaġġ minn dan kull meta jkun possibbli għal syslogs ġenerali bħal apache, linux, haproxy, aws eċċ.
Madankollu, x'jiġri meta jkollok zkuk tad-dwana bħal fl-eżempju ta 'hawn fuq? Int trid tibni l-mudell Grok tiegħek stess.
Mudelli Grok personalizzati
Trid tipprova tibni l-mudell Grok tiegħek stess. jien kont
Innota li s-sintassi tal-mudell Grok hija kif ġej: %{SYNTAX:SEMANTIC}
L-ewwel ħaġa li ppruvajt nagħmel kienet immur fit-tab Skopri fid-debugger Grok. Ħsibt li jkun jibred jekk din l-għodda tista 'tiġġenera awtomatikament mudell Grok, iżda ma kinitx wisq utli peress li sabet biss żewġ logħbiet.
Bl-użu ta 'din l-iskoperta, bdejt noħloq il-mudell tiegħi stess fid-debugger Grok billi tuża s-sintassi li tinsab fuq il-paġna Elastic Github.
Wara li lgħabt b'sintassi differenti, fl-aħħar stajt nistruttura d-dejta tal-ġurnal kif ridt.
Grok Debugger Link
Test oriġinali:
localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0
Disinn:
%{WORD:environment} %{WORD:method} %{URIPATH:url} %{NUMBER:response_status} %{WORD:response_time} %{USERNAME:user_id}
Dak li ġara fl-aħħar
{
"environment": [
[
"localhost"
]
],
"method": [
[
"GET"
]
],
"url": [
[
"/v2/applink/5c2f4bb3e9fda1234edc64d"
]
],
"response_status": [
[
"400"
]
],
"BASE10NUM": [
[
"400"
]
],
"response_time": [
[
"46ms"
]
],
"user_id": [
[
"5bc6e716b5d6cb35fc9687c0"
]
]
}
Bil-mudell Grok u d-dejta mmappjata fl-idejn, l-aħħar pass huwa li żżidha ma 'Logstash.
Aġġornament tal-fajl tal-konfigurazzjoni Logstash.conf
Fuq is-server fejn installajt il-munzell ELK, mur fil-konfigurazzjoni Logstash:
sudo vi /etc/logstash/conf.d/logstash.conf
Paste l-bidliet.
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" ]
}
}
Wara li ssejvja l-bidliet tiegħek, ibda mill-ġdid Logstash u iċċekkja l-istatus tiegħu biex tiżgura li għadu jaħdem.
sudo service logstash restart
sudo service logstash status
Fl-aħħar nett, biex tiżgura li l-bidliet daħlu fis-seħħ, Kun żgur li taġġorna l-indiċi ta 'Elasticsearch tiegħek għal Logstash f'Kibana!
Ma' Grok, id-dejta tal-log tiegħek hija strutturata!
Kif nistgħu naraw fl-immaġni ta 'hawn fuq, Grok huwa kapaċi li jqabbel awtomatikament id-dejta tal-log ma' Elasticsearch. Dan jagħmilha aktar faċli biex timmaniġġja r-zkuk u titfittex malajr l-informazzjoni. Minflok tħaffer permezz ta 'log files biex tiddibaggja, tista' sempliċement tiffiltra minn dak li qed tfittex, bħal ambjent jew url.
Ipprova l-espressjonijiet Grok! Jekk għandek mod ieħor biex tagħmel dan jew għandek xi problemi bl-eżempji ta 'hawn fuq, ikteb kumment hawn taħt biex tgħarrafni.
Grazzi tal-qari—u jekk jogħġbok segwini hawn fuq Medium għal aktar artikli interessanti dwar l-inġinerija tas-softwer!
Riżorsi
Kanal Telegram minn
Sors: www.habr.com