ELK

مجموعه ELK یک پلتفرم تحلیل لاگ و مانیتورینگ سه‌لایه (Three-Tier) است که شامل سه موتور پردازشی اصلی می‌شود: Elasticsearch (موتور جست‌وجوی مقیاس‌پذیر جهت ذخیره‌سازی داده‌ها)، Logstash (جهت جمع‌آوری و پردازش پایپ‌لاین داده‌ها از منابع مختلف) و Kibana (جهت بصری‌سازی و تحلیل گرافیکی). استقرار یکپارچه این پشته نرم‌افزاری (Software Stack) در پلتفرم ابری پارس‌پک، امکان ردیابی مشکلات و پایش پیوسته زیرساخت‌های توزیع‌شده را در قالب یک محیط متمرکز فراهم می‌کند.

مراحل استقرار

برای مشاهده راهنمای گام‌به‌گام ساخت سرویس و پیکربندی‌های پایه، به مستندات «استقرار برنامه‌های آماده» مراجعه کنید. همچنین برای تنظیمات زیرساختی نیز به بخش مدیریت اپلیکیشن مراجعه کنید:

پیش‌نیازها و استقرار برنامه

در استقرار کانتینری پشته ELK، معماری سیستم دارای الزامات و محدودیت‌های زیر است که باید در زمان دیپلوی به آن‌ها توجه کنید:

  • معماری متمرکز و وابسته: عملکرد این پلتفرم به صورت متمرکز است و پایداری آن به اجرای هم‌زمان و یکپارچه هر سه کانتینر بستگی دارد.

  • سطح دسترسی سیستمی: جهت حفظ امنیت شبکه، تمام بخش‌های این مجموعه با سطح دسترسی کاربر عادی (Non-Root) اجرا می‌شوند؛ در نتیجه امکان دسترسی به منابع سطح کرنل یا اجرای دستورات سیستمی در ترمینال آن‌ها کاملا مسدود است.

  • تخصیص منابع و تفکیک لایه‌ها: در این معماری، تنها سرویس elasticsearch دارای فضای ذخیره‌سازی پایدار (Persistent Volume) است و لاگ‌ها را روی دیسک می‌نویسد؛ در حالی که کانتینرهای logstash و kibana به صورت صرفا پردازشی عمل کرده و متکی به رم و پردازنده هستند. به دلیل بار پردازشی سنگین، پلن پایه سرویس الستیک‌سرچ حداقل با ۸ گیگابایت رم ارائه می‌شود. در صورت شخصی‌سازی، امکان تنظیم مجزای منابع برای هر کانتینر وجود دارد.

  • حفاظت از داده‌ها: کاهش فضای ذخیره‌سازی دیسک (Scale Down) پس از استقرار برنامه، منجر به حذف دائمی تمام لاگ‌های جمع‌آوری‌شده خواهد شد. فعال‌سازی قابلیت بکاپ خودکار جهت حفظ یکپارچگی داده‌های الستیک‌سرچ به شدت توصیه می‌شود.

متغیرهای محیطی

در فرایند پیکربندی این پشته نرم‌افزاری، علاوه بر مقادیر پایه شامل نام پروژه، نام اپلیکیشن و نام دامنه، تعیین متغیرهای امنیتی زیر الزامی است:

  • Elasticsearch Password: رمز عبور اصلی کلاستر پایگاه‌داده که کل پشته جهت برقراری اتصال از آن استفاده می‌کند.

  • Kibana Auth Password: رمز عبور اختصاصی جهت احراز هویت و ورود به محیط داشبوردهای گرافیکی.

  • Logstash API Password: رمز عبور اختصاصی جهت حفظ امنیت دسترسی به Endpointهای API در لاگ‌استش (ضروری برای مانیتورینگ و مدیریت پایپ‌لاین‌ها).

  • Elasticsearch Service account token: توکن امنیتی اختصاصی جهت برقراری ارتباط یکپارچه (Integration) بین لایه Kibana و Elasticsearch.

نکته: برای آموزش گام‌به‌گام نحوه تعریف متغیرهای اختصاصی، ConfigMapها و Secretها در داشبورد، به مستندات متغیرهای محیطی مراجعه کنید.

تنظیمات دامنه

پلتفرم ابری به صورت پیش‌فرض یک دامنه رایگان به بخش وب این مجموعه (Kibana) اختصاص می‌دهد. جهت اتصال دامنه یا ساب‌دامین اختصاصی خود برای دسترسی به محیط گرافیکی پشته ELK، به راهنمای تنظیمات دامنه و IP مراجعه نمایید.

راه‌اندازی و ورود اولیه

پس از ۱۰۰٪ شدن فرایند بیلد، کانتینرها به صورت خودکار با یکدیگر شبکه می‌شوند. برای ورود به سیستم مراحل زیر را طی کنید:

  1. پس از اتمام استقرار، پنجره «اطلاعات پیش‌فرض دسترسی به اپلیکیشن» باز می‌شود. در این پنجره آدرس دامنه و تمامی رمزهای عبور امنیتی حیاتی قرار دارند. کپی و ذخیره این مقادیر پیش از بستن پنجره کاملا ضروری است.
  2. بر روی لینک دامنه اختصاصی کلیک کنید تا صفحه ورود (Welcome to Elastic) در مرورگر باز شود.
  3. در کادر Username، نام کاربری پیش‌فرض سیستم یعنی elastic را وارد کنید.
  4. در کادر Password، رمزی که در مرحله اول با عنوان Elasticsearch password کپی کرده بودید را وارد کنید تا وارد محیط مانیتورینگ و داشبوردهای گرافیکی شوید.

نکته مهم:

رمزی که با عنوان Kibana Auth Password در داشبورد پارس‌پک نمایش داده می‌شود، صرفا جهت احراز هویت سیستمی و ارتباط داخلی بین کانتینرها تولید شده است و برای ورود شما به رابط کاربری (GUI) کاربرد ندارد.