کانتینر, مقالات, میکروتیک

آموزش نصب و راه اندازی کانتینر Uptime Kuma در میکروتیک

سلام دوستان خوب افراتیک 👋در این آموزش قراره قدم‌به‌قدم یاد بگیریم چطور کانتینر Uptime Kuma رو روی میکروتیک (MikroTik RouterOS 7) نصب و راه‌اندازی کنیم. Uptime Kuma یک ابزار مانیتورینگ متن‌باز و بسیار سبک هست که وضعیت آنلاین/آفلاین بودن سرورها، سایت‌ها، سرویس‌های شبکه و… رو به صورت زنده بهتون نمایش می‌ده و در صورت قطعی، از طریق تلگرام، ایمیل، دیسکورد و ده‌ها سرویس دیگه بهتون اطلاع‌رسانی می‌کنه. با راه‌اندازی این کانتینر روی خود روتر میکروتیک، دیگه نیازی به یک سرور یا VPS جداگانه فقط برای مانیتورینگ نخواهید داشت.

پیش‌نیازهای راه‌اندازی کانتینر Uptime Kuma

  • روتر میکروتیک با معماری ARM64 یا x86 (کانتینر روی MIPSBE پشتیبانی نمی‌شه)
  • نسخه RouterOS 7.5 یا بالاتر
  • حداقل یک دیسک/استوریج خارجی (فلش، هارد یا NVMe) برای نصب پکیج Container و ذخیره داده‌های کانتینر
  • دسترسی فیزیکی یا Winbox/CLI به روتر برای فعال‌سازی پکیج

مرحله ۱: فعال‌سازی پکیج Container

ابتدا باید حالت روتر رو روی حالت Container تغییر بدید. این دستور رو در ترمینال میکروتیک اجرا کنید:

/system/device-mode/update container=yes

پس از اجرای دستور، روتر از شما تایید فیزیکی (فشردن دکمه ریست یا تایید در دستگاه) می‌خواد و سپس ری‌استارت می‌شه. بعد از بالا اومدن روتر، پکیج Container فعال شده.

مرحله ۲: ساخت VETH برای شبکه کانتینرها

کانتینرها روی میکروتیک از طریق یک اینترفیس مجازی به نام VETH به شبکه متصل می‌شن و برای ارتباط با هم و با روتر، به یک Bridge نیاز دارن. دستورات زیر رو اجرا کنید:

/interface/veth/add name=veth5-Uptimekuma address=172.20.5.30/24 gateway=172.20.5.254 
/ip/address/add address=172.20.5.254/24 interface=veth5-Uptimekuma

در صورتی که از قبل یک بریج به نام dockers برای کانتینرهای دیگه ساخته‌اید، نیازی به تکرار دو خط اول نیست و فقط کافیه VETH مربوط به Uptime Kuma رو اضافه کنید.

مرحله ۳: تنظیم NAT برای دسترسی کانتینر به اینترنت

برای اینکه کانتینر بتونه به اینترنت دسترسی داشته باشه (مثلاً برای ارسال نوتیفیکیشن تلگرام)، باید یک قانون Masquerade اضافه کنید:

/ip/firewall/nat add chain=srcnat src-address=172.20.5.30 out-interface=ether1 action=masquerade

مرحله ۴: تنظیم رجیستری Docker

در این مرحله باید آدرس رجیستری‌ای که میکروتیک ایمیج کانتینر رو از اون دانلود می‌کنه و محل موقت ذخیره فایل‌های دانلودی رو مشخص کنید. دقت کنید که disk1 باید نام همون دیسک خارجی متصل به روتر باشه:

/container config set registry-url=https://registry.docker.ir tmpdir=/tmp

نکته مهم: با توجه به تحریم‌ها، ممکنه دانلود مستقیم ایمیج از Docker Hub با خطا مواجه بشه. در این صورت می‌تونید از یک آینه (Mirror) داخلی یا رجیستری‌های جایگزین مثل docker.arvancloud.ir استفاده کنید.

مرحله ۵: ساخت پوشه Mount برای ذخیره‌سازی داده‌ها

برای اینکه داده‌های Uptime Kuma (مثل تنظیمات مانیتورها و تاریخچه) بعد از ری‌استارت کانتینر از بین نره، باید یک مسیر روی دیسک به عنوان Mount تعریف کنید:

/container/mounts/add list=kuma-data src=disk1/kuma-data dst=/app/data

