مدت زمان تقریبی مطالعه: 17 دقیقه

راهکار نصب الستیک سرچ (Elasticsearch) و ۴ مزیت آن

Elasticsearch یا الستیک سرچ در اصل یک موتور جستجو و تحلیل متن باز (open source) است که بر مبنای معماری Rest توزیع و بر اساس تکنولوژی Apache Lucene ساخته شده است. نکته جالب در مورد Elasticsearch این است که این محصول از سال 2010 ساخته و منتشر شده و در همان سال به یکی از مشهورترین موتورهای جستجو و تحلیل متن باز تبدیل شده است.

الستیک سرچ

مورد دیگری که می توان بیان کرد این است که کاربران از Elasticsearch در تحلیل لاگ، هوش امنیتی، هوش عملیاتی، تحلیل تجاری و جستجوی Full-text بیشترین استفاده را در بین رقبا و همتایان این موتور جستجو داشته اند.

تاریخچه Elasticsearch

همان طوری که بیان کردیم نرم افزار الستیک سرچ در سال 2012 برای ارائه خدمات و محصولات تجاری راه اندازی و به بازار عرضه شد و در سال 2014 این شرکت از جمع آوری بودجه 70 میلیون دلاری بعد از 18 ماه پس از راه اندازی این نرم افزار خبر داد. در سال 2018، برنامه Elasticsearch با ارائه تخمین زده شده بین 1.5 تا 3 میلیارد دلار، درخواست اولیه عمومی در بورس اوراق بهادار نیویورک را داد و وارد بازار بورس شد.

نحوه کارکرد Elasticsearch چگونه است؟

باید عنوان کنیم که نحوه کارکرد الستیک سرچ اینگونه است که شما با استفاده از یک API و یک موتور جمع آوری داده یا ابزارهایی برای تفسیر لاگ مانند log stash وAmazon kinesis  Firehose به راحتی می توانید اطلاعات جمع آوری شده را در قالب یک فایل JSON به صورت مستقیم به Elasticsearch ارسال نمایید.

الستیک سرچ هم بلافاصله فایل اصلی و ارسال شده از طرف کاربر را ذخیره و به ایندکس کلاستر فایل، یک کلید که قابلیت جستجو را دارد اضافه می کند. بعد از این عمل می توانید فایل ارسالی را با استفاده از API که از قبل برای Elasticsearch طراحی کرده اید، جستجو و سپس بازیابی نمایید و علاوه بر این می توانید ازKibana  (یک ابزار تصویر سازی متن باز(open source) است که به همراه  Elasticsearchاطلاعات کاربر را تصویرسازی می کند و داشبوردهای تعاملی را ایجاد می کند) هم استفاده کنید.

الستیک سرچ و کیبانا

اما سوالی که ذهن خیلی از کاربران را به خودش مشغول کرده این است:

آیا استفاده از Elasticsearch رایگان است؟

در پاسخ به این سوال باید عنوان کنیم که الستیک سرچ یک نرم افزار رایگان و متن باز است و می توانید به صورت مستقیم این نرم افزار را در محل مورد نظر را روی Amazon EC2 یا سرویس Amazon Elasticsearch اجرا کنید. اگر Elasticsearch را در محل یا روی Amazon EC2 اجرا نمایید مسئولیت نصب الستیک سرچ و همچنین آماده کردن زیر ساخت های این نرم افزار، مدیریت کلاستر و دیگر نرم افزارهای جانبی که نصب می کنید بر عهده شما خواهد بود.

الاستیک سرچ

اما از طرفی دیگر یک سرویس به نام Amazon Elasticsearch وجود دارد که در یک سرویس کاملاً مدیریت شده است و اگر از این نرم افزار استفاده کردید دیگر نیازی به این ندارید که نگران زمان مصرفی وظایف مدیریت باشید و در کل می توان اینگونه گفت که با این نرم افزار یک کار نسبتاً راحت را در پیش دارید.

مزیت های استفاده از نرم افزار Elasticsearch چیست؟

سرویس الستیک سرچ

قطعاً استفاده از نرم افزار الستیک سرچ مزیت های زیادی را برای شما به همراه خواهد داشت که در زیر به چند نمونه مهم آن اشاره خواهیم کرد:

مزیت اول: کمترین زمان مصرفی از زمان شروع کار تا زمان رسیدن به نتیجه

همان طوری که در بالا هم به این موضوع اشاره کردیم، نرم افزار Elasticsearch، سعی می کند API های مبتنی بر REST ساده و یک رابط کاربری HTTP آسان ارائه دهد و از فایل های JSON که کاملاً رایگان هم هست، استفاده کند. با این خصوصیات این نرم افزار برای شروع کار و تا زمان رسیدن به نتیجه کمترین زمان ممکن را صرف می کند.

