Logstash
برنامه Logstash یک ابزار واسط برای پردازش و انتقال دادهها است. وظیفه اصلی این ابزار، دریافت لاگها و اطلاعات از منابع مختلف، مرتبسازی و فیلتر کردن آنها و در نهایت ارسال این دادهها به الستیکسرچ (Elasticsearch) است. در پلتفرم ابری پارسپک، میتوانید این بخش مهم از استک ELK (Elasticsearch, Logstash, Kibana) را بهسادگی راهاندازی کرده و سیستم مدیریت لاگهای خود را تکمیل کنید.
مراحل استقرار
برای مشاهده راهنمای گامبهگام ساخت سرویس و پیکربندیهای پایه، به مستندات «استقرار برنامههای آماده» مراجعه کنید. همچنین برای تنظیمات زیرساختی نیز به بخش مدیریت اپلیکیشن مراجعه کنید:
پیشنیازها و استقرار برنامه
در استقرار کانتینری Logstash، معماری سیستم دارای الزامات و محدودیتهای زیر است که باید در زمان دیپلوی به آنها توجه کنید:
-
وابستگی قطعی (Dependency): این سرویس پردازشی جهت نگهداری و ثبت خروجیها وابستگی قطعی به یک سرور Elasticsearch فعال دارد و بدون آن فاقد کارایی است.
-
سطح دسترسی سیستمی: کانتینر برنامه و ترمینال آن با سطح دسترسی کاربر عادی (Non-Root) اجرا میشوند؛ در نتیجه امکان اجرای دستورات سیستمی در محیط خط فرمان آن کاملا مسدود است تا امنیت شبکه حفظ شود.
-
تخصیص منابع پردازشی: عملیات مستمر فیلتر و تبدیل دادهها نیازمند توان پردازشی بالایی است و تخصیص منابع ضعیف میتواند فرایند انتقال لاگها را دچار اختلال کند. پلن پایه این سرویس حداقل با ۲ گیگابایت رم ارائه میشود. در محیطهای عملیاتی با حجم لاگ ورودی بالا، استفاده از اسلایدرهای شخصیسازی جهت ارتقای پردازنده و رم کاملا ضروری است.
-
حفاظت از تنظیمات: روشن نگهداشتن بکاپ خودکار برای حفظ تنظیمات پیکربندی و فایلهای کانفیگ این سرویس به شدت توصیه میشود.
متغیرهای محیطی
در فرایند پیکربندی، علاوه بر مقادیر پایه شامل نام پروژه و نام اپلیکیشن، تعیین مقادیر زیر الزامی است:
-
دسترسی عمومی به اپلیکیشن: این سوئیچ به صورت پیشفرض غیرفعال است تا سرویس صرفا در شبکه داخلی و ایزوله عمل کند. در صورت نیاز به دریافت داده از خارج از شبکه، با فعالسازی آن، فیلد نام دامنه برای تعیین آدرس (Ingress) در دسترس قرار میگیرد.
-
پارامترهای Logstash (تنظیمات اتصال):
-
Elasticsearch host: آدرس شبکه یا دامنه سرور الستیکسرچ میزبان.
-
Elasticsearch Username: نام کاربری سرور الستیکسرچ.
-
Elasticsearch API Username: در صورتی که برای اینستنس الستیک، نام کاربری دیگری به جز
elasticتنظیم شده باشد، مقداردهی این فیلد الزامی است؛ در غیر این صورت، سیستم به صورت خودکار مقدارelasticرا لحاظ میکند. -
Logstash API Username: نام کاربری اختصاصی برای رابط برنامهنویسی لاگاستش که به صورت پیشفرض با مقدار
logstashتنظیم شده است. -
Elasticsearch Password (اختیاری): رمز عبور کلاستر الستیکسرچ جهت برقراری اتصال.
-
Logstash API Password (اختیاری): رمز عبور اختصاصی جهت حفظ امنیت دسترسی به Endpointهای API در لاگاستش.
-
نکته: برای آموزش گامبهگام نحوه تعریف متغیرهای اختصاصی، ConfigMapها و Secretها در داشبورد، به
تنظیمات دامنه
اتصال دامنه به لاگاستش وابسته به وضعیت سوئیچ «دسترسی عمومی به اپلیکیشن» است. اگر این سوئیچ را فعال کردهاید و قصد دارید دامنه اختصاصی خود را متصل کنید، به
راهاندازی و ورود اولیه
پس از ۱۰۰٪ شدن فرایند بیلد، محتوای پنجره خلاصه اطلاعات و نحوه دسترسی شما، مستقیما به وضعیت شبکه (تنظیمات دسترسی عمومی) بستگی دارد. حتما پیش از بستن این پنجره، اطلاعات امنیتی شامل نام کاربری و رمز عبور API لاگستش را کپی و در مکانی امن ذخیره کنید.
-
در صورت بسته بودن دسترسی عمومی: دامنهای صادر نمیشود. لاگستش به صورت کاملا ایزوله در شبکه داخلی کلاستر قرار میگیرد و بلافاصله آماده دریافت، پردازش و مسیریابی دادهها به سمت پایگاهداده (مانند Elasticsearch) است. تعامل با آن صرفا از طریق شبکه داخلی اکوسیستم شما انجام میشود.
-
در صورت باز بودن دسترسی عمومی: لینک دامنه اختصاصی برای دسترسی خارجی در اختیار شما قرار میگیرد. با کلیک بر روی این لینک، مرورگر از شما اطلاعات ورود میخواهد. با وارد کردن مقادیر
Logstash API UsernameوLogstash API Password(که از پنجره خلاصه اطلاعات کپی کردهاید)، لاگین کنید.
نکته بسیار مهم:
لاگستش یک سرویس پردازش پسزمینه است و فاقد داشبورد گرافیکی (GUI) میباشد. بنابراین پس از ورود موفق از طریق مرورگر، تنها یک خروجی متنی با فرمت JSON (شامل اطلاعات نود و وضعیت سلامت سرویس) مشاهده خواهید کرد که نشاندهنده اجرای صحیح برنامه است. برای مشاهده و تحلیل گرافیکی لاگهای پردازششده، باید لاگستش را به ابزار Kibana متصل کنید.