راهنمای نصب و پیاده سازی (الستیک استک) ELK با کمک داکر

این چند مدت که شروع کردم به نوشتن تلاشی بوده برای منتقل کردن دونسته هام به بقیه، دوتا نکته هست که فکر میکنم لازمه تا باز بگم یکی اینکه تمام این سری نوشته ها براساس تجربه های شخصی خودم در پیاده سازی و استفاده از این ابزار توی پروژه های واقعیه و شاید از جنبه های مختلف برای نیاز شما مفید نباشه، پس در استفاده از این ابزار حتما قبلش نیاز سنجی برای کاری که میخواین انجام بدین بکنین. دوم و از همه مهمتر اینکه همیشه سورس اصلی رو بخونین چرا که چیزهایی رو پیدا میکنین که شاید توی نوشته هایی مثل این پیداش نکنین.این قسمتی که شروع کردم به نوشتنش به پیشنهاد دوستیه که به تازگی باهاش آشنا شدم و صرفا میخوام روش نصب و راه اندازی خانواده ابزار الستیک رو با استفاده از داکر توضیح بدم. راستی اگه خواستین از الستیک و کیبانا به صورت سرویس روی کامپیوتر ویندوزی هم استفاده کنین از نوشته مصطفی هم میتونین چیزای خوبی یاد بگیرین.الستیک استک : الستیک سرچ، لاگ‌استش، کیباناخانواده ELK (الستیک استک) روی انواع مختلفی از سیستم عامل ها و با استفاده از روش های مختلفی قابل نصب شدن هستش اما ساده ترین و راحترین روش استفاده از بستر داکر برای راه اندازی و پیاده سازیه.چرا داکر؟ مهمترین دلایلی که میتونم بگم برای اینکه داکر یکی از بهترین گزینه ها برای اینکاره: پایداری ، استحکام ، امنیت - و ماهیت توزیع شده داکر که می تونه راهی بسیار آسون برای راه اندازی خانواده الستیک باشه.راه اندازی :خب روی داکر روش های مختلفی میشه خانواده الستیک رو نصب و راه انداخت مثلا میتونین هرکدوم از ابزار هارو بصورت ایمیج های جداگونه پول بگیرین و کانتینرش رو با کمک داکر کامپوز راه بندازین. برای این نوشتار من از این ایمیج که هرسه ابزار رو بصورت همزمان و موازی اجرا میکنه، استفاده کردم.قبل از هرچیزی :باید بگم که من این پروسه رو روی سیستم عامل مک او اس اجرا کردم که بصورت پیش فرض فایل جاوا و JVM رو نصب داره اما اگه شما میخواین از این نوشتار کمک بگیرین برای نصب روی یه سیستم عامل دیگه حتما چک کنین که جاوا و jvm رو نصب داشته باشین.اولین قدم :برای شروع از دستور زیر کمک میگیریم تا ریپوزیتوری مورد نظرمون رو روی سیستم عامل دلخواهمون کلون بگیریم: و اگه در طول کلون گرفتن به مشکلی برنخورین باید همچین چیزی رو توی ترمینال باهاش روبرو بشینgit clone https://github.com/deviantony/docker-elk.git remote: Counting objects: 1112, done. remote: Total 1112 (delta 0), reused 0 (delta 0), pack-reused 1112 Receiving objects: 100% (1112/1112), 234.87 KiB | 84.00 KiB/s, done. Resolving deltas: 100% (414/414), done. Checking connectivity... done.توی مرحله بعد دستور زیر رو اجرا میکنین تا وارد پوشه ای بشین که کلون گرفتین :cd /docker-elkو با دستور زیر داکر الستیک رو میاریدش بالا :docker-compose up -dیه نکته تا یادم نرفته اگه دستور بالا رو بدون فلگ (( d- )) بزنین میتونین لاگ های داکرتون رو ببینین تا اگه مشکلی زمان راه اندازی وجود داره متوجهش بشین، فقط یادتون نره که بعدش اگه اون صفحه از ترمینال رو بخواین ببندین و یا دستور دیگه اجرا کنین داکرتون چون توی بکگراند اجرا نمیشه مجبورین بیارینش پایین .اطمینان از راه افتادن :از لحظه ای که شروع به کلون گرفتن میکنین تا زمانی که داکرتون شروع به اینیت شدن میکنه ممکنه که چند دقیقه ای طول بکشه که بستگی به سرعت اینترنت داره، بعدش برای اینکه مطمئن بشین که داکرتون بالا اومده با استفاده از دستور زیر میتونین لیست کانتینر هاتون رو چک کنین.docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a1a00714081a dockerelk_kibana &quot/bin/bash /usr/loca…&quot 54 seconds ago Up 53 seconds 0.0.0.0:5601->5601/tcp dockerelk_kibana_1 91ca160f606f dockerelk_logstash &quot/usr/local/bin/dock…&quot 54 seconds ago Up 53 seconds 5044/tcp, 0.0.0.0:5000->5000/tcp, 9600/tcp dockerelk_logstash_1 de7e3368aa0c dockerelk_elasticsearch &quot/usr/local/bin/dock…&quot 55 seconds ago Up 54 seconds 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp dockerelk_elasticsearch_1یه نکته ای که بر اساس تجربه بهش رسیدم اینه که همیشه چک کنین اگه اولویت بالا اومدن ابزار خانواده الستیک استک ( این اولویت بر اساس اولویتی که داخل فایل داکر کامپوز یا داکر استکه نوشته شده) چیزی به جز ( الستیک - لاگ استش - کیبانا) بود همیشه یه جایی از تنظیماتتون ایراد داره.احتمالا باید بدونین که الستیک پورت پیش فرضی که استفاده میکنه پورت (۹۲۰۰/۹۳۰۰) ، لاگ استش از پورت پیش فرض (۵۰۰۰/۵۰۴۴) و کیبانا هم از پورت پیش فرض (۵۶۰۱) استفاده میکنه و شما با کمک دستور زیر میتوین مطمئن بشین که همه چی درسته. curl http://localhost:9200/الستیک بصورت پیش فرض از نام کاربری و رمز عبور :user: elasticpassword: changemeاستفاده میکنه.و در نهایت هم میتونین با استفاده از ادرس زیر به کیبانا دسترسی داشته باشین: http://localhost:5601جمع بندی :تا اینجای کار شما خانواده الستیک استک رو بر روی بستر داکر اوردین بالا از حالا به بعد اصل ماجرا شروع میشه که چطوری بخواین دیتاتون رو بفرستین داخل الستیک، که اینکار توی این سناریو با کمک لاگ استش عملی میشه که اونرو سعی میکنم بعدا هم خود از لاگ‌استش رو بیشتر بگم و هم روش استفاده ازش رو توی ساختارمون توضیح بدم. امیدوارم که تا اینجای کار براتون مفید باشه، سعی میکنم بیشتر و با جزیات کاملتر باز هم ادامه بدم.پی نوشت: فکر میکنم لازمه تا چنتا نکته رو اینجا واضح تر توضیح بدم:شما برای اینکه مطمئن بشین از اینکه ابزارهاتون به درستی کار میکنن میتوین به دو صورت اونها رو امتحان کنین یا مثل بالا با استفاده از دستور curl توی محیط ترمینال و یا با استفاده از مرورگر و رفتن به پورتی که اون ابزار داره استفاده میکنه.در رابطه با نام کاربری و رمزعبور، الستیک بصورت پیش فرض برای افزایش امنیتش مخصوصا زمانی که میخواین از اون در سرور استفاده کنین پیشنهاد میده که این قابلیت رو فعال کنین، به این صورت که این ابزار ها با کمک این نام کاربری و رمز عبور بتونن با همدیگه ارتباط امن بگیرن، البته که شما میتوین اونها رو تغییر و یا غیر فعالشون هم بکنین.نکته اخر هم اینکه من توی پیاده سازیم از فایل داکر کامپوز استفاده کردم اما شما میتونین از فایل داکر استک هم استفاده کنین ولی به دو چیز باید توجه داشته باشین یکی اینکه فرمت هردوتا فایل yml که حتما باید تحت ساختار خودشون باشن هرمدل، تغییری اگه باعث بشه ساختار فایل عوض بشه مثل اضافه شدن یک اسپیس اضافی و ... میتونه باعث بشه که داکرتون بالا نیاد و مورد دوم هم اینکه همیشه به مقدار رمی که به jvm اختصاص میدین داخل فایل های اجرایی داکر دقت کنین چون ممکنه که مقدارش از میزان مورد نیازتون بیشتر و کمتر باشه و در ساده ترین حالت شما با خطای پول کانکشن مواجه بشین.