Elasticsearch یک موتور جستجو و تحلیل توزیع شده و متن باز است که برای مدیریت حجم زیادی از دادهها طراحی شده است. این ابزار بر پایه کتابخانه جستجوی Lucene ساخته شده و روشی مقیاسپذیر و کارآمد برای جستجو، تحلیل و مشاهده دادهها به صورت زمان واقعی را ارائه میدهد.
الاستیکسرچ از رویکرد مبتنی بر سند برای ذخیره دادهها استفاده میکند، به این معنی که دادهها به صورت سندهایی با فیلدها و مقادیر ذخیره میشوند و به هر سند یک شناسه منحصربفرد اختصاص داده میشود. الاستیکسرچ امکان پرسوجوی انعطافپذیر و فیلتر کردن دادهها را فراهم میکند که جستجوی سندهای خاص یا تحلیل دادهها بر اساس معیارهای مختلف را آسان میسازد.
علاوه بر جستجو و تحلیل، الاستیکسرچ میتواند برای ثبت وقایع، نظارت و تحلیل امنیتی نیز مورد استفاده قرار گیرد. این ابزار با گستره وسیعی از فناوریهای دیگر ادغام شده است، از جمله کیبانا (ابزار مشاهده و گزارشگیری)، لاگاستش (خط لوله پردازش داده) و بیتس (ارسالکنندههای داده از منابع مختلف).
الاستیکسرچ بسیار مقیاسپذیر و تابآور است و دارای ویژگیهای داخلی برای خوشهبندی و تکثیر است. میتوان آن را در محل یا در ابر مستقر کرد و از طریق API RESTful آن، زبانها و پلتفرمهای برنامهنویسی مختلفی را پشتیبانی میکند. در مجموع، الاستیکسرچ یک ابزار قدرتمند برای مدیریت نیازهای جستجو و تحلیل دادههای با مقیاس بزرگ است.
پیشنیازهای نصب الاستیکسرچ در اوبونتو
برای اینکه این آموزش به درستی کار کند، موارد زیر را فراهم کنید و ادامه دهید:
- یک سیستم با اوبونتو در حال اجرا.
- یک کاربر غیر روت با امتیازات سودو.
- نصب جاوا. (برای اطمینان از پیکربندی صحیح محیط و عدم وجود مشکلات غیرمنتظره.)
- حداقل ۲ گیگابایت رم و ۲ پردازنده مرکزی
چگونه الاستیکسرچ کار میکند؟
الاستیکسرچ دادههای خام را از منابع مختلف گوناگونی مانند لاگها، متریکهای سیستم و وباپلیکیشنها دریافت میکند. قبل از ایندکس شدن در الاستیکسرچ، این دادههای خام از طریق فرآیندی به نام دریافت داده، پردازش، استاندارد و غنیسازی میشوند. کاربران میتوانند پس از ایندکس شدن دادهها در الاستیکسرچ، از تجمیعها برای دریافت خلاصههای پیچیده از دادههای خود استفاده کنند و پرسوجوهای پیچیده را بر روی آنها اجرا کنند. کاربران میتوانند با استفاده از کیبانا، استک الاستیک را مدیریت کنند، داشبوردها را به اشتراک بگذارند و نمایشهای دادهای غنی ایجاد کنند.
نصب الاستیکسرچ در اوبونتو پیچیده نیست. مراحل زیر را به درستی دنبال کنید تا بدون هیچ خطایی به راحتی نصب شود.
آموزش نصب الاستیکسرچ در اوبونتو
با ما همراه باشید تا عملکرد وبسایت خود را بهبود بخشیده و آن را بهینه کنیم. فقط کافی است مراحل این راهنما را برای نصب الاستیکسرچ در اوبونتو دنبال کنید.
مرحله ۱. نصب الاستیکسرچ
مخازن بسته پیشفرض برای اوبونتو شامل اجزای الاستیکسرچ نیستند. اما پس از اضافه کردن لیست منبع بسته برای الاستیک، میتوان آنها را از طریق APT نصب کرد. برای بروزرسانی لیست بستهها (تا APT منبع جدید الاستیک را بخواند)، دستور زیر را اجرا کنید:
sudo apt update
اکنون آماده نصب الاستیکسرچ در اوبونتو هستید. بنابراین تایپ کنید:
sudo apt install elasticsearch
هنگامی که برای تأیید نصب از شما پرسیده شد، Y را فشار دهید. در صورت نیاز به راهاندازی مجدد هر سرویسی، ENTER را برای پذیرفتن پیشفرضها فشار دهید و ادامه دهید. الاستیکسرچ نصب شده و برای پیکربندی آماده است. همچنین، برای پریدن از مرحله توضیح داده شده، میتوانید به جای دستور قبلی، دستور زیر را اجرا کنید.
sudo apt install elasticsearch -y
مرحله ۲. پیکربندی الاستیکسرچ
الاستیکسرچ به طور کامل نصب شده است، اما قبل از استفاده از آن، هنوز باید آن را پیکربندی کنید. بیشتر گزینههای پیکربندی الاستیکسرچ در فایل پیکربندی اصلی آن، elasticsearch.yml قرار دارد که ما برای پیکربندی الاستیکسرچ آن را بهروزرسانی خواهیم کرد. این فایل در مسیر /etc/elasticsearch قرار دارد. فایل پیکربندی الاستیکسرچ را با ویرایشگر متن مورد علاقهتان ویرایش کنید. در این مورد از nano استفاده خواهیم کرد:
sudo nano /etc/elasticsearch/elasticsearch.yml
الاستیکسرچ ترافیک ورودی از هر مکانی را در پورت ۹۲۰۰ نظارت میکند. برای جلوگیری از دسترسی افراد خارجی به دادههای شما یا خاموش کردن خوشه الاستیکسرچ شما از طریق [REST API]، باید دسترسی خارجی به الاستیکسرچ خود را محدود کنید. برای محدود کردن دسترسی و در نتیجه افزایش امنیت، خط “network” را پیدا کنید. host، آن را از حالت توضیح خارج کنید و مقدار localhost را برای آن تنظیم کنید تا به این شکل درآید:
/etc/elasticsearch/elasticsearch.yml
# ———————————- Network ———————————–
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: <span style=”color: #003366;”>localhost</span>
برای اعمال تغییرات، سرویس الاستیکسرچ را راهاندازی مجدد کنید.
sudo systemctl restart elasticsearch
ما localhost را انتخاب کردهایم تا الاستیکسرچ به تمام رابطها و آیپیهای متصل شده گوش دهد. اگر میخواهید فقط به یک رابط گوش دهد، میتوانید به جای localhost یک آدرس آیپی را وارد کنید. فایل elasticsearch.yml را باز نگه دارید و ببندید. اگر از nano استفاده میکنید، میتوانید این کار را با زدن CTRL+X، Y و ENTER انجام دهید و سپس کلیدها را رها کنید. اکنون الاستیکسرچ میتواند برای اولین بار راهاندازی شود.
از systemctl برای راهاندازی سرویس الاستیکسرچ استفاده کنید. به الاستیکسرچ زمان کافی برای راهاندازی بدهید. در غیر این صورت، ممکن است با خطاهایی مبنی بر عدم امکان اتصال مواجه شوید.
sudo systemctl start elasticsearch
برای اینکه الاستیکسرچ در هر بار راهاندازی سرورها شروع شود، دستور زیر را اجرا کنید:
sudo systemctl enable elasticsearch
تا اینجا، شما الاستیکسرچ را در اوبونتو نصب و پیکربندی کردهاید. اکنون زمان امنسازی الاستیکسرچ است.
مرحله ۳. امنسازی الاستیکسرچ
اکنون که سرویس الاستیکسرچ شما در حال اجرا است، بدیهی است که میخواهید نصب آن را ایمن کنید. اما چگونه؟ UFW، فایروال داخلی در اوبونتو، قابل اعتماد است و باید کافی باشد. فقط شبکه محلی میتواند به سرور الاستیکسرچ شما دسترسی داشته باشد که برای محیطهای آزمایشی و توسعه کافی است. اما در یک محیط واقعی، باید دسترسی به الاستیکسرچ را فقط به میزبانهای خاصی محدود کنید.
به طور پیشفرض، هر کسی که به API HTTP دسترسی داشته باشد میتواند الاستیکسرچ را مدیریت کند. از آنجایی که الاستیکسرچ فقط به رابط برگشت پیوند گوش میدهد که فقط از طریق محلی قابل دسترسی است، این معمولاً یک مشکل امنیتی نیست. بنابراین، هیچ دسترسی عمومی وجود ندارد و اگر تمام کاربران سرور قابل اعتماد باشند، امنیت ممکن است نگرانی جدی نباشد.
با این حال، برای اجازه دسترسی از دستور زیر استفاده کنید:
sudo ufw allow from yourIP to any port 9200
برای فعال کردن UFW، تایپ کنید:
sudo ufw enable
سپس میتوانید دستور زیر را برای بررسی وضعیت UFW اجرا کنید:
sudo ufw status
اگر قوانین به درستی مشخص شده باشند، باید خروجی مشابه این را داشته باشید:
Output
Status: active
To Action From
-- ------ ----
۹۲۰۰ ALLOW 198.51.100.0
۲۲ ALLOW Anywhere
۲۲ (v6) ALLOW Anywhere (v6)
اکنون پورت ۹۲۰۰ الاستیکسرچ باید توسط UFW که فعال شده است، امن باشد. اگر میخواهید برای امنیت بیشتر هزینه کنید، میتوانید افزونه Shield را به عنوان یک گزینه تجاری خریداری کنید.
چگونه الاستیکسرچ را در اوبونتو استفاده کنیم
اکنون که نصب الاستیکسرچ شما ایمن است، میتوانید از دستور curl -XGET برای مرور صفحات استفاده کنید. از آنجایی که الاستیکسرچ در پورت ۹۲۰۰ اجرا میشود، میتوانید آن را با cURL و یک درخواست GET آزمایش کنید.
curl -X GET 'http://localhost:9200'
برای جستجوی کاملتر در الاستیکسرچ و دریافت خروجی JSON مختصر و قابل درک از سند، دستور زیر را اجرا کنید:
curl -X GET 'http://localhost:9200/_nodes?pretty'
API RESTful که الاستیکسرچ از آن استفاده میکند، به دستورات استاندارد CRUD – ایجاد، خواندن، بهروزرسانی و حذف پاسخ میدهد. ما یک بار دیگر از دستور cURL برای تعامل با آن استفاده خواهیم کرد. میتوانید با اضافه کردن ورودی زیر شروع کنید:
curl -XPOST -H "Content-Type: application/json" 'http://localhost:9200/tutorial/Opera blog/1' -d '{ "message": "Opera blog!" }'
برای دریافت این ورودی اول با یک درخواست HTTP GET، تایپ کنید:
curl -X GET -H "Content-Type: application/json" 'http://localhost:9200/tutorial/operablog/1'
میتوانید با مراجعه به مستندات در وبسایت رسمی آن، کارکردهای بیشتری از الاستیکسرچ را بررسی کنید.
نتیجهگیری
در این مقاله، شما آموختید که چگونه الاستیکسرچ را در اوبونتو نصب کنید. شما مراحل لازم برای نصب، پیکربندی، استفاده و امنسازی الاستیکسرچ در اوبونتو را مرور کردید. اکنون که این ابزار سفارشی شده است، میتوانید به دلخواه جستجو کنید یا از آن به هر شکل دیگری که مناسب میبینید استفاده کنید.
الاستیکسرچ بیش از یک موتور جستجو است که نتایج را در قالبهای JSON و YAML برای مصرف انسانی تولید میکند. الاستیکسرچ اغلب توسط تحلیلگران داده، متخصصان DevOps و حرفهایهای بازاریابی استفاده میشود.