مزیت دوم: کارایی بالا به هنگام استفاده از نرم افزار Elasticsearch

توزیع بودن نرم افزار الستیک سرچ باعث می شود تا حجم بسیار بالایی از داده ها را به صورت موازی پردازش کند و همچنین سریعاً بهترین جواب را در هنگام جستجو برای شما پیدا می کند. در این بین یک ابزار دیگر که در بالا هم به آن اشاره کردیم به نام Kibana که ابزاری کاملاً مشهور در زمینه تصویری سازی و گزارش دهی است و به صورت یکپارچه با الستیک سرچ (Elasticsearch) استفاده می شود. دو ابزار دیگر به نام های Beats و Logstash هم با نرم افزار الستیک سرچ یکپارچه است و این امکان را به کاربر می دهد تا به آسانی سورس کدهای خودش را تبدیل کند و در کلاستر الستیک سرچ بارگذاری کند.

الستیک سرچ و لاگ استش

علاوه بر این مواردی که در این مزیت برای شما شرح دادیم، می توانید از پلاگین های متن باز Elasticsearch مانند مفسرهای زبان و یا پیشنهاد دهنده ها استفاده نمایید تا کارایی برنامه ها و نرم افزارهای خودتان را بالاتر ببرید.

مزیت سوم: عملیات تقریباً Real Time 

جالب است بدانید که عملیات الستیک سرچ مانند نوشتن و یا خواندن داده به طور معمول در کمتر از یک ثانیه زمان می برد و چنین سرعت بالایی این امکان را به شما می دهد که از Elasticsearch در بیشتر کارها و فعالیت هایی که تقریباً به زمان های زیر یک ثانیه یا به اصطلاح بلادرنگ نیاز دارد مانند نرم افزارهای تشخیص خطا و یا نرم افزارهای مانیتورینگ، استفاده نمایید.

مزیت چهارم: توسعه آسان برنامه Elasticsearch

به طور معمول نرم افزار Elasticsearch از زبان های متفاوتی مانند پایتون، جاوا، جاوا اسکریپت، PHP، Node.js، Ruby و غیره پشتیبانی می کند و این نشان دهنده این است که به راحتی می توانید این برنامه را به علت متن باز بودنش رشد و توسعه دهید.

پرکاربردترین موارد استفاده از Elasticsearch چیست؟

کلاستر الستیک سرچ

شاید یکی از کاربردهای مهم این نرم افزار قسمت جستجو آن باشد اما به هر حال موارد استفاده دیگری هم از نرم افزار Elasticsearch وجود دارد که به مرور زمان، همیشه در حال رشد و پیشرفت و تغییر بوده و در حال حاضر هم هست. اما در این بین 5 مورد استفاده یا مصرف از نرم افزار الستیک سرچ وجود دارد که جزء پرکاربردترین ها به شمار می رود که در زیر به آنها اشاره خواهیم کرد:

مورد اول: لاگ گیری و تحلیل لاگ به وسیله نرم افزار Elasticsearch

اشخاصی که از نرم افزار Elasticsearch استفاده می کنند با این کاربرد آشنایی کاملی دارند و این را می دانند که ابزارهایی که با این نرم افزار ارائه می شود و با آن یکپارچه هستند، الستیک سرچ را به یکی از ساده ترین روش های لاگ گیری مبدل scale  تبدیل کرده است و بسیار از اشخاص از همین قابلیت برای فعال کردن لاگ پروژه های خود استفاده می کنند.

نرم افزار Elasticsearch دارای امکانات بسیار متنوع و متفاوتی ازBeats  گرفته تاLogstash  و  Ingest Node برای جمع آوری داده ها و همچنین ایندکس کردن آن در هر جایی هستند که در اختیار کاربران قرار داده شده است. به طور مثال ابزارهایی مانند Kibana این قابلیت و توانایی را دارد که داشبوردهایی قدرتمند برای تجزیه و تحلیل، ایجاد کنید و همچنین ابزار Curator هم این اجازه را به کاربر می دهد که عملیات را نگهداری و در حالت خودکار قرار دهد.

مورد دوم: جمع آوری و ترکیب داده های عمومی توسط نرم افزار الستیک سرچ

لاگ الستیک سرچ

مورد دیگری که می توان برای نرم افزار الستیک سرچ بیان کرد این است که ابزارهای متعددی مانندElastic Stack را برای جمع آوری و ایندکس گذاری آسان داده های راه دور در اختیار کاربران قرار داده است. به مانند بسیاری از روش های ذخیره سازی غیر رابطه ای که بیشتر مبتنی بر ذخیره سازی اسناد است، نداشتن یک تم سختگیرانه موجب شده که نرم افزار Elasticsearch انعطاف پذیری لازم را برای بارگذاری منابع مختلف داده، نگهداری آنها و همچنین قابل جستجو کردنشان را داشته باشد.

