Sonraí neamhstruchtúrtha a struchtúrú le GROK
Má tá tú ag baint úsáide as an chruach Elastic (ELK) agus go bhfuil suim agat logs Logstash saincheaptha a mhapáil chuig Elasticsearch, ansin tá an post seo duitse.
Is acrainm é cruach ELK do thrí thionscadal foinse oscailte: Elasticsearch, Logstash agus Kibana. Le chéile cruthaíonn siad ardán bainistíochta loga.
- Elasticsearch is córas cuardaigh agus anailíse é.
- Logstash píblíne próiseála sonraí ar thaobh an fhreastalaí é a ionghabháil sonraí ó fhoinsí iolracha go comhuaineach, a chlaochlaíonn sé, agus ansin a sheolann chuig “stash” ar nós Elasticsearch.
- Kibana ligeann sé d’úsáideoirí sonraí a shamhlú ag baint úsáide as cairteacha agus graif in Elasticsearch.
Beats tháinig níos déanaí agus is seoltóir sonraí éadrom é. Le tabhairt isteach Beats chlaochlú an Elk Stack isteach sa Cruach leaisteacha, ach ní hé sin an pointe.
Tá an t-alt seo faoi Grok, atá ina ghné i Logstash a fhéadfaidh do logs a athrú sula gcuirtear chuig an stash iad. Chun ár gcríoch, ní bheidh mé ag caint ach faoi phróiseáil sonraí ó Logstash isteach Elasticsearch.
Is scagaire é Grok taobh istigh de Logstash a úsáidtear chun sonraí neamhstruchtúrtha a pharsáil i rud struchtúrtha agus incheistithe. Suíonn sé ar bharr slonn rialta (regex) agus úsáideann sé patrúin téacs chun teaghráin i gcomhaid logála a mheaitseáil.
Mar a fheicfimid sna hailt seo a leanas, déanann úsáid Grok difríocht mhór nuair a thagann sé le bainistíocht éifeachtach logála.
Gan Grok tá do shonraí logála neamhstruchtúrtha
Gan Grok, nuair a sheoltar logs ó Logstash go Elasticsearch agus a rindreáiltear i Kibana, ní bhíonn siad le feiceáil ach i luach na teachtaireachta.
Tá sé deacair faisnéis bhríoch a cheistiú sa chás seo mar go bhfuil na sonraí logála go léir stóráilte in aon eochair amháin. Bheadh sé níos fearr dá mbeadh na teachtaireachtaí logála eagraithe níos fearr.
Sonraí neamhstruchtúrtha ó logaí
localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0
Má fhéachann tú go géar ar na sonraí amh, feicfidh tú go bhfuil sé comhdhéanta de chodanna éagsúla, gach ceann díobh scartha le spás.
I gcás forbróirí níos mó taithí, is dócha gur féidir leat buille faoi thuairim a dhéanamh ar cad a chiallaíonn gach ceann de na codanna agus cad é an teachtaireacht logála sin ón nglao API. Tá cur i láthair gach míre leagtha amach thíos.
Amharc struchtúrtha ar ár sonraí
- localhost == timpeallacht
- GET = = modh
- /v2/applink/5c2f4bb3e9fda1234edc64d == url
- 400 == stádas_freagra
- 46ms == freagartha_am
- 5bc6e716b5d6cb35fc9687c0 == user_id
Mar a fheicimid i sonraí struchtúrtha, tá ordú ann do logaí neamhstruchtúrtha. Is é an chéad chéim eile próiseáil bogearraí sonraí amh. Seo an áit a lasann Grok.
Teimpléid Grok
Teimpléid Grok ionsuite
Tagann Logstash le breis is 100 teimpléad ionsuite chun sonraí neamhstruchtúrtha a struchtúrú. Ba cheart duit leas a bhaint as seo go cinnte nuair is féidir le haghaidh syslogs ginearálta cosúil le apache, linux, haproxy, aws agus mar sin de.
Mar sin féin, cad a tharlaíonn nuair a bhíonn logaí saincheaptha agat mar atá sa sampla thuas? Ní mór duit do theimpléad Grok féin a thógáil.
Teimpléid saincheaptha Grok
Caithfidh tú iarracht a dhéanamh do theimpléad Grok féin a thógáil. d'úsáid mé
Tabhair faoi deara go bhfuil comhréir teimpléad Grok mar seo a leanas: %{SYNTAX:SEMANTIC}
An chéad rud a rinne mé iarracht a dhéanamh ná dul go dtí an táb Discover sa dífhabhtóir Grok. Shíl mé go mbeadh sé iontach dá bhféadfadh an uirlis seo patrún Grok a ghiniúint go huathoibríoch, ach ní raibh sé ró-úsáideach toisc nach bhfuair sé ach dhá mheaitse.
Ag baint úsáide as an bhfionnachtain seo, thosaigh mé ag cruthú mo theimpléad féin sa dífhabhtóir Grok ag baint úsáide as an chomhréir atá le fáil ar an leathanach Elastic Github.
Tar éis imirt timpeall le comhréireanna éagsúla, bhí mé in ann ar deireadh na sonraí logála a struchtúrú ar an mbealach a bhí mé.
Nasc Dífhabhtóir Grok
Buntéacs:
localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0
patrún:
%{WORD:environment} %{WORD:method} %{URIPATH:url} %{NUMBER:response_status} %{WORD:response_time} %{USERNAME:user_id}
Cad a tharla sa deireadh
{
"environment": [
[
"localhost"
]
],
"method": [
[
"GET"
]
],
"url": [
[
"/v2/applink/5c2f4bb3e9fda1234edc64d"
]
],
"response_status": [
[
"400"
]
],
"BASE10NUM": [
[
"400"
]
],
"response_time": [
[
"46ms"
]
],
"user_id": [
[
"5bc6e716b5d6cb35fc9687c0"
]
]
}
Le teimpléad Grok agus sonraí mapáilte ar láimh, is é an chéim dheireanach é a chur le Logstash.
Comhad cumraíochta Logstash.conf á nuashonrú
Ar an bhfreastalaí inar shuiteáil tú an cruach ELK, téigh go dtí an chumraíocht Logstash:
sudo vi /etc/logstash/conf.d/logstash.conf
Greamaigh na hathruithe.
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" ]
}
}
Tar éis do chuid athruithe a shábháil, atosaigh Logstash agus seiceáil a stádas chun a chinntiú go bhfuil sé fós ag obair.
sudo service logstash restart
sudo service logstash status
Ar deireadh, lena chinntiú go bhfuil na hathruithe i bhfeidhm, Bí cinnte d’innéacs Elasticsearch do Logstash in Kibana a nuashonrú!
Le Grok, tá do shonraí logála struchtúrtha!
Mar is féidir linn a fheiceáil san íomhá thuas, tá Grok in ann sonraí loga a mheaitseáil go huathoibríoch le Elasticsearch. Fágann sin gur fusa logaí a bhainistiú agus faisnéis a fhiosrú go tapa. In ionad tochailt trí chomhaid logála le dífhabhtú, is féidir leat an méid atá uait a scagadh, mar shampla timpeallacht nó url.
Bain triail as nathanna Grok! Má tá bealach eile agat chun é seo a dhéanamh nó má tá aon fhadhb agat leis na samplaí thuas, níl le déanamh ach trácht a scríobh thíos chun mé a chur ar an eolas.
Go raibh maith agat as léamh - agus le do thoil lean mé anseo ar Meánach le haghaidh ailt innealtóireachta bogearraí níos suimiúla!
Acmhainní
PS
Cainéal teileagram ag
Foinse: will.com