Ṣiṣeto data ti a ko ṣeto pẹlu GROK
Ti o ba nlo akopọ Elastic (ELK) ati pe o nifẹ si aworan aworan aṣa Logstash logs si Elasticsearch, lẹhinna ifiweranṣẹ yii jẹ fun ọ.
Akopọ ELK jẹ adape fun awọn iṣẹ akanṣe orisun ṣiṣi mẹta: Elasticsearch, Logstash ati Kibana. Papọ wọn ṣe ipilẹ pẹpẹ iṣakoso log kan.
- Elasticsearch jẹ wiwa ati eto itupalẹ.
- Logstash jẹ opo gigun ti epo ti n ṣatunṣe data ẹgbẹ olupin ti nwọle data lati awọn orisun lọpọlọpọ nigbakanna, yi pada, ati lẹhinna firanṣẹ si “stash” gẹgẹbi Elasticsearch.
- agbana gba awọn olumulo laaye lati wo data nipa lilo awọn shatti ati awọn aworan ni Elasticsearch.
Pa wá nigbamii ati ki o jẹ a lightweight data sowo. Ifihan ti Beats yipada Elk Stack sinu Stack Elastic, ṣugbọn iyẹn kii ṣe aaye naa.
Nkan yii jẹ nipa Grok, eyiti o jẹ ẹya ni Logstash ti o le yi awọn akọọlẹ rẹ pada ṣaaju fifiranṣẹ wọn si stash. Fun awọn idi wa, Emi yoo sọrọ nikan nipa sisẹ data lati Logstash sinu Elasticsearch.
Grok jẹ àlẹmọ inu Logstash ti o lo lati ṣe itupalẹ data ti a ko ṣeto sinu nkan ti a ṣeto ati ibeere. O joko lori oke ikosile deede (regex) o si nlo awọn ilana ọrọ lati baamu awọn okun ni awọn faili log.
Gẹgẹbi a yoo rii ni awọn apakan atẹle, lilo Grok ṣe iyatọ nla nigbati o ba de si iṣakoso log daradara.
Laisi Grok rẹ log data ni unstructured
Laisi Grok, nigbati awọn igbasilẹ ti firanṣẹ lati Logstash si Elasticsearch ati ti a ṣe ni Kibana, wọn han nikan ni iye ifiranṣẹ.
Ibeere alaye ti o nilari ni ipo yii nira nitori gbogbo data log ti wa ni ipamọ sinu bọtini kan. Yoo dara julọ ti awọn ifiranṣẹ log ba ṣeto dara julọ.
Awọn data ti a ko ṣeto lati awọn akọọlẹ
localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0
Ti o ba wo ni pẹkipẹki ni awọn aise data, o yoo ri pe o kosi oriširiši ti o yatọ si awọn ẹya ara, kọọkan niya nipa aaye kan.
Fun awọn olupilẹṣẹ ti o ni iriri diẹ sii, o le ṣe akiyesi kini awọn apakan kọọkan tumọ si ati kini ifiranṣẹ log yẹn jẹ lati ipe API. Awọn igbejade ti ohun kọọkan jẹ ilana ni isalẹ.
Ti eleto wiwo ti wa data
- localhost == ayika
- Gba == ọna
- /v2/applink/5c2f4bb3e9fda1234edc64d == url
- 400 = ipo idahun
- 46ms == idahun_akoko
- 5bc6e716b5d6cb35fc9687c0 == user_id
Gẹgẹbi a ti rii ninu data eleto, aṣẹ kan wa fun awọn akọọlẹ ti a ko ṣeto. Igbesẹ ti o tẹle ni sisẹ sọfitiwia ti data aise. Eyi ni ibi ti Grok nmọlẹ.
Grok Awọn awoṣe
Awọn awoṣe Grok ti a ṣe sinu
Logstash wa pẹlu diẹ sii ju awọn awoṣe ti a ṣe sinu 100 fun siseto data ti ko ṣeto. O yẹ ki o dajudaju lo anfani eyi nigbakugba ti o ṣee ṣe fun awọn syslogs gbogbogbo bi apache, linux, haproxy, aws ati bẹbẹ lọ.
Sibẹsibẹ, kini yoo ṣẹlẹ nigbati o ni awọn akọọlẹ aṣa bi ninu apẹẹrẹ loke? O gbọdọ kọ ara rẹ Grok awoṣe.
Aṣa Grok awọn awoṣe
O ni lati gbiyanju lati kọ ara rẹ Grok awoṣe. Mo lo
Ṣe akiyesi pe sintasi awoṣe Grok jẹ bi atẹle: %{SYNTAX:SEMANTIC}
Ohun akọkọ ti Mo gbiyanju lati ṣe ni lọ si taabu naa Iwari ni Grok debugger. Mo ro pe yoo dara ti ọpa yii ba le ṣe agbekalẹ ilana Grok laifọwọyi, ṣugbọn ko wulo pupọ nitori o rii awọn ere-kere meji nikan.
Lilo wiwa yii, Mo bẹrẹ ṣiṣẹda awoṣe ti ara mi ni Grok debugger nipa lilo sintasi ti a rii lori oju-iwe Elastic Github.
Lẹhin ti ndun ni ayika pẹlu awọn ọna kika oriṣiriṣi, Mo ni anfani nipari lati ṣe agbekalẹ data log ni ọna ti Mo fẹ.
Grok Debugger Link
Ọrọ atilẹba:
localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0
Àpẹẹrẹ:
%{WORD:environment} %{WORD:method} %{URIPATH:url} %{NUMBER:response_status} %{WORD:response_time} %{USERNAME:user_id}
Kini o ṣẹlẹ ni ipari
{
"environment": [
[
"localhost"
]
],
"method": [
[
"GET"
]
],
"url": [
[
"/v2/applink/5c2f4bb3e9fda1234edc64d"
]
],
"response_status": [
[
"400"
]
],
"BASE10NUM": [
[
"400"
]
],
"response_time": [
[
"46ms"
]
],
"user_id": [
[
"5bc6e716b5d6cb35fc9687c0"
]
]
}
Pẹlu awoṣe Grok ati data ti a ya ni ọwọ, igbesẹ ti o kẹhin ni lati ṣafikun si Logstash.
Ṣiṣe imudojuiwọn faili iṣeto Logstash.conf
Lori olupin nibiti o ti fi akopọ ELK sori ẹrọ, lọ si iṣeto Logstash:
sudo vi /etc/logstash/conf.d/logstash.conf
Lẹẹmọ awọn ayipada.
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" ]
}
}
Lẹhin fifipamọ awọn ayipada rẹ, tun bẹrẹ Logstash ki o ṣayẹwo ipo rẹ lati rii daju pe o tun n ṣiṣẹ.
sudo service logstash restart
sudo service logstash status
Ni ipari, lati rii daju pe awọn ayipada ti ni ipa, Rii daju lati ṣe imudojuiwọn atọka Elasticsearch rẹ fun Logstash ni Kibana!
Pẹlu Grok, data log rẹ ti ṣeto!
Gẹgẹbi a ti le rii ninu aworan ti o wa loke, Grok ni agbara lati baamu data log laifọwọyi pẹlu Elasticsearch. Eyi jẹ ki o rọrun lati ṣakoso awọn akọọlẹ ati alaye ibeere ni kiakia. Dipo ti walẹ nipasẹ awọn faili log lati yokokoro, o le jiroro ni àlẹmọ nipasẹ ohun ti o n wa, gẹgẹbi agbegbe tabi url kan.
Fun Grok expressions a gbiyanju! Ti o ba ni ọna miiran lati ṣe eyi tabi ni awọn iṣoro eyikeyi pẹlu awọn apẹẹrẹ loke, kan kọ asọye ni isalẹ lati jẹ ki mi mọ.
O ṣeun fun kika-ati jọwọ tẹle mi nibi lori Alabọde fun awọn nkan imọ-ẹrọ sọfitiwia ti o nifẹ diẹ sii!
Oro
Telegram ikanni nipasẹ
orisun: www.habr.com