مورد سوم: جستجوی  Full text

یکی از اصلی ترین قابلیت ها و کاربردهای نرم افزار Elasticsearch جستجوی Full Text است که کاربران و مشتریانی که از این قابلیت و کاربرد استفاده می کنند به طبع نتایج بهتری به نسبت روش های جستجوی قدیمی و تجارت الکترونیک به دست آوردند.

کاربران و مشتریان با استفاده از قابلیت جستجو با نرم افزار Elasticsearch ثابت کردند که در زمینه تشخیص Fraud، امنیت، همکاری و حتی فراتر از آن، جستجو با این نرم افزار هم قدرتمند عمل می کنند و هم انعطاف پذیری بیشتری به نسبت دیگر نرم افزارهای هم رده خود دارد و از همه مهم تر اینکه شامل ابزارهای زیادی است که جستجو را برای همه آسان تر کرده است.

باید عنوان کنیم که Elasticsearch Query، DSL خودش را دارد و همچنین این قابلیت را دارد که متن ها را به صورت خودکار تصحیح نماید. به طور مثال اگر در متن یک اشتباه تایپی به وجود بیاید این نرم افزار یک پیغام خطا مانند: آیا منظور شما “حدس صحیح خودش” است؟ را نشان می دهد و اگر مایل بودید می توانید به کلمه ای که خودش پیشنهاد داده تصحیح کنید.

مورد چهارم: معیارها و داده های برنامه

یک نکته جالب توجه در مورد Elasticsearch این است که این برنامه روی داده های سری زمانی مانند معیارها و رویدادهای برنامه بسیار خوب و شاید اگر اغراق نباشد می توان گفت که خیلی عالی عمل می کند. این نشان دهنده این است که اکوسیستمی بزرگی مانند Beats به شما این اجازه را می دهد که به راحتی داده ها را برای جستجوهای مشترک جمع آوری نمایید و به احتمال خیلی زیاد الستیک سرچ، ابزاری برای جستجوی معیارها و رخدادها را در اختیار کاربران قرار می دهد و حتی اگر چنین ابزاری هم وجود نداشته باشد به راحتی می توانید این ابزار را به آن اضافه نمایید.

مورد پنجم: داده های تصویر سازی با Kibana

ابزار Kibana با در اختیار داشتن سرویسTile  برای اطلاعات جغرافیایی، برخوردار بودن از صدها امکان ترسیم چارت، Time Lion برای داده های سری زمانی و خیلی از موارد دیگر، عملاً به یک ابزار تصویری سازی ساده اما فوق العاده قدرتمند برای استفاده کاربران مبدل شده است.

برای تمامی مواردی که بیان کردیم، چندین و چند ابزار تصویری در Kibana وجود دارد و اگر با ابزارهای مختلف دسترسی به اطلاعات کار کرده باشید متوجه می شوید که Elasticsearch + Kibana به یکی از ابزارهای مورد علاقه کاربران برای تصویر سازی داده ها مبدل خواهد شد.

به طور حتم مواردی که در مورد نرم افزار Elasticsearch بیان کردیم تمامی کاربردهای این برنامه نبوده اما به هر حال از پر استفاده ترین آنها به شمار می رود. الستیک سرچ و خیلی از ابزارهای Elastic Stack، همگی ثابت کردند که ابزارهایی بسیار متنوع هستند و همان طوری که در بالا هم به آن اشاره کردیم روش های زیاد و متعددی وجود دارد که می توان این ابزارها را با Elasticsearch ادغام کرد و بهترین نتیجه ها را از آن به دست آورد و شاید بخشی که با ادغام کردن برنامه ها به وجود می آید یکی از جذاب ترین قسمت های آن باشد چرا که به راحتی می توان از توانایی ارتقاء فناوری هایی که با هم ادغام می شوند، استفاده کرد.

آموزش نصب و اجرای برنامه Elasticsearch

آموزش نصب و اجرای الستیک سرچ

در مطالب فوق به این موضوع اشاره کردیم که الستیک سرچ یکی از بهترین موتورهای جستجو و تحلیلگر توزیع شده است که با رابط کاربری وب یا به اصطلاح http و الگوی استاندارد JSON برای انتقال داده ها کار می کند. Elasticsearch این قابلیت را در اختیار کاربر قرار می دهد که برای جستجو امکان ترکیب و ادغام و همچنین استفاده از انواع مختلف داده های ساخت یافته، غیر ساخت یافته، geometric و غیره داشته باشد.

