این چند مدت که شروع کردم به نوشتن تلاشی بوده برای منتقل کردن دونسته هام به بقیه، دوتا نکته هست که فکر میکنم لازمه تا باز بگم یکی اینکه تمام این سری نوشته ها براساس تجربه های شخصی خودم در پیاده سازی و استفاده از این ابزار توی پروژه های واقعیه و شاید از جنبه های مختلف برای نیاز شما مفید نباشه، پس در استفاده از این ابزار حتما قبلش نیاز سنجی برای کاری که میخواین انجام بدین بکنین.
دوم و از همه مهمتر اینکه همیشه سورس اصلی رو بخونین چرا که چیزهایی رو پیدا میکنین که شاید توی نوشته هایی مثل این پیداش نکنین.این قسمتی که شروع کردم به نوشتنش به پیشنهاد دوستیه که به تازگی باهاش آشنا شدم و صرفا میخوام روش نصب و راه اندازی خانواده ابزار الستیک رو با استفاده از داکر توضیح بدم. راستی اگه خواستین از الستیک و کیبانا به صورت سرویس روی کامپیوتر ویندوزی هم استفاده کنین از نوشته مصطفی هم میتونین چیزای خوبی یاد بگیرین.
خانواده 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 "/bin/bash /usr/loca…" 54 seconds ago Up 53 seconds 0.0.0.0:5601->5601/tcp dockerelk_kibana_1 91ca160f606f dockerelk_logstash "/usr/local/bin/dock…" 54 seconds ago Up 53 seconds 5044/tcp, 0.0.0.0:5000->5000/tcp, 9600/tcp dockerelk_logstash_1 de7e3368aa0c dockerelk_elasticsearch "/usr/local/bin/dock…" 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/
الستیک بصورت پیش فرض از نام کاربری و رمز عبور :
استفاده میکنه.
و در نهایت هم میتونین با استفاده از ادرس زیر به کیبانا دسترسی داشته باشین:
http://localhost:5601
تا اینجای کار شما خانواده الستیک استک رو بر روی بستر داکر اوردین بالا از حالا به بعد اصل ماجرا شروع میشه که چطوری بخواین دیتاتون رو بفرستین داخل الستیک، که اینکار توی این سناریو با کمک لاگ استش عملی میشه که اونرو سعی میکنم بعدا هم خود از لاگاستش رو بیشتر بگم و هم روش استفاده ازش رو توی ساختارمون توضیح بدم. امیدوارم که تا اینجای کار براتون مفید باشه، سعی میکنم بیشتر و با جزیات کاملتر باز هم ادامه بدم.
فکر میکنم لازمه تا چنتا نکته رو اینجا واضح تر توضیح بدم: