د GROK سره د غیر منظم معلوماتو جوړښت
که تاسو د لچکدار (ELK) سټیک کاروئ او د Elasticsearch ته د دودیز لوګسټاش لاګونو نقشه کولو کې علاقه لرئ ، نو دا پوسټ ستاسو لپاره دی.
د ELK سټیک د دریو خلاصې سرچینې پروژو لپاره لنډیز دی: Elasticsearch، Logstash او Kibana. په ګډه دوی د لاګ مدیریت پلیټ فارم جوړوي.
- الیسټسیکټ د لټون او تحلیلي سیسټم دی.
- لوټسټش د سرور اړخ ډیټا پروسس کولو پایپ لاین دی چې په ورته وخت کې د ډیری سرچینو څخه ډیټا جذبوي ، یې بدلوي ، او بیا یې "سټاش" ته لیږي لکه Elasticsearch.
- کببا کاروونکو ته اجازه ورکوي چې په Elasticsearch کې د چارټونو او ګرافونو په کارولو سره ډاټا لید کړي.
وهل وروسته راغلی او د لږ وزن ډیټا لیږدونکی دی. د بیټس معرفي د ایلک سټیک په لچک لرونکي سټیک بدل کړ ، مګر دا ټکی ندی.
دا مقاله د Grok په اړه ده، کوم چې په Logstash کې یو ځانګړتیا ده چې کولی شي ستاسو لاګونه مخکې له دې چې سټیش ته لیږل کیږي بدل کړي. زموږ د موخو لپاره، زه به یوازې د Logstash څخه Elasticsearch ته د معلوماتو پروسس کولو په اړه وغږیږم.
Grok د Logstash دننه یو فلټر دی چې د غیر جوړښت شوي ډاټا د جوړښت او پوښتنې وړ یو څه ته د پارس کولو لپاره کارول کیږي. دا د منظم بیان (regex) په سر کې ناست دی او په لاګ فایلونو کې د تارونو سره میچ کولو لپاره د متن نمونې کاروي.
لکه څنګه چې موږ به په لاندې برخو کې وګورو، د Grok کارول لوی توپیر رامینځته کوي کله چې د اغیزمن لاګ مدیریت خبره راځي.
د Grok پرته ستاسو د لاګ ډاټا غیر منظمه ده
د Grok پرته، کله چې لاګ له Logstash څخه Elasticsearch ته لیږل کیږي او په کیبانا کې وړاندې کیږي، دوی یوازې د پیغام ارزښت کې ښکاري.
پدې حالت کې د معنی لرونکي معلوماتو پوښتنه کول ستونزمن دي ځکه چې ټول لاګ ډیټا په یوه کیلي کې زیرمه شوي. دا به غوره وي که چیرې د لاګ پیغامونه ښه تنظیم شوي وي.
د لاګونو څخه غیر منظم معلومات
localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0
که تاسو خام ډاټا ته نږدې وګورئ، تاسو به وګورئ چې دا په حقیقت کې د مختلفو برخو څخه جوړه شوې ده، هر یو د ځای په واسطه جلا شوی.
د نورو تجربه لرونکو پراختیا کونکو لپاره، تاسو شاید اټکل وکړئ چې د هرې برخې معنی څه ده او د API کال څخه د لاګ پیغام څه دی. د هر توکي پریزنټشن لاندې تشریح شوی.
زموږ د معلوماتو جوړښت شوی لید
- ځایی کوربه == چاپیریال
- ترلاسه کول == طریقه
- /v2/applink/5c2f4bb3e9fda1234edc64d == url
- 400 == ځواب_حالت
- 46ms == د ځواب وخت
- 5bc6e716b5d6cb35fc9687c0 == user_id
لکه څنګه چې موږ په جوړښت شوي ډاټا کې ګورو، د غیر منظم شوي لوګو لپاره یو ترتیب شتون لري. بل ګام د خامو معلوماتو سافټویر پروسس کول دي. دا هغه ځای دی چې ګروک روښانه کوي.
Grok کينډۍ
د Grok ټیمپلیټونه جوړ شوي
Logstash د غیر ساختماني معلوماتو د جوړښت لپاره له 100 څخه ډیر جوړ شوي ټیمپلیټونو سره راځي. تاسو باید حتما له دې څخه ګټه پورته کړئ کله چې د عمومي سیسټمونو لکه اپاچي ، لینکس ، هاپروکسي ، aws او داسې نورو لپاره امکان ولري.
په هرصورت، څه پیښیږي کله چې تاسو دودیز لاګونه لرئ لکه پورته مثال کې؟ تاسو باید خپل د Grok ټیمپلیټ جوړ کړئ.
د ګمرک گروک ټیمپلیټونه
تاسو باید د خپل Grok ټیمپلیټ جوړولو هڅه وکړئ. ما کارول
په یاد ولرئ چې د Grok ټیمپلیټ ترکیب په لاندې ډول دی: %{SYNTAX:SEMANTIC}
لومړی شی چې ما یې کولو هڅه وکړه ټب ته لاړ کشف په Grok debugger کې. ما فکر کاوه چې دا به ښه وي که دا وسیله په اوتومات ډول د ګروک نمونه رامینځته کړي ، مګر دا خورا ګټور نه و ځکه چې دا یوازې دوه میچونه وموندل.
د دې موندنې په کارولو سره، ما په Grok debugger کې د لچک لرونکي ګیتوب پاڼې موندلو ترکیب په کارولو سره خپل ټیمپلیټ جوړ کړ.
د مختلف ترکیبونو سره شاوخوا لوبې کولو وروسته ، زه په پای کې توانیدلی وم چې د لاګ ډیټا هغه ډول تنظیم کړم چې زه یې غواړم.
د ګروک ډیبګر لینک
اصلي متن:
localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0
شکل:
%{WORD:environment} %{WORD:method} %{URIPATH:url} %{NUMBER:response_status} %{WORD:response_time} %{USERNAME:user_id}
په پای کې څه وشول
{
"environment": [
[
"localhost"
]
],
"method": [
[
"GET"
]
],
"url": [
[
"/v2/applink/5c2f4bb3e9fda1234edc64d"
]
],
"response_status": [
[
"400"
]
],
"BASE10NUM": [
[
"400"
]
],
"response_time": [
[
"46ms"
]
],
"user_id": [
[
"5bc6e716b5d6cb35fc9687c0"
]
]
}
د Grok ټیمپلیټ او نقشه شوي ډاټا سره په لاس کې، وروستی ګام دا دی چې دا په Logstash کې اضافه کړئ.
د Logstash.conf ترتیب کولو فایل تازه کول
په سرور کې چیرې چې تاسو د ELK سټیک نصب کړی، د Logstash ترتیب ته لاړ شئ:
sudo vi /etc/logstash/conf.d/logstash.conf
بدلونونه پیسټ کړئ.
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" ]
}
}
د خپلو بدلونونو د خوندي کولو وروسته، Logstash بیا پیل کړئ او د هغې وضعیت وګورئ ترڅو ډاډ ترلاسه کړئ چې دا لاهم کار کوي.
sudo service logstash restart
sudo service logstash status
په نهایت کې، د دې ډاډ ترلاسه کولو لپاره چې بدلونونه اغیزمن شوي، ډاډه اوسئ چې په کبانا کې د Logstash لپاره خپل د Elasticsearch شاخص تازه کړئ!
د Grok سره، ستاسو د لاګ ډاټا جوړښت لري!
لکه څنګه چې موږ په پورتني عکس کې لیدلی شو ، گروک د دې وړتیا لري چې په اتوماتيک ډول د Elasticsearch سره د لاګ ډیټا میچ کړي. دا د لاګونو اداره کول او په چټکۍ سره د معلوماتو پوښتنې کول اسانه کوي. د ډیبګ کولو لپاره د لاګ فایلونو د کیندلو پرځای ، تاسو کولی شئ په ساده ډول هغه څه فلټر کړئ چې تاسو یې په لټه کې یاست ، لکه چاپیریال یا یو آر ایل.
د Grok څرګندونې یوه هڅه وکړئ! که تاسو د دې کولو لپاره بله لاره لرئ یا د پورته مثالونو سره کومه ستونزه لرئ، یوازې لاندې تبصره ولیکئ چې ما ته خبر راکړئ.
د لوستلو لپاره مننه — او مهرباني وکړئ ما دلته په میډیم کې د نورو په زړه پورې سافټویر انجینري مقالو لپاره تعقیب کړئ!
سرچینې
پی ایس
د ټیلیګرام چینل لخوا
سرچینه: www.habr.com