در این مقاله قصد دارم شما را با یکی از شرکت های بزرگ و نام آشنای دنیای فناوری یعنی Elastic آشنا کنم.و Elasticsearch را معرفی کنیم و به ویژگی های آن بپردازیم.این شرکت خودش را به دیگران با این جمله معرفی میکند:
(ما به مردم کمک میکنیم تا بتوانند با استفاده از قدرت جستجو، تحلیل متفاوتی از دادههای خود داشته باشند)
معرفی Elasticsearch
Elasticsearch یک موتور جستجو و تجزیه و تحلیل منبع باز و توزیع شده برای همه انواع داده ها، از جمله متن، عددی، زمین شناسی، ساختاری و بدون ساختار می باشد. Elasticsearch بر پایه ی Apache Lucene ساخته شده و اولین بار در سال 2010 توسط Elasticsearch N.V. (اکنون به عنوان Elastic شناخته می شود) ارائه شد. Elasticsearch که به دلیل API های ساده REST، ماهیت، سرعت و مقیاس پذیری توزیع شده شناخته شده است، یکی از اجزای اصلی Elastic Stack است، مجموعه ای از ابزارهای منبع باز برای مصرف داده ها، غنی سازی، ذخیره سازی، تجزیه و تحلیل و تجسم. معمولاً به عنوان ELK Stack (بعد از Elasticsearch ،Logstash و Kibana) گفته می شود، الاستیک Elastic Stack اکنون شامل مجموعه ای غنی از عوامل حمل و نقل سبک است که به عنوان بیت برای ارسال داده به Elasticsearch شناخته می شود.
پیشنهاد میکنم به ارائهی جذابی که شرکت Elastic از داستان جستجو به عنوان story of search تهیه کرده است، نگاهی بیندازید تا علاوه بر لذت بردن از خلاقیت به کار رفته در این ارائه، با ابعاد گسترده و اهمیت این موضوع بیشترآشنا شوید.
معرفی کاربرد های Elasticsearch
سرعت و مقیاس پذیری Elasticsearch و توانایی آن در ایندکس کردن انواع مختلف محتوا بدین معنی است که می توان برای تعدادی موارد از آن استفاده کرد:
- آنالیز امنیتی
- جستجوی برنامه
- جستجوی سازمانی
- جستجوی وب سایت
- تجزیه و تحلیل تجارت
- نظارت بر عملکرد برنامه
- تجزیه و تحلیل داده های جغرافیایی و تجسم
- معیارهای زیرساخت و نظارت بر container
- ورود به سیستم و تجزیه و تحلیل ورود به سیستم
نحوه کار Elasticsearch
داده های خام از منابع مختلفی از جمله سیاهه ها، معیارهای سیستم و برنامه های وب وارد Elasticsearch می شوند. هضم داده ها فرایندی است که با استفاده از آن داده های خام قبل از نمایه سازی در Elasticsearch، تجزیه و تحلیل می شوند. پس از نمایه شدن در Elasticsearch ، کاربر می تواند نمایش داده های پیچیده را در برابر داده های خود اجرا کند و از جمع آوری برای بازیابی خلاصه های پیچیده از داده های خود استفاده کند. از Kibana، کاربر می تواند تصویری قدرتمند از داده های خود ایجاد بکند، داشبورد به اشتراک بگذارد و Elastic Stack را مدیریت کند.
شاخص Elasticsearch
فهرست Elasticsearch مجموعه ای از اسنادی است که به یکدیگر مرتبط هستند. Elasticsearch داده ها را به عنوان اسناد JSON ذخیره می کند. هر سند مجموعه ای از کلیدها (نام فیلدها یا خصوصیات) را با مقادیر مربوط به آنها (رشته ها، اعداد، Booleans، تاریخ، آرایه ای از مقادیر، موقعیت جغرافیایی، یا انواع دیگر داده ها) مرتبط می کند. Elasticsearch از یک ساختار داده به نام یک شاخص معکوس استفاده می کند که به منظور جستجوی سریع متن کامل طراحی شده است. یک فهرست معکوس هر کلمه منحصر به فردی را که در هر مدرک ظاهر می شود، لیست می کند و تمام اسنادی را که هر کلمه در آن رخ می دهد، شناسایی می کند. در طی فرآیند نمایه سازی، Elasticsearch اسناد را ذخیره می کند و یک شاخص معکوس بوجود می آورد تا بتواند اطلاعات مربوط به اسناد را در زمان واقعی جستجو کند. نمایه سازی با API فهرست آغاز می شود، از طریق آن می توانید یک سند JSON را در یک فهرست خاص اضافه یا به روز کنید.
محصول های شرکت Elastic
این شرکت مجموعهی سرویسهای خود را با عنوان ELK Stack که مخفف Elasticsearch, Logstash, Kibana Stack است معرفی میکند. این نرمافزارها محصولات هستهی Elastic هستند.
Elasticsearch یک موتور جستجوی تمام عیار و به منزلهی قلب این محصولات است و بر اساس ادعای Elastic، بدون این محصول در عمل هیچ کدام از سرویسهای دیگر کارایی ندارند. قدرت اصلی Elasticsearch در جستجوی بسیار سریع بههمراه امکانات تحلیل داده است.
Kibana محصولی دیگر است که وظیفهی اصلی آن ارائهی یک رابط کاربری جامع برای مدیریت وقایع، نمایش دادهها (visualization) و بهرهبرداری از تمامی امکانات ارائه شده در ELK stack است.
Logstash به منزلهی یک خط ارتباطی بین چندین منبع داده عمل میکند. قابلیت اصلی آن در جمع آوری داده از منابع مختلف به طور همزمان، پردازش آنها و در نهایت ارسال آنها به مقصد نهایی (معمولا Elasticsearch) میباشد.
در کنار Logstash، Elastic محصولات دیگری با عنوان Beats ارائه کرده است که هدف آنها جمع آوری داده از منابع مختلفِ سیستم ها و ارسال به Logstash یا Elasticsearch میباشد. منابعی همچون دادههای منتقلشده در شبکه یا log درخواست هایی که به وب سرور آپاچی ارسال میشوند و ...
دلایل استفاده از Elasticsearch
Elasticsearch سریع است. از آنجا که Elasticsearch در بالای Lucene ساخته شده است، در جستجوی متن، کامل است. Elasticsearch همچنین یک سکوی جستجو در زمان واقعی است، به این معنی که تأخیر از زمان ایندکس شدن یک سند تا زمان جستجو، بسیار کوتاه است و به طور معمول یک ثانیه زمان می برد. در نتیجه، الاستیک جستجو برای موارد حساس به زمان مانند تحلیل های امنیتی و نظارت بر زیرساخت ها مناسب است. طبیعت Elasticsearch را توزیع می کند. اسناد ذخیره شده در Elasticsearch در ظروف مختلفی به نام shards توزیع می شوند که برای تهیه نسخه های اضافی از داده ها در صورت خرابی سخت افزار، کپی شده اند. در نتیجه، الاستیک جستجو برای موارد حساس به زمان مانند تحلیل های امنیتی و نظارت بر زیرساخت ها مناسب است.
Elasticsearch دارای طیف گسترده ای از ویژگی ها است. علاوه بر سرعت، مقیاس پذیری و انعطاف پذیری، Elasticsearch دارای چندین ویژگی داخلی است که باعث می شود ذخیره و جستجو در داده ها حتی کارآمدتر شود، مانند جمع آوری داده ها و مدیریت چرخه شاخص. Elastic Stack، مصرف داده، تجسم و گزارش را ساده می کند. ادغام با Beats و Logstash پردازش داده ها را قبل از نمایه سازی در Elasticsearch آسان می کند و Kibana تجسم در زمان واقعی داده های Elasticsearch و همچنین UI ها را برای دسترسی سریع به نظارت بر عملکرد برنامه (APM)، سیاهه های مربوط و داده های معیارهای زیرساخت فراهم می کند.
معرفی گزینه های استقرار Elasticsearch
Elasticsearch می تواند به عنوان یک سرویس میزبانی شده و مدیریت شده از طریق سرویس Elasticsearch (موجود در سرویس های وب آمازون (AWS) ، Google Cloud Platform (GCP) و Alibaba Cloud)) مستقر شود، یا می توانید آن را بر روی سخت افزار خود یا در هاست ابری نصب کنید. اسناد Elasticsearch دستورالعمل بارگیری، نصب و پیکربندی Elasticsearch را ارائه می دهد. برای کاربرانی که مایل به تهیه، مدیریت و نظارت بر استقرار خود از یک کنسول واحد هستند اما ترجیح می دهند از یک میزبانی ابر اشتراکی استفاده نکنند، Elastic همچنین Elastic Cloud Enterprise را ارائه می دهد (که می تواند در ابرهای عمومی یا خصوصی، ماشین های مجازی یا فلز برهنه مستقر شود). سخت افزار و همچنین یک ردیف اشتراک خصوصی.
معرفی زبان های برنامه نویسی که Elasticsearch از آن ها استفاده می کند
Elasticsearch از زبانهای مختلفی پشتیبانی می کند و مشتریان رسمی برای هر کدام از این موارد در دسترس هستند:
- Java
- (JavaScript (Node.js
- Go
- (#NET (C.
- PHP
- Perl
- Python
- Ruby
Logstash برای چه مواردی استفاده می شود؟
Logstash، یکی از محصولات اصلی Elastic Stack، برای جمع آوری و پردازش داده ها و ارسال آن به Elasticsearch استفاده می شود. Logstash یک منبع باز، خط لوله پردازش داده سمت سرور است که شما را قادر می سازد داده ها را از چندین منبع به طور همزمان هضم کرده و قبل از نمایه شدن به Elasticsearch، آن را غنی سازی و تبدیل کنید.
Kibana برای چه مواردی استفاده می شود؟
Kibana یک ابزار مدیریت و تجسم داده برای Elasticsearch است که هیستوگرام در زمان واقعی، نمودار خط، نمودار پای و نقشه را در اختیار شما قرار می دهد. Kibana همچنین شامل برنامه های پیشرفته ای مانند Canvas است که به کاربران امکان می دهد بر اساس داده های خود، اینفوگرافیک های پویا سفارشی ایجاد کنند و نقشه های الاستیک را برای تجسم داده های جغرافیایی ارائه دهند.
چه کسی در پروژه Elasticsearch می تواند مشارکت کند؟
Elasticsearch یک پروژه منبع باز است که توسط الاستیک اداره می شود. پایه کد شامل کمک های توسعه دهندگان در داخل و خارج از Elastic است. هر کس می تواند درخواست انصراف را در مخزن Elasticsearch GitHub ارسال کند. الاستیک قبل از ادغام آن ها در پایه کد، یک بررسی شفاف از همه درخواستهای کشش انجام می دهد.
امیدوارم با مطالعه این مقاله به صورت کامل با Elasticsearch آشنا شده باشید.
اگه شما هم تجربهی استفاده از سرویسهای Elastic رو داشتین، نظرها و تجربههای خودتون رو با ما به اشتراک بذارین.