این نرم افزار تمامی اطلاعات را در خودش ایندکس (index) می کند و در کمترین زمان ممکن به تمامی درخواست ها پاسخ می دهد و این نشان از مقیاس پذیری بالای این نرم افزار است و قابلیت اجرا روی یک لپ تاپ یا صدها سرور با داده های زیاد را دارد.

اما اجازه دهید مقداری در مورد نصب Elasticsearch صحبت کنیم:

برای نصب این نرم افزار ابتدا آن را از سایت elastic.co دانلود و داخل سرور خودتان ذخیره کنید و سپس آن را از حالت فشرده (زیپ) خارج کنید. زمانی که پوشه مورد نظر از حالت زیپ خارج شد وارد آن شوید و فایل اجرایی Elasticsearch را در مسیر زیر (مسیر bin) اجرا نمایید:

bin/elasticsearch/.

توجه شود که این دستور برای سرورهای ویندوزی است

به طور معمول و به صورت پیشفرض، الستیک سرچ روی IP و پورت 127.0.0.1:9200 قابلیت اجرایی و همچنین قابلیت استفاده را دارد. اما یک نکته مهم را نبایستی فراموش کنید: در نسخه 5 به دلیل اینکه مسائل امنیتی وجود دارد امکان اجرای نرم افزار با یوزر ROOT وجود ندارد و برای اجرا کردن آن بایستی از یک نام کاربری دیگر استفاده نمایید.

این امکان هم وجود دارد که به هنگام استفاده و اجرای سرویس الستیک سرچ با سه خطای رایج و متفاوت روبرو شوید که در زیر به این سه نوع خطا اشاره ای کوتاه خواهیم کرد:

خطای اول: رخ دادن خطای  max file descriptors

هرگاه این نوع خطا به وجود آمد تنها راه حل این است که فایل limits.conf را در مسیر etc/security را با یک ویرایشگر باز کنید و دو خط زیر را برای نام کاربری که Elasticsearch را با آن اجرا کردید به آخر فایل اضافه نمایید.

 hard nofile 65536
 soft nofile 65536

خطای دوم:  max number of threads

اگر این نوع خطا به وجود آمد یکی از راه حل های موجود این است که داخل ترمینال با نام کاربری که تصمیم گرفتید با آن Elasticsearch را اجرا نمایید لاگین کنید و قبل از اجرای آن دستور زیر را اجرا نمایید:

ulimit -u 2048

خطای سوم:  vm.max_map_count

راه حل برطرف کردن این خطا این است که با یوزر root مقدار آن را تغییر دهیم. طبق دستور زیر

sysctl -w vm.max_map_count=262144

روند به کارگیری از نرم افزار Elasticsearch در ایران و جهان

کاربرد الاستیک سرچ

از این نرم افزار در اکثر نقاط دنیا استفاده می شود و به عنوان نمونه سایت های زیادی هستند که از برنامه Elasticsearch به عنوان یک ابزار پیاده سازی جستجو و همچنین آنالیز داده ها استفاده می کنند. به طور مثال سایت فروشگاهی دیجی کالا از الستیک سرچ در پیاده سازی جستجوهای خود و همچنین برای نگهداری گزارش های رفتار کاربران و مشتریان خود در وب سایتش استفاده می کند و به هر حال تمامی داده هایی که جمع آوری می شود و ما قصد داریم بر اساس آن راهبرد کسب و کار خودمان را تعیین کنیم، در این برنامه ذخیره سازی می شود.

در این مسیر، استفاده از query language به شما این کمک را می کند که انواع متفاوتی از فیلترها را بر روی داده های ذخیره شده، پیاده سازی نمایید و در پایان به نتیجه دلخواهی که مد نظرتان هست برسید. همچنین امکان توسعه این نرم افزار بر روی سرورهای متعدد و زیاد و قابلیت کلاستر شدن، این امکان را در اختیار کاربر قرار می دهد تا میلیاردها رکورد داده را در دیتابیس به راحتی ذخیره سازی نماید. Elasticsearch قادر است با استفاده از ابزارهایی مانند Kibana و log stash یک مجموعه کامل از تحلیل، نمایش و همچنین ذخیره سازی داده ها را فراهم کند. Kibana هم یک ابزار برای نمایش داده های موجود در نرم افزار Elasticsearch است که با استفاده از ابزارهای موجود می تواند انواع داده ها را به صورت یک چارت و گزارش نمایش دهد. log stash هم می تواند داده ها را از منابع مختلف و متفاوت فراهم کند و آن ها را در یک قالب ذخیره سازی نماید. به طور مثال به سادگی می توانید داده هایی از یک فایل CSV را توسط ابزار log stash در Elasticsearch ذخیره سازی نمایید.

مقالات پیشنهادی