مجله افراتیک
آموزش نصب و راه اندازی کانتینر Uptime Kuma در میکروتیک
پیشنیازهای راهاندازی کانتینر 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، ارسال هشدار قطعی به تلگرام هست. برای این کار:
- وارد پنل شوید و از منوی Settings > Notifications، گزینه Setup Notification رو بزنید.
- نوع اعلان رو Telegram انتخاب کنید.
- توکن ربات تلگرام (از @BotFather) و Chat ID رو وارد کنید.
- روی Save بزنید و با دکمه Test از صحت تنظیمات مطمئن بشید.
مدیریت و عیبیابی کانتینر
- مشاهده لاگهای کانتینر:
/log print where topics~"container" - توقف کانتینر:
/container/stop 0 - راهاندازی مجدد: ابتدا
/container/stop 0سپس/container/start 0 - حذف کامل کانتینر:
/container/remove 0(توجه: پوشه Mount حذف نمیشه و دادههاتون باقی میمونه)
جمعبندی
همونطور که دیدید، راهاندازی کانتینر Uptime Kuma روی میکروتیک با چند مرحله ساده شبکهسازی (Bridge و VETH) و تعریف کانتینر انجام میشه و بعد از اون یک ابزار مانیتورینگ حرفهای، بدون نیاز به سرور جداگانه، مستقیم روی روتر شما در حال اجراست. اگر در هر مرحله سوال یا مشکلی داشتید، در بخش دیدگاهها با ما در میون بذارید.
موفق باشید 🌟 تیم افراتیک