موږ د ELK او تبادلې سره ملګري یو. برخه 1

موږ د ELK او تبادلې سره ملګري یو. برخه 1

زه د مقالو لړۍ پیل کوم چیرې چې زه غواړم د ایکسچینج او ELK سره وصل زما تجربه شریکه کړم. دا سټیک به موږ سره د لویو لوګو پروسس کولو کې مرسته وکړي او د حیرانتیا اړتیا ونلري چې په کومه اندازه کې د عادي ننوتلو وسیلې به زموږ سره مرسته کولو څخه انکار وکړي. راځئ چې د نوي لاګ جنګیالي سره آشنا شو.

تبادله د کافي پراخه لوګینګ سیسټم لري. ترټولو مشهور لاګونه د تعقیب لاګونه دي، کوم چې د پوستي سازمان کې د ځانګړي لیک ګام په ګام تیریدو تعقیبوي؛ د ویب سرور لاګونه ، کوم چې په سیسټم کې د هر نوي کارونکي سیشن تعقیبوي ، او د ځانګړي ویب غوښتنلیکونو لاګ د سیشن توضیحاتو مختلف درجې سره. تبادله کولی شي د smtp، imap او pop3 پروتوکولونو خام لاګونه هم ذخیره کړي.

موږ د لاګونو سره کار کولو لپاره کوم وسایل کارولی شو:

  • معیاري cmdlet Get-MessageTrackingLog: په اسانۍ سره د تعقیب لاګ پروسس کول؛
  • د logparser افادیت: د ننوتلو لپاره، د pseudo-SQL لټون ژبه کاروي او په چټکۍ سره کار کوي؛
  • د بهرنی SQL سرور: د ډیرو ځانګړو قضیو لپاره (د بیلګې په توګه، د اوږدې مودې په اوږدو کې د معلوماتو تحلیل).

دا ټول ښه کار کوي کله چې موږ یو څو سرورونه لرو او د پروسس شوي لاګونو حجم په لسګونو یا سلګونو ګیګابایټ کې اندازه کیږي. مګر څه شی که چیرې د سرورونو شمیر په لسګونو کې وي ، او د لاګونو اندازه له terabyte څخه زیاته وي؟ دا سکیم ډیر احتمال لري چې ټوټه ټوټه شي.

او دا هغه څه دي چې پیښیږي: د Get-MessageTrackingLog وخت پای ته رسیږي، logparser د 32-bit آرکیټیکچر حد ته رسیږي، او د SQL سرور ته اپلوډ په خورا نامناسب شیبه کې ماتیږي، پرته له دې چې د خدمت څخه څو کرښې استثنا هضم کړي.

دلته یو نوی لوبغاړی صحنې ته ننوځي - د ELK سټیک ، کوم چې په مناسب وخت کې او د زغم وړ سرچینو مصرف سره د لوی مقدار لوګو جال کولو لپاره ډیزاین شوی.

په لومړۍ برخه کې به تاسو ته په تفصیل سره ووایم، څنګه د فایل بیټ سره وصل کړئ کوم چې د ELK سټیک برخې پورې اړه لري - د ساده متن فایلونو لوستلو او لیږلو مسؤلیت لري په کوم کې چې مختلف غوښتنلیکونه خپل لاګونه لیکي. په لاندې مقالو کې به موږ د Logstash او Kibana برخو ته نږدې کتنه وکړو.

د جوړولو

نو، د فایل بیټ ایجنټ آرشیف فایل له دې سایټ څخه ډاونلوډ کیدی شي.

موږ به په ساده ډول د زپ فایل مینځپانګې په استخراج سره نصب بشپړ کړو. د مثال په توګه، په c:Program Filesfilebeat. بیا تاسو اړتیا لرئ د پاور شیل سکریپټ چل کړئ install-service-filebeat.ps1، کوم چې د کټ سره راځي ، د فایل بیټ خدمت نصبولو لپاره.

اوس موږ چمتو یو چې د ترتیب کولو فایل تنظیم کول پیل کړو.

د خطا زغم

فایل بیټ د لاګ راټولولو سیسټم ته د لاګونو تحویل تضمینوي. دا د لاګ فایلونو کې د ننوتلو راجستر ساتلو سره ترلاسه کیږي. راجستر د هغو ریکارډونو په اړه معلومات ذخیره کوي چې د لاګ فایلونو څخه لوستل شوي، او ځانګړي ریکارډونه په نښه کوي کوم چې هدف ته لیږدول کیدی شي.

که چیرې ریکارډ ونه سپارل شي، فایل بیټ به هڅه وکړي چې دا بیا واستول شي تر هغه چې دا د ترلاسه کونکي سیسټم څخه د تحویل تصدیق ترلاسه کړي یا د اصلي لاګ فایل د گردش پروسې په جریان کې حذف شي.

کله چې خدمت بیا پیل شي ، فایل بیټ به د ثبت شوي وروستي ریکارډونو په اړه معلومات ولولي چې لوستل شوي او تحویل شوي ، او په راجسټري کې د معلوماتو پراساس به په لاګ فایلونو کې ریکارډونه لوستل شي.

دا تاسو ته اجازه درکوي د لاګ معلوماتو له لاسه ورکولو خطر کم کړئ کوم چې د غیر متوقع ناکامیو او د سرور ساتنې عملیاتو پرمهال د elasticlogstash سرورونو ته لیږلو ته اړتیا لري.

تاسو کولی شئ پدې اړه نور معلومات زده کړئ اسناد په پراګرافونو کې ولولئ: Filebeat څنګه د فایلونو حالت ساتي او څنګه Filebeat لږترلږه یو ځل تحویلي تضمینوي؟

تعدیلات

ټول تشکیلات د فارمیټ ترتیب کولو فایل کې ترسره کیږي yml، کوم چې په څو برخو ویشل شوی دی. راځئ چې ځینې یې وګورو چې د تبادلې سرورونو څخه د لاګونو راټولولو پروسې کې ښکیل دي.

د ننوتلو پروسس بلاک

د لاګ پروسس کولو بلاک د ساحې سره پیل کیږي:

filebeat.inputs:

موږ به د عام لاګ راټولولو وسیله وکاروو:

- type: log

بیا، حالت (فعال شوی) او د لاګونو سره فولډر ته لاره په ګوته کړئ. د مثال په توګه، د IIS لاګونو په صورت کې، ترتیبات کیدای شي په لاندې ډول وي:

    enabled: true
    paths:
	- C:inetpublogsLogFilesW3SVC1*.log
	- C:inetpublogsLogFilesW3SVC2*.log

بل مهم ترتیب دا دی چې څنګه د فایل بیټ باید څو لاین ریکارډونه ولولي. په ډیفالټ ډول، فایل بیټ د لاګ فایل یوه کرښه د یو ننوتلو په توګه ګڼي. دا تر هغه وخته پورې ښه کار کوي تر څو چې موږ د خدماتو د غلط عملیاتو پورې اړوند زموږ په لاګ کې استثناوې ترلاسه کول پیل کړو. په دې حالت کې، استثناوې کیدای شي څو کرښې ولري. له همدې امله فایل بیټ باید د څو لاین ننوتنه د یو په توګه حساب کړي که چیرې راتلونکی کرښه د نیټې سره پیل شي. په تبادله کې د لاګ ثبتولو بڼه په لاندې ډول ده: په لاګ فایل کې هر نوی ننوتل د نیټې سره پیل کیږي. په ترتیب کې، دا حالت داسې ښکاري:

multiline:
	pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
	negate: true
	match: after

دا معنی لري چې په هغه پوسټ کې ټاګونه اضافه کړئ چې تاسو یې لیږئ ، د مثال په توګه:

  tags: ['IIS', 'ex-srv1']

او مه هیروئ چې د هش کرکټر سره پیل شوي د پروسس کولو لینونو څخه لرې کړئ:

  exclude_lines: ['^#']

نو، د لاګ لوستلو بلاک به داسې ښکاري:

filebeat.inputs:
- type: log
  enabled: true
  paths:
	- C:inetpublogsLogFilesW3SVC1*.log
	- C:inetpublogsLogFilesW3SVC2*.log
  multiline:
	pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
	negate: true
	match: after
  tags: ['IIS', 'ex-srv1']
  exclude_lines: ['^#']

د ننوتلو لیږلو بلاک

فایل بیټ د لاګ فایل کې انفرادي ننوتنې د json څیز په توګه لیږي ، په کوم کې چې د لاګ څخه ځانګړې ننوتنې په یو واحد پیغام ساحه کې شتون لري. که موږ غواړو په یو ډول د دې معلوماتو سره کار وکړو، موږ باید لومړی دا ساحه په جلا برخو کې تجزیه کړو. دا کیدی شي، د بیلګې په توګه، په لوګسټاش کې. هغه به د فایل بیټ څخه د ریکارډونو ترلاسه کونکی وي. دلته هغه څه دي چې ممکن د فایل بیټ ترتیب کولو فایل کې ورته ښکاري:

output.logstash:
  hosts: ["logstash1.domain.com:5044"]

که چیرې ډیری سرورونه شتون ولري ، نو تاسو کولی شئ د دوی لپاره توازن فعال کړئ: بیا به فایل بیټ د لیست څخه لومړي موجود سرور ته لاګونه ونه لیږي ، مګر لیږل شوي لاګونه به د ډیری سرورونو ترمینځ توزیع کړي:

hosts: ["logstash1.domain.com:5044", "logstash2.domain.com:5044"]
  loadbalance: true 

Filebeat، کله چې لیږل شوي json ته د ننوتلو پروسس کول، د پیغام په ساحه کې د ننوتلو ننوتلو سربیره، د میټاډاټا یو ټاکلی مقدار اضافه کوي، کوم چې د سند اندازه اغیزه کوي چې په لچکدار کې پای ته رسیږي. دا میټاډاټا په انتخابي ډول د سپارلو څخه لرې کیدی شي. دا د پروسیسر په کارولو سره د پروسیسر بلاک کې ترسره کیږي drop_fields. د مثال په توګه، تاسو کولی شئ لاندې ساحې خارج کړئ:

processors:
- drop_fields:
	fields: ["agent.ephemeral_id", "agent.hostname", "agent.id", "agent.type", "agent.version", "agent", "ecs.version", "ecs", "input.type", "input", "log.offset", "version"]

تاسو باید د ایستل شویو ساحو انتخاب په احتیاط سره وګورئ، ځکه چې ځینې یې د شاخصونو جوړولو لپاره په لچک لرونکي اړخ کې کارول کیدی شي.

نو، د لاګ لیږلو بلاک به داسې ښکاري:

output.logstash:
  hosts: ["logstash1.domain.com:5044", "logstash2.domain.com:5044"]
  loadbalance: true
 
processors:
- drop_fields:
	fields: ["agent.ephemeral_id", "agent.hostname", "agent.id", "agent.type", "agent.version", "agent", "ecs.version", "ecs", "input.type", "input", "log.offset", "version"]

د فایل بیټ د ننوتلو تنظیمات

دا د لاندې لاګنګ تنظیماتو تنظیم کولو لپاره معنی لري:

  • د ننوتلو کچې معلومات؛
  • موږ د ډیفالټ لخوا موقعیت لرونکي فایلونو ته لاګ لیکو (د لاګ لارښود ، د فایل بیټ نصب کولو لارښود کې)؛
  • د ننوتلو فایل نوم - فایل بیټ؛
  • د وروستي 10 لاګ فایلونه ذخیره کړئ؛
  • حرکت پیل کړئ کله چې اندازه 1MB ته ورسیږي.

د وروستي ننوتلو ترتیب بلاک به داسې ښکاري:

logging.level: info
logging.to_files: true
logging.files:
  name: filebeat
  keepfiles: 10
  rotateeverybytes: 1048576

وروستی ترتیب

موږ تشکیلات راټول کړل او اوس داسې ښکاري:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - C:inetpublogsLogFilesW3SVC1*.log
    - C:inetpublogsLogFilesW3SVC2*.log
  multiline:
    pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
    negate: true
    match: after
  tags: ['IIS', 'ex-srv1']
  exclude_lines: ['^#']
 
output.logstash:
  hosts: ["logstash1.domain.com:5044", "logstash2.domain.com:5044"]
  loadbalance: true
 
processors:
- drop_fields:
    fields: ["agent.ephemeral_id", "agent.hostname", "agent.id", "agent.type", "agent.version", "agent", "ecs.version", "ecs", "input.type", "input", "log.offset", "version"]
 
logging.level: info
logging.to_files: true
logging.files:
  name: filebeat
  keepfiles: 10
  rotateeverybytes: 1048576

دا مهمه ده چې پوه شئ چې د ترتیب فایل بڼه yml ده. له همدې امله، دا مهمه ده چې په سمه توګه ځایونه او د منفي نښې ځای په ځای کړئ.

Filebeat کولی شي د تشکیلاتو فایل وګوري او که چیرې نحوي خطاګانې ولري، دا به په ګوته کړي چې کومه کرښه او چیرته په لیکه کې نحو غلط دی. چک په لاندې ډول ترسره کیږي:

.filebeat.exe test config

فایل بیټ کولی شي د لاګ رسیدونکي شبکې شتون هم وګوري. چک په لاندې ډول پیل کیږي:

.filebeat.exe test output

په لاندې برخو کې به زه د Logstash او Kibana برخو سره د تبادلې د پیوستون او ملګرتیا په اړه وغږیږم.

ګټور لینکونه

سرچینه: www.habr.com

د DDoS محافظت ، VPS VDS سرورونو سره د سایټونو لپاره معتبر کوربه توب واخلئ 🔥 د DDoS محافظت، VPS VDS سرورونو سره د باور وړ ویب پاڼې کوربه توب واخلئ | ProHoster