اما وقتی به طور دقیقتر به اجزای ELK نگاه میکنیم، با ۵ موتور محرکهی زیر روبهرو میشویم :
kibana
beats
logstash
elasticsearch
x-pack
به طور کلی سه وظیفهی کلی برای ELK در نظر گرفته میشود :
DATA INGESTION یا جمع آوری اطلاعات که توسط beats و logstash انجام میگیرد.
SEARCH, ANALYZE, AND STORE DATA یا جستوجو ، پایش و ذخیره صحیح اطلاعات که توسط elasticsearch انجام میگیرد.
VISUALIZE YOUR DATA : نمایش اطلاعات یا نمایش نتیجهگیریهایی که از اطلاعات شده است به صورت بصری (شامل نمودار، گراف و …)
در ادامه به توضیح هریک از ۵ موتور محرکهی گفته شده، پرداخته خواهد شد :
Kibana
an analytics & visualization platform hast
همان طور که قبلا اشاره شد، با استفاده از kibana میتوان اطلاعات را به صورت بصری در قالبهای استاندارد و زیبا به صورت انواع نمودار، گراف و … نمایش داد.
به طور سادهتر، kibana را میتوان نوعی Dashboard برای elasticsearch دانست.
از قابلیتهای kibana میتوان به موارد زیر اشاره نمود :
set up machine learning in kibana : استفاده و راهاندازی یادگیری ماشین در بستر kibana
kibana can manage parts of elasticsearch and logstash : با استفاده از kibana میتوان قسمتیهایی از elasticsearch و logstash را مدیریت کرد.
use many built-in visualizations : با استفاده از ابزارهای بصری متعددی که درون kibana وجود دارد، میتوان نمایی مناسب از اطلاعات و دادههای جمعآوری و پردازش شده نمایش داد.
Logstash
a data processing pipeline
از زمانی که داده و اطلاعات وارد موتور logstash میشود، سه مرحلهی زیر را به ترتیب طی میکند :
input plugins : درمرحلهی اول داده و اطلاعات به طروق مخلف دریافت میشود. به عنوان مثال دادهها و اطلاعات مربوط به سرویس Kafka یا MySQL یا حتی یک پرونده
filter plugins : در مرحلهی بعد داده و اطلاعات دستخوش قاببندیهایی خاص شده تا به ساختار مشخصی تبدیل شود. به عنوان مثال اطلاعات دریافت شده به قالب استاندارد json تبدیل میشوند.
output plugins : در نهایت داده و اطلاعات به سمت جاهایی دیگری ارسال میشود. به عنوان مثال اطلاعات به سمت Elasticsearch فرستاده میشود و یا حتی ممکن است یک خادم Kafka تحویل داده شود.
در واقع طی شدن سه مرحلهی بالا باعث میشود تعریف data processing pipeline برای Logstash در نظر گرفته شود.
X-Pack
Adds additional features to the elasticsearch and kibana
با استفاده از این موتور محرکه، یک سری ویژگیهای موثر و مفید به Kibana و Elasticsearch اضافه میشود. فهرست برخی از این ویژگیها به شرح زیر است :
Security : با استفاده از X-Pack میتوان دو مقولهی authorization و authentication را برای Kibana و Elasticsearch در نظر گرفت. با استفاده از authentication مشخص میشود که برای دسترسی به Kibana نام کاربری و کلمهی عبوری در نظر گرفته شود در صورتی که با استفاده از authorization مشخص میشود که هر یک از کاربران چه سطحی از دسترسی داشته باشند.
monitoring : با استفاده از این قابلیت میتوان پایداری اجزاي Elastic Stack پایش شود.
alerting : با استفاده از این قابلیت میتوان رخدادهایی خاص یا ناهنجاریهایی خاص رصد و گزارش داده شود. ( در قالب ایمیل، پیامک و … )
reporting : با استفاده از این قابلیت میتوان خروجیهایی از گزارشهای تهیه شده (به صورت بصری در انواع قالبها) تهیه نمود.
machine learning : enables machine learning for elasticsearch and kibana : با استفاده از این قابلیت میتوان انواع الگوریتمهای یادگیری ماشین را پیاده سازی و خروجی کار را در قالب نمودار در محیط Kibana رویت کرد. به عنوان مثال نمودارهایی از وضعیت پایداری سیستم در آیندهای نزدیک ترسیم نمود.
graph : analyze the relationships in your date : با استفاده از این قابلیت میتوان انواع گرافها را برای دادهها و اطلاعات در نظر گرفت. با استفاده از گراف میتوان بررسی نمود که چه ارتباطی بین دادههای مختلف وجود دارد.
نکته : دو مقولهی Popularity یا محبوبیت و relevant یا ارتباط ، متفاوت از یکدیگر هستند. به عنوان مثال دادههای دو خادم ممکن است بسیار محبوب باشد اما هیچ ارتباطی با یکدیگر نداشته باشند. به عنوان مثالی دیگر محمدرضا شجریان و همایون شجریان هر دو خواننده بوده که رابطهی پدر پسری دارند لذا انتظار میرود دادههای همایون شجریان با دادههای محمدرضا شجریان به رغم محبوبت، دارای ارتباط نیز باشند.
Elasticsearch SQL : Query elasticsearch with SQL : با استفاده از این قابلیت میتوان درخواستها یا پرس و جوهای ارسال شده به Elasticsearch را در قالب و از جنس SQL ارسال کرد.
Beats
این قابلیت وظیفهی حمل و نقل دادهها یا data shipping را بر عهده دارد. این قابلیت با استفاده از مکانیزمهایی که ارائه میکند، این امکان را مهیا میسازد تا نرم افزارها و سرویسهای مختلف بتوانند لاگهای مربوط به خود را به سمت خادم ELK ارسال کنند. به عنوان مثال یکی از افزونههای این قابلیت، Filebeat نام دارد که با استفاده از این افزونه میتوان محتویات پروندهها را به سمت خادم ELK ارسال نمود. از دیگر افزونهها میتوان به journalbeat ، metricbeat و … اشاره نمود.
Elasticsearch
در خصوص این موتور محرکه قبلا در این آدرس به طور کامل صحبت شده است.