در این دوره چه آموزش داده می شود؟
دوره آموزشی مدیریت لاگ ها با ELK
سطح دوره : متوسطه
پیشنیاز : دانش اولیه دستورات لینوکس و مفاهیم شل و داکر – دوره ی LPIC -1 پیشنهاد میشه
مقالات زیر میتواند مفید باشد
مانیتورینگ شبکه با ابزار Zeek و ELK
الستیک سرچ یک موتور جستجوی بر پایه apache lucene می باشد که از آن برای ذخیره داده به عنوان یک پایگاه داده nosql استفاده می شود. این پایگاه داده به صورت توزیع شده و جستجوی متنی طراحی شده است. جستجوی متنی به این معنا است که موتور جستجو می کوشد تا با بررسی واژههای موجود در درخواست کاربر با سند ذخیره شده در دیتابیس، پاسخی مناسب را تولید نماید. جستجوی تمام متن در نرم افزارهای پردازش واژه و نیز برنامههای مبتنی بر وب پیادهسازی میشوند. روش ارتباط با این دیتابیس به صورت درخواست HTTP بوده و داده ها با فرمت JSON در دیتابیس ذخیره می شود. الستیک سرچ بر پایه زبان جاوا نوشته شده و به صورت دو لایسنسه ارائه شده است. (لایسنس اول به صورت open source و لایسنس دوم توسط شرکت elastic). elasticsearch در سال 2004 توسط شای بانون تولید و در سال 2012 به صورت تجاری درآمده است. آخرین ورژن این نرم افزار ورژن 7.15 در نوامبر 2021 ارائه شده است.
Elasticserach می تواند برای ذخیره و جستجوی انواع داده مورد استفاده قرار گیرد. بازیابی این داده از دیتابیس به صورت near real-time انجام می گردد.
Elasticsearch در کنار موتور جمع آوری و تجزیه و تحلیل داده Logstash، پلتفرم تحت وب kibana جهت نمایش داده ها و ارسال کننده داده با نام beats توسعه یافته است. این چهار محصول به عنوان یک راه حل یکپارچه برای تجزیه و تحلیل و مانیتورینگ داده طراحی شده که به آن پشته الستیک می گویند.
Elasticsearch از Lucene استفاده می کند و سعی می کند همه ویژگی های آن را از طریق JSON و Java API در دسترس قرار دهد.
مخاطبین:
- متخصصین Data Science و Big data
- مدیران سیستم و متخصصین DevOps و زیرساخت
- برنامه نویسان و توسعه دهندگان سیستم های وب
- متخصصان مانیتورینگ سیستم و کارایی آن
سرفصل دوره :
- توضیح مفاهیم اولیه استک ELK
- بررسی روش های پیاده سازی
- پیاده سازی استک در محیط داکر
- استفاده از reverse proxy برای هندل اس اس ال و ترافیک سمت داشبورد
- پیاده سازی و توضیحات لاگ استش
- ارسال لاگ های nginx , syslog به سمت استک
- بررس پلاگین های لاگ استش
- پیاده سازی geoip در ELK
- بررس Multi pipeline در logstash
- بررسی پلاگین امنیتی ELK
- بررسی ISM برای مدیریت حالت های ایندکس
- پیاده سازی زیرساخت ماینیتورینگ شبکه
- توضیحات ویژگی های خاص و قدرت ELK
- بررسی سیستم Alerting در ELK stack
درباره Elk Stack بیشتر بدانیم؟
استک ELK با میلیونها بار دانلود برای کامپوننتهای مختلف آن از زمان معرفی اولیه، به محبوبترین پلتفرم مدیریت لاگ در جهان تبدیل شده است. در مقابل، Splunk در کل 15000 مشتری به گزارش خود در اختیار دارد.
ولی دقیقاً ELK چیست؟ چرا این استک نرم افزاری با چنین علاقه و استقبالی گستردهای روبرو شده است؟ چگونه کامپوننتهای مختلف موجود در این استک با هم تعامل دارند؟
در این مقاله، نگاهی جامع به اجزای مختلف تشکیل دهندهی این استک نرم افزاری خواهیم انداخت. ما به شما کمک خواهیم کرد تا در این موضوع که آنها در خطوط انتقال داده شما چه نقشی دارند؟ به درک قابل قبولی برسید، و حتی در ادامه چگونه آنها را نصب و پیکربندی کنید و در نهایت چگونه بهترین راه را برای جلوگیری از مشکلات متداول در این راه داشته باشید.
پشته ELK چیست؟
تا یک یا دو سال پیش، استک ELK مجموعهای از سه محصول متن باز بود – Elasticsearch ، Logstash و Kibana – که همگی توسط شرکت Elastic توسعه، مدیریت و نگهداری میشدند. معرفی و اضافه شدن کامپوننت جدیدی به نام Beats، این پشته را به یک پروژه چهارپا تبدیل کرد و منجر به تغییر نام پشته بعنوان Elastic Stack شد.
Elasticsearch یک موتور متن باز آنالیز و جستجوی Full-Text و مبتنی بر موتور جستجوی Apache Lucene است. Logstash یک جمع کننده لاگ است که داده ها را از منابع مختلف ورودی جمع آوری میکند، تغییرات و پیشرفت های مختلف را اجرا میکند و سپس داده ها را به مقصد های مختلف خروجی ارسال میکند. Kibana یک لایه تجسمی است که در بالای Elasticsearch کار میکند، توانایی تجزیه و تحلیل و تجسم داده ها را به کاربران ارائه میدهد. آخرین و مهمترین مورد: Beats است که در اصل agent های سبکی هستند که روی میزبانهای edge نصب میشوند تا انواع مختلف دادهها را برای ارسال به پشته جمع آوری کنند.
در کنار هم، این اجزای مختلف معمولاً برای نظارت، عیبیابی و ایمنسازی محیط IT شما مورد استفاده قرار میگیرند (اگرچه کاربرد های بیشتری برای ELK Stack مانند هوش تجاری و تجزیه و تحلیل وب وجود دارد). Beats و Logstash مسئولیت جمعآوری و پردازش دادهها را در دست دارند، Elasticsearch دادهها را فهرستبندی و ذخیره میکند و Kibana یک رابط کاربری برای جستجوی دادهها و تجسم آنها فراهم میکند.
چرا ELK اینقدر محبوب است؟
پشته ELK محبوب است زیرا یک نیاز را در فضای مدیریت لاگ ها و فضای تجزیه و تحلیل برآورده کرده است. نظارت بر برنامههای مدرن و زیرساختهای فناوری اطلاعات که در آنها مستقر شدهاست، نیاز به یک راه حل مدیریت لاگ ها و تجزیه و تحلیل دارد که مهندسان را به راحتی قادر میسازد تا بر چالش نظارت بر محیطهای بسیار پراکنده، پویا و پر سر و صدا غلبه کنند.
پشته ELK با فراهم آوردن یک بستر قدرتمند برای کاربران، دادهها را از چندین منبع داده جمع آوری و پردازش میکند، دادهها را در یک منبع داده متمرکز ذخیره میکند که این منابع میتوانند با رشد دادهها به راحتی مقیاس بندی شوند و در آخر مجموعهای از ابزارها را برای تجزیه و تحلیل دادهها فراهم میکند. البته پشته ELK پروژهای متنباز است و به دلیل حمایت سازمان های IT از محصولات متن باز، همین امر به تنهایی میتواند محبوبیت این پشته را توضیح دهد. متن باز بودن همچنین به معنای یک جامعه پر جنب و جوش است که بطور مداوم ویژگیهای جدیدی را ایجاد میکنند و در صورت نیاز به تیم شما کمک میکنند.
مطمئناً Splunk مدت هاست که در بازار پیشرو است. اما ویژگیهای متعدد آن بطور فزایندهای ارزش قیمت زیاد آن را ندارد – به ویژه برای شرکتهای کوچکتر مانند محصولات SaaS و استارتاپ های فنی. Splunk حدود 15000 مشتری دارد در حالی که ELK در یک ماه چندین برابر بیشتر از تعداد مشتریان Splunk دانلود میشود. ELK ممکن است همه ویژگیهای Splunk را نداشته باشد، اما نیازی هم به آن همه ویژگیهای تحلیلی ندارد. ELK یک پلتفرم ساده و قوی برای مدیریت لاگ ها و تجزیه و تحلیل آنها است که هزینه بسیار کمی برای آن دارد.
چرا تجزیه و تحلیل لاگها امروزه اهمیت بیشتری پیدا کرده است؟
در جهان رقابتی امروز، سازمانها نمیتوانند هزینه یک ثانیه از کار افتادن یا عملکرد کند برنامه های خود را تامین کنند. مشکلات عملکردی میتواند به سادگی به یک برند آسیب برساند و در بعضی موارد بطور مستقیم به از دست دادن درآمد تبدیل شود. به همین دلیل، سازمان ها نمیتوانند از عهده مصالحه نیز برآیند و رعایت نکردن استانداردهای نظارتی میتواند به جریمههای سنگین و آسیب رساندن به یک تجارت حتی به اندازه یک مشکل عملکردی منجر شود. برای اطمینان از اینکه برنامهها همیشه در دسترس، کارآمد و ایمن هستند، مهندسان به انواع مختلف دادههای تولید شده توسط برنامه هایشان و زیرساخت های پشتیبانی کننده آنها اعتماد میکنند. این دادهها، چه لاگ ها و چه متریک ها، یا هر دو، امکان نظارت بر این سیستمها و شناسایی و حل مشکلات را در صورت بروز آنها فراهم میکند.
لاگها همیشه وجود داشتهاند و همچنین ابزارهای مختلفی برای تجزیه و تحلیل آنها هنوز که هنوزه موجود است. ولی آنچه تغییر کرده است معماری محیط های تولید کننده این لاگ ها است. معماریها به میکروسرویس ها، کانتینرها و زیرساختهای orchestration مستقر در ابر، روی ابرها یا محیط های ترکیبی تبدیل شدهاند. به همین دلیل حجم دادههای تولید شده توسط این محیط ها دائماً در حال رشد است و این موضوع به خودی خود یک چالش محسوب میشود. جمعآوری لاگها در محیطهایی که از صدها کانتینر متشکل شدهاند دیگر به روشهای قدیمی امکان پذیر نیست.
اینجاست که راهحلهای متمرکز مدیریت و تجزیه و تحلیل لاگها مانند پشته ELK به صحنه میآیند و به مهندسان مختلف اعم از DevOps ، IT Operations یا SRE اجازه میدهند تا دید مورد نیاز خود را بدست آورند و از دسترسی و عملکرد برنامه ها در همه زمانها اطمینان حاصل کنند.
راهحلهای مدرن مدیریت و تجزیه و تحلیل لاگها شامل قابلیتهای اصلی زیر میباشند:
- Aggregationیا تجمیع:توانایی جمعآوری و ارسال لاگهای مربوطه از چندین منبع داده.
- Processingیا پردازش:توانایی تبدیل لاگها به دادههای معنیدار برای تجزیه و تحلیل آسانتر.
- Storageیا ذخیرهسازی:توانایی ذخیره دادهها برای مدت زمان طولانی به منظور نظارت، تجزیه و تحلیل روند و موارد استفاده امنیتی.
- Analysisیا تجزیه و تحلیل:توانایی تشریح اطلاعات با پرس و جو و ایجاد تجسم و داشبورد در بالای آن.
در این دوره ابزارکاملا متن باز opensearch که جایگرین elasticsearch هست مورد بررسی قرار گرفته