آموزش راهاندازی Beszel برای مانیتورینگ سبک سرور؛ نظارت بر VPS بدون مصرف منابع سنگین
اگر برای مانیتورینگ سرور مجازی، سرور لینوکس یا کانتینرهای Docker به داشبوردی سبک نیاز دارید، Beszel یکی از گزینههای جالب است. برخلاف بعضی پلتفرمهای مانیتورینگ که برای راهاندازی به چند سرویس، دیتابیس و تنظیمات نسبتاً سنگین نیاز دارند، Beszel با معماری ساده Hub و Agent کار میکند و میتوان چند سرور را از یک پنل مرکزی زیر نظر گرفت.
در این آموزش، Beszel را روی یک VPS لینوکسی راهاندازی میکنیم، اولین سرور را به آن متصل میکنیم و روش مانیتورینگ CPU، حافظه، دیسک، شبکه و کانتینرهای Docker را بررسی میکنیم. این ساختار برای مدیران سرور، توسعهدهندگان، صاحبان سایت و حتی کسانی که چند VPS دارند و نمیخواهند برای هر سرور جداگانه وضعیت منابع را بررسی کنند، کاربردی است.
📌 نکته: این آموزش براساس ساختار فعلی Beszel در سال ۲۰۲۶ نوشته شده است. Beszel از Hub مرکزی و Agent روی سرورهای تحت مانیتورینگ استفاده میکند و امکان اجرای هر دو بخش با Docker یا فایل باینری وجود دارد.
Beszel چیست و چه کاری انجام میدهد؟
Beszel یک پلتفرم مانیتورینگ سرور با رابط وب است. در سادهترین معماری، یک Beszel Hub دارید که داشبورد اصلی را در اختیار شما قرار میدهد و روی سرورهایی که قرار است مانیتور شوند، Beszel Agent اجرا میشود.
Agent اطلاعات مربوط به وضعیت سرور را جمعآوری میکند و Hub آنها را در قالب نمودارها و گزارشهای قابلفهم نمایش میدهد. به این ترتیب لازم نیست برای مشاهده وضعیت هر سرور دائماً با SSH وارد آن شوید و دستورهایی مانند top، free، df یا docker stats را اجرا کنید.
| قابلیت | کاربرد |
|---|---|
| CPU | بررسی میزان مصرف پردازنده سرور |
| RAM | مشاهده مصرف حافظه و فشار روی RAM |
| Disk | بررسی فضای ذخیرهسازی و فایلسیستمها |
| Network | مشاهده وضعیت و مصرف شبکه |
| Docker | مانیتورینگ منابع مصرفی کانتینرها |
| Alerts | دریافت هشدار هنگام عبور شاخصها از محدوده موردنظر |
Beszel برای چه سرورهایی مناسب است؟
Beszel فقط برای سرورهای قدرتمند ساخته نشده است. اتفاقاً یکی از کاربردهای مناسب آن، مانیتورینگ VPSهایی است که نمیخواهید بخش قابلتوجهی از منابعشان صرف خود سیستم مانیتورینگ شود.
برای مثال میتوانید یک Hub مرکزی داشته باشید و Agent را روی چند سرور مجازی ایران، سرورهای خارجی، ماشینهای Docker و حتی سیستمهای دیگر اجرا کنید. این مدل برای شرکتهایی که چند سرویس روی سرورهای مختلف دارند نیز کاربردی است؛ چون وضعیت همه ماشینها از یک داشبورد قابل مشاهده خواهد بود.
معماری Beszel؛ Hub و Agent چه تفاوتی دارند؟
Beszel Hub پنل مرکزی شما است. حساب کاربری، سرورها، نمودارها، تنظیمات و اطلاعات مانیتورینگ از این بخش مدیریت میشوند.
Beszel Agent روی ماشینی اجرا میشود که میخواهید اطلاعات آن را جمعآوری کنید. بنابراین اگر ۱۰ VPS داشته باشید، میتوانید Hub را روی یک سرور قرار دهید و Agent را روی هر ۱۰ سرور اجرا کنید.
در محیطهای واقعی بهتر است Hub را روی دامنه یا زیردامنه اختصاصی قرار دهید و دسترسی وب آن را با HTTPS محافظت کنید. همچنین Agentها را فقط از مسیر موردنیاز قابل دسترس نگه دارید.
پیشنیازهای نصب Beszel روی VPS
در این آموزش فرض میکنیم یک VPS لینوکسی مبتنی بر Ubuntu دارید و Docker و Docker Compose روی آن نصب شدهاند. برای بررسی وضعیت Docker میتوانید این دستورات را اجرا کنید:
docker --version docker compose version
اگر هر دو دستور نسخه نصبشده را نمایش دهند، میتوانیم نصب Beszel را ادامه دهیم.
مرحله اول؛ ساخت پوشه Beszel
ابتدا یک مسیر مستقل برای فایلهای Beszel ایجاد کنید:
mkdir -p ~/beszel cd ~/beszel
سپس فایل Compose را بسازید:
nano docker-compose.yml
مرحله دوم؛ نصب Beszel Hub با Docker Compose
برای شروع میتوانیم Hub را با پیکربندی ساده زیر اجرا کنیم:
services:
beszel:
image: henrygd/beszel:latest
container_name: beszel
restart: unless-stopped
ports:
- "8090:8090"
volumes:
- ./beszel_data:/beszel_data
فایل را ذخیره کنید و کانتینر را بالا بیاورید:
docker compose up -d
حالا وضعیت کانتینر را بررسی کنید:
docker ps
اگر کانتینر Beszel در وضعیت Up باشد، Hub اجرا شده است. در حالت اولیه میتوانید پنل را از طریق IP سرور و پورت 8090 باز کنید.
⚠️ نکته امنیتی: استفاده دائمی از IP و پورت 8090 برای پنل مدیریتی پیشنهاد نمیشود. برای محیط عملیاتی بهتر است یک دامنه یا زیردامنه به Hub متصل کنید و با Nginx یا Reverse Proxy دیگر، HTTPS را فعال کنید.
مرحله سوم؛ ساخت حساب مدیر Beszel
پس از اولین ورود به پنل، Beszel از شما میخواهد حساب مدیریتی ایجاد کنید. اطلاعات ورود قوی انتخاب کنید؛ زیرا این داشبورد وضعیت زیرساخت و سرورهای شما را نمایش میدهد.
بعد از ورود، داشبورد آماده اضافهکردن اولین System خواهد بود.
مرحله چهارم؛ اضافه کردن اولین سرور
در پنل Beszel روی Add System کلیک کنید. برای سرور یک نام مشخص مانند Iran-VPS-01 یا Docker-Production انتخاب کنید.
Beszel اطلاعات لازم برای اتصال Agent را در اختیار شما قرار میدهد. در نسخههای جدید، علاوه بر کلید عمومی، امکان استفاده از Token نیز وجود دارد. بهتر است مقادیر اتصال را مستقیماً از پنل خودتان کپی کنید تا Agent دقیقاً با Hub همان نصب هماهنگ شود.
مرحله پنجم؛ نصب Beszel Agent روی سرور
برای Agent نیز میتوان از Docker استفاده کرد. نمونه ساختار آن به شکل زیر است؛ اما مقادیر KEY، TOKEN و HUB_URL باید با اطلاعات پنل خودتان جایگزین شوند.
services:
beszel-agent:
image: henrygd/beszel-agent:latest
container_name: beszel-agent
restart: unless-stopped
network_mode: host
volumes:
- ./beszel_agent_data:/var/lib/beszel-agent
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
LISTEN: 45876
KEY: "<public-key>"
TOKEN: "<token>"
HUB_URL: "<hub-url>"
بعد از قرار دادن مقادیر واقعی، Agent را اجرا کنید:
docker compose up -d
برای مشاهده وضعیت:
docker ps
و اگر Agent متصل نشد، لاگ آن را بررسی کنید:
docker logs beszel-agent --tail 100
چرا Beszel Agent از Host Network استفاده میکند؟
در روش Docker، حالت network_mode: host به Agent اجازه میدهد آمار رابطهای شبکه میزبان را بهتر مشاهده کند. در نتیجه باید توجه کنید که Listener مربوط به Agent نیز در سطح میزبان قابل دسترسی خواهد بود.
اگر Hub و Agent در دو سرور مختلف قرار دارند، فقط مسیر ارتباطی موردنیاز را در فایروال باز کنید. بازکردن بدون محدودیت پورت Agent برای تمام اینترنت انتخاب مناسبی نیست.
مانیتورینگ Docker با Beszel
اگر روی VPS از Docker استفاده میکنید، یکی از بخشهای کاربردی Beszel مشاهده وضعیت کانتینرها است. در نمونه Compose بالا، Docker Socket بهصورت Read-only در اختیار Agent قرار گرفته است:
/var/run/docker.sock:/var/run/docker.sock:ro
با این تنظیم میتوانید اطلاعات مربوط به کانتینرهای Docker را در داشبورد مشاهده کنید. البته Docker Socket یک رابط حساس مدیریتی است؛ بنابراین دسترسی به Agent و خود سرور باید محدود و کنترلشده باشد.
مانیتورینگ چند VPS با یک Beszel Hub
لازم نیست روی هر VPS یک داشبورد جداگانه داشته باشید. معماری مناسبتر این است که یک Hub مرکزی ایجاد کنید و Agent را روی سرورهای دیگر قرار دهید.
| سرور | نقش |
|---|---|
| VPS مانیتورینگ | Beszel Hub |
| VPS وبسایت | Beszel Agent |
| VPS Docker | Beszel Agent |
| VPS دیتابیس | Beszel Agent |
این معماری مخصوصاً زمانی مفید است که سرورها در دیتاسنترها یا موقعیتهای مختلف قرار دارند و میخواهید یک نمای مرکزی از وضعیت زیرساخت داشته باشید.
تنظیم Reverse Proxy و HTTPS برای Beszel
برای استفاده واقعی، بهتر است پنل را مستقیماً روی پورت 8090 در اینترنت رها نکنید. یک زیردامنه مانند monitor.example.com بسازید، آن را به IP سرور متصل کنید و سپس Nginx را بهعنوان Reverse Proxy در مقابل Beszel قرار دهید.
در این حالت ارتباط کاربر با پنل از طریق HTTPS برقرار میشود و میتوانید دسترسی مستقیم به پورت داخلی Beszel را نیز محدود کنید. در شبکههای حساستر، دسترسی به پنل مانیتورینگ را میتوان پشت VPN یا شبکه خصوصی قرار داد.
پشتیبانگیری از Beszel
داشبورد مانیتورینگ نیز بخشی از زیرساخت شما است و بهتر است از دادههای آن نسخه پشتیبان داشته باشید. Beszel امکان Backup از داخل Hub را دارد و میتواند نسخه پشتیبان را روی دیسک یا فضای ذخیرهسازی سازگار با S3 نگه دارد.
روش دیگر این است که Hub را متوقف کرده و از پوشه beszel_data نسخه پشتیبان تهیه کنید. اگر از Docker Compose استفاده کرده باشید، این همان مسیری است که برای ماندگاری دادههای Hub به Volume متصل شده است.
مشکل Agent به Hub متصل نمیشود
اگر System در داشبورد قرمز شد یا اطلاعات دریافت نشد، چند مورد را بهترتیب بررسی کنید.
🔹 ابتدا مطمئن شوید Agent واقعاً در حال اجرا است.
🔹 مقدار KEY و TOKEN را دوباره بررسی کنید.
🔹 HUB_URL باید به آدرس درست Hub اشاره کند.
🔹 فایروال و مسیر شبکه بین Hub و Agent را بررسی کنید.
🔹 لاگ Agent را برای خطاهای اتصال مشاهده کنید.
docker logs beszel-agent --tail 100
مشکل localhost هنگام اجرای Hub و Agent با Docker
یکی از خطاهای قابلتوجه این است که وقتی Hub و Agent هر دو داخل Docker و روی یک سیستم اجرا میشوند، استفاده ساده از localhost الزاماً آنها را به یکدیگر متصل نمیکند؛ چون کانتینرها میتوانند در شبکههای جداگانه باشند.
مستندات Beszel برای سناریوی Hub و Agent محلی استفاده از Unix Socket را پیشنهاد میکنند. اگر قصد دارید هر دو را روی یک VPS اجرا کنید، بهتر است نمونه Compose رسمی مربوط به Local Agent را از مستندات همان نسخه بردارید.
Beszel یا Prometheus و Grafana؟
این دو رویکرد دقیقاً یک هدف ندارند. Prometheus و Grafana برای زیرساختهای بزرگ، جمعآوری Metricهای سفارشی و داشبوردهای پیچیده انعطاف بسیار زیادی دارند؛ اما همین انعطاف باعث میشود راهاندازی و نگهداری آنها برای یک کاربر با چند VPS بیشتر از نیاز واقعی باشد.
Beszel برای سناریویی جذاب است که میخواهید بدون ساخت یک Monitoring Stack بزرگ، وضعیت چند سرور و کانتینر را سریع ببینید. اگر بعدها به Metricهای سفارشی گسترده، Exporterهای متعدد یا تحلیل پیچیده نیاز پیدا کردید، میتوانید به سراغ ابزارهای سنگینتر بروید.
آیا Beszel برای VPS کوچک مناسب است؟
اگر هدف شما مانیتورینگ ساده چند VPS است، Beszel میتواند انتخاب مناسبی باشد؛ بهخصوص زمانی که نمیخواهید یک مجموعه بزرگ از سرویسهای مانیتورینگ را فقط برای مشاهده CPU، RAM، Disk، Network و Docker نگهداری کنید.
برای سرورهای عملیاتی بهتر است Hub را از سرویسهای بسیار حساس جدا کنید. در زیرساخت چندسروری حتی میتوانید یک VPS کوچک را به مانیتورینگ اختصاص دهید تا اگر یکی از سرورهای اصلی دچار مشکل شد، داشبورد مانیتورینگ همچنان در دسترس باشد.
امنیت Beszel را جدی بگیرید
مانیتورینگ به اطلاعات مهمی از زیرساخت دسترسی دارد. بنابراین خود سیستم مانیتورینگ نباید تبدیل به نقطه ضعف شبکه شود.
🔹 پنل Hub را با HTTPS در دسترس قرار دهید.
🔹 پورت Agent را بدون نیاز برای کل اینترنت باز نکنید.
🔹 KEY و TOKEN را مانند اطلاعات حساس نگهداری کنید.
🔹 دسترسی به Docker Socket را فقط در اختیار سرویسهای مورداعتماد قرار دهید.
🔹 از دادههای Hub بهصورت منظم Backup بگیرید.
🔹 در زیرساختهای حساس، ارتباط Hub و Agent را از شبکه خصوصی یا VPN عبور دهید.
جمعبندی
Beszel راهی ساده برای ساخت یک داشبورد مرکزی مانیتورینگ است. با اجرای Hub روی یک سرور و نصب Agent روی VPSهای دیگر میتوانید مصرف CPU، RAM، فضای دیسک، شبکه و وضعیت کانتینرهای Docker را از یک نقطه بررسی کنید. برای کاربران و شرکتهایی که چند سرور دارند اما به پیچیدگی یک Monitoring Stack بزرگ نیاز ندارند، این معماری میتواند انتخاب مناسبی باشد. مهمترین بخش پس از نصب، امنکردن ارتباط Hub و Agent، فعالکردن HTTPS و تهیه نسخه پشتیبان از دادههای مانیتورینگ است.
📞 تماس با پشتیبانی: 021-91302467 | ایرانیکاسرور
سوالات متداول درباره Beszel
آیا Beszel رایگان است؟
Beszel یک پروژه متنباز است و میتوانید Hub و Agent آن را روی زیرساخت خودتان اجرا کنید.
آیا Beszel میتواند چند سرور را مانیتور کند؟
بله. یکی از کاربردهای اصلی معماری Hub و Agent همین است که چند سرور را به یک Hub مرکزی متصل کنید و وضعیت آنها را از یک داشبورد مشاهده کنید.
آیا Beszel کانتینرهای Docker را هم مانیتور میکند؟
بله. با در اختیار قرار دادن Docker Socket برای Agent میتوان اطلاعات مربوط به کانتینرها را نیز در Beszel مشاهده کرد.
پورت پیشفرض Beszel Agent چیست؟
در تنظیمات فعلی Agent، پورت پیشفرض Listener برابر با 45876 است. اگر از این پورت استفاده میکنید، دسترسی فایروال را فقط به مبداهای موردنیاز محدود کنید.
آیا میتوان Beszel را بدون Docker نصب کرد؟
بله. Hub و Agent امکان اجرا بهصورت باینری را نیز دارند. برای Agent حتی اسکریپت نصب لینوکسی وجود دارد که سرویس موردنیاز برای اجرای خودکار پس از Reboot را ایجاد میکند.
برای مانیتورینگ چند VPS بهتر است Hub را کجا نصب کنیم؟
برای زیرساخت چندسروری بهتر است Hub روی سیستمی پایدار قرار بگیرد که مستقل از سرویسهای اصلی باشد. در این حالت خرابی یکی از سرورهای تحت مانیتورینگ باعث از دست رفتن همزمان داشبورد مرکزی نمیشود.
منابع رسمی برای مطالعه بیشتر
🔹 مستندات رسمی Beszel؛ بخش Getting Started و نصب Hub و Agent
🔹 مخزن رسمی Beszel در GitHub و صفحه Releases برای بررسی نسخههای جدید
🔹 راهنمای Common Issues در مستندات Beszel برای عیبیابی ارتباط Hub و Agent






دیدگاهها (۰)