مطمئن بشید که پوشه disk1/kuma-data از قبل روی دیسک وجود داره؛ در غیر این صورت با File Manager میکروتیک اون رو بسازید.

مرحله ۶: دانلود و ساخت کانتینر Uptime Kuma

حالا نوبت به تعریف خود کانتینر می‌رسه. دستور زیر ایمیج رسمی Uptime Kuma رو دانلود کرده و کانتینر رو با تنظیمات شبکه و Mount بالا می‌سازه:

/container/add remote-image=louislam/uptime-kuma:latest interface=veth5-Uptimekuma root-dir=disk1/kuma-root mountlists=kuma-data logging=yes start-on-boot=yes

پارامترهای مهم این دستور:

  • remote-image: نام و تگ ایمیج روی Docker Hub
  • interface: همون VETH که در مرحله ۲ ساختیم
  • root-dir: مسیر ذخیره فایل‌سیستم کانتینر روی دیسک
  • mounts: پوشه دائمی داده که در مرحله ۵ تعریف شد
  • start-on-boot: اجرای خودکار کانتینر بعد از هر بار روشن شدن روتر

بعد از اجرای دستور، دانلود ایمیج شروع می‌شه. برای مشاهده وضعیت پیشرفت می‌تونید از دستور زیر استفاده کنید:

/container/print

مرحله ۷: روشن کردن کانتینر

وقتی وضعیت کانتینر روی stopped بود (یعنی دانلود و ساخت تموم شده)، اون رو استارت کنید. فرض می‌کنیم شماره کانتینر ساخته شده صفر باشه:

/container/start 0

برای اطمینان از سالم بودن اجرا، وضعیت رو دوباره چک کنید:

/container/print detail

اگر وضعیت روی running باشه، یعنی Uptime Kuma با موفقیت بالا اومده.

مرحله ۸: دسترسی به پنل تحت وب Uptime Kuma

Uptime Kuma به صورت پیش‌فرض روی پورت داخلی 3001 اجرا می‌شه. برای اینکه از خارج شبکه یا حتی از داخل شبکه بتونید بهش دسترسی داشته باشید، باید یک قانون Dst-NAT (پورت فورواردینگ) اضافه کنید:

/ip/firewall/nat add chain=dstnat protocol=tcp dst-port=3001 action=dst-nat to-addresses=172.20.5.30 to-ports=3001

حالا کافیه از مرورگر آدرس زیر رو باز کنید:

http://IP-روتر-شما:3001

در اولین باز شدن پنل، ازتون خواسته می‌شه یک نام کاربری و رمز عبور برای ادمین بسازید. بعد از ورود، می‌تونید از منوی Add New Monitor سرورها، سایت‌ها یا سرویس‌های موردنظرتون رو برای مانیتورینگ اضافه کنید.

مرحله ۹ (اختیاری): تنظیم اعلان تلگرام

یکی از پرکاربردترین قابلیت‌های Uptime Kuma، ارسال هشدار قطعی به تلگرام هست. برای این کار:

  1. وارد پنل شوید و از منوی Settings > Notifications، گزینه Setup Notification رو بزنید.
  2. نوع اعلان رو Telegram انتخاب کنید.
  3. توکن ربات تلگرام (از @BotFather) و Chat ID رو وارد کنید.
  4. روی Save بزنید و با دکمه Test از صحت تنظیمات مطمئن بشید.

مدیریت و عیب‌یابی کانتینر

  • مشاهده لاگ‌های کانتینر: /log print where topics~"container"
  • توقف کانتینر: /container/stop 0
  • راه‌اندازی مجدد: ابتدا /container/stop 0 سپس /container/start 0
  • حذف کامل کانتینر: /container/remove 0 (توجه: پوشه Mount حذف نمی‌شه و داده‌هاتون باقی می‌مونه)

جمع‌بندی

همون‌طور که دیدید، راه‌اندازی کانتینر Uptime Kuma روی میکروتیک با چند مرحله ساده شبکه‌سازی (Bridge و VETH) و تعریف کانتینر انجام می‌شه و بعد از اون یک ابزار مانیتورینگ حرفه‌ای، بدون نیاز به سرور جداگانه، مستقیم روی روتر شما در حال اجراست. اگر در هر مرحله سوال یا مشکلی داشتید، در بخش دیدگاه‌ها با ما در میون بذارید.

موفق باشید 🌟 تیم افراتیک

دیدگاهتان را بنویسید