مركز مراقبة موارد الخادم خفيف الوزن مع البيانات التاريخية وإحصائيات عامل الإرساء والتنبيهات.
خفيفة الوزن : أصغر حجمًا وأقل استهلاكًا للموارد من الحلول الرائدة.
بسيط : إعداد سهل، لا حاجة للتعرض للإنترنت العام.
إحصائيات Docker : يتتبع سجل استخدام وحدة المعالجة المركزية والذاكرة والشبكة لكل حاوية.
التنبيهات : تنبيهات قابلة للتكوين لوحدة المعالجة المركزية والذاكرة والقرص وعرض النطاق الترددي ودرجة الحرارة وحالة النظام.
متعدد المستخدمين : يقوم كل مستخدم بإدارة أنظمته الخاصة. يمكن للمسؤولين مشاركة الأنظمة بين المستخدمين.
OAuth / OIDC : يدعم موفري OAuth2 المتعددين. يمكن تعطيل مصادقة كلمة المرور.
النسخ الاحتياطية التلقائية : حفظ البيانات واستعادتها من القرص أو وحدة التخزين المتوافقة مع S3.
REST API : استخدم بياناتك أو قم بتحديثها في البرامج النصية والتطبيقات الخاصة بك.
يتكون Beszel من عنصرين رئيسيين: المحور والوكيل.
Hub: تطبيق ويب يوفر لوحة معلومات لعرض الأنظمة المتصلة وإدارتها. بنيت على PocketBase.
الوكيل: يعمل على كل نظام تريد مراقبته، مما يؤدي إلى إنشاء خادم SSH صغير لتوصيل مقاييس النظام إلى المركز.
إذا لم تكن تستخدم عامل الإرساء، فتخط الخطوات من 4 إلى 5 وقم بتشغيل الوكيل باستخدام الملف الثنائي.
ابدأ تشغيل المحور (انظر التثبيت).
افتح http://localhost:8090 وقم بإنشاء مستخدم مسؤول.
انقر فوق "إضافة النظام". أدخل اسم ومضيف النظام الذي تريد مراقبته.
انقر فوق "نسخ عامل الإرساء" لنسخ ملف docker-compose.yml الخاص بالوكيل إلى الحافظة الخاصة بك.
في نظام الوكيل، قم بإنشاء ملف الإنشاء وتشغيل docker compose up
لبدء تشغيل الوكيل.
مرة أخرى في المركز، انقر فوق الزر "إضافة نظام" في مربع الحوار لإنهاء إضافة النظام.
إذا سارت الأمور على ما يرام، يجب أن يتحول النظام إلى اللون الأخضر. إذا تحول إلى اللون الأحمر، فراجع صفحة السجلات وارجع إلى نصائح استكشاف الأخطاء وإصلاحها.
من أجل البرنامج التعليمي باللغة الفرنسية، راجع https://belginux.com/installer-beszel-avec-docker/
يمكنك تثبيت المحور والوكيل كثنائيات فردية أو باستخدام Docker.
Hub : راجع مثال ملف docker-compose.yml.
الوكيل : يوفر المحور محتوى إنشاء للوكيل، ولكن يمكنك أيضًا الرجوع إلى مثال ملف docker-compose.yml.
يستخدم الوكيل وضع الشبكة المضيفة للوصول إلى إحصائيات واجهة الشبكة، والتي تكشف المنفذ تلقائيًا. قم بتغيير المنفذ باستخدام متغير البيئة إذا لزم الأمر.
إذا لم تكن بحاجة إلى إحصائيات الشبكة، فقم بإزالة هذا السطر من ملف الإنشاء وقم بتعيين المنفذ يدويًا.
نصيحة
إذا كنت تستخدم Linux، فراجع الأدلة/systemd.md للحصول على برنامج نصي لتثبيت الموزع أو الوكيل كخدمة نظام. تم تضمين هذا أيضًا في واجهة مستخدم الويب.
قم بتنزيل أحدث الثنائيات وتشغيلها من صفحة الإصدارات أو استخدم الأوامر أدناه.
الضفيرة -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/ Armv7l/arm/' |.sed 's/aarch64/arm64/').tar.gz" | القطران -xz -O الحافة | Tee ./beszel >/dev/null && chmod +x beszel && ls beszel
تشغيل المحور مباشرة:
./beszel تخدم
الضفيرة -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel-agent_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed ' s/armv7l/arm/' |.sed 's/aarch64/arm64/').tar.gz" | القطران -xz -O beszel-agent | Tee ./beszel-agent >/dev/null && chmod +x beszel-agent && ls beszel-agent
تشغيل الوكيل مباشرة:
PORT=45876 KEY="{PASTE_YOUR_KEY}" ./beszel-agent
استخدم ./beszel update
./beszel-agent update
للتحديث إلى الإصدار الأحدث.
اسم | تقصير | وصف |
---|---|---|
CSP | غير محدد | يضيف رأس سياسة أمان المحتوى بهذه القيمة. |
DISABLE_PASSWORD_AUTH | خطأ شنيع | تعطيل مصادقة كلمة المرور. |
اسم | تقصير | وصف |
---|---|---|
DOCKER_HOST | غير محدد | يتجاوز مضيف عامل الإرساء (docker.sock) في حالة استخدام وكيل. 1 |
EXTRA_FILESYSTEMS | غير محدد | راجع مراقبة الأقراص أو الأقسام أو عمليات التثبيت عن بعد الإضافية |
FILESYSTEM | غير محدد | الجهاز أو القسم أو نقطة التثبيت المستخدمة لإحصائيات القرص الجذر. |
KEY | غير محدد | مفتاح SSH العام لاستخدامه في المصادقة. المقدمة في المحور. |
LOG_LEVEL | معلومات | مستوى التسجيل. القيم الصالحة: "تصحيح"، "معلومات"، "تحذير"، "خطأ". |
MEM_CALC | غير محدد | يتجاوز حساب الذاكرة الافتراضية. 2 |
NICS | غير محدد | القائمة البيضاء لواجهات الشبكة لمراقبة مخطط النطاق الترددي. |
PORT | 45876 | المنفذ أو العنوان: منفذ للاستماع إليه. |
SENSORS | غير محدد | القائمة البيضاء لأجهزة استشعار درجة الحرارة المراد مراقبتها. |
SYS_SENSORS | غير محدد | يتجاوز مسار النظام لأجهزة الاستشعار. انظر رقم 160. |
يدعم Beszel OpenID Connect والعديد من موفري مصادقة OAuth2 (انظر القائمة أدناه).
تفضل بزيارة صفحة "موفرو المصادقة" لتمكين المزود الخاص بك. يجب أن يكون عنوان URL لإعادة التوجيه/رد الاتصال هو
.
تفاحة
بيتبوكيت
الفتنة
فيسبوك
جيتيا
جيتي
جيثب
جيتلاب
جوجل
انستغرام
كاكاو
الدردشة الحية
com.mailcow
مايكروسوفت
اتصال OpenID
باتريون (الإصدار الثاني)
سبوتيفي
سترافا
نشل
تغريد
VK
ياندكس
تختلف طريقة إضافة أقراص إضافية وفقًا لأسلوب النشر الخاص بك.
استخدم lsblk
للعثور على الأسماء ونقاط التثبيت الخاصة بأقسامك. إذا كانت لديك مشكلة، فتحقق من سجلات الوكيل.
ملاحظة: ستستخدم المخططات اسم الجهاز أو القسم إذا كان متاحًا، وتعود إلى اسم المجلد. لن تحصل على إحصائيات الإدخال/الإخراج لمحركات الأقراص المثبتة على الشبكة.
قم بتحميل مجلد من نظام الملفات الهدف في دليل /extra-filesystems
للحاوية. على سبيل المثال:
مجلدات: - /mnt/disk1/.beszel:/extra-filesystems/sdb1:ro - /dev/mmcblk0/.beszel:/extra-filesystems/mmcblk0:ro
قم بتعيين متغير البيئة EXTRA_FILESYSTEMS
إلى قائمة مفصولة بفواصل من الأجهزة أو الأقسام أو نقاط التثبيت المطلوب مراقبتها. على سبيل المثال:
EXTRA_FILESYSTEMS="sdb,sdc1,mmcblk0,/mnt/network-share"
نظرًا لأن Beszel مبني على PocketBase، يمكنك استخدام واجهات برمجة تطبيقات الويب PocketBase ومجموعات SDK من جانب العميل لقراءة البيانات أو تحديثها من خارج Beszel نفسها.
يتواصل المحور والوكيل عبر SSH، لذلك لا يحتاجان إلى الاتصال بالإنترنت. حتى إذا قمت بوضع بوابة مصادقة خارجية، مثل Authelia، أمام لوحة الوصل، فلن يؤدي ذلك إلى تعطيل أو قطع الاتصال بين لوحة الوصل والوكيل.
عندما يتم تشغيل المحور لأول مرة، فإنه يقوم بإنشاء زوج مفاتيح ED25519.
تم تكوين خادم SSH الخاص بالوكيل لقبول الاتصالات باستخدام هذا المفتاح فقط. فهو لا يوفر محطة زائفة ولا يقبل الإدخال، لذلك من المستحيل تنفيذ الأوامر على الوكيل حتى لو تم اختراق مفتاحك الخاص.
يتمتع المسؤولون بإمكانية الوصول إلى الروابط الإضافية في المركز، مثل النسخ الاحتياطية وإعدادات SMTP وما إلى ذلك. المستخدم الأول الذي يتم إنشاؤه هو مسؤول تلقائيًا ويمكنه تسجيل الدخول إلى PocketBase.
لا يؤدي تغيير دور المستخدم إلى إنشاء حساب مسؤول PocketBase له. للقيام بذلك، انتقل إلى الإعدادات > المسؤولون في PocketBase وقم بإضافتهم يدويًا.
يمكن للمستخدمين إنشاء الأنظمة والتنبيهات الخاصة بهم. لا تظهر الارتباطات إلى إعدادات PocketBase في لوحة الوصل.
لا يمكن لمستخدمي القراءة فقط إنشاء أنظمة، ولكن يمكنهم عرض أي نظام تمت مشاركته معهم بواسطة المسؤول وإنشاء التنبيهات.
بافتراض أن الوكيل قيد التشغيل، فمن المحتمل أن يكون الاتصال محظورًا بواسطة جدار الحماية. لديك خياران:
قم بإضافة قاعدة واردة إلى جدار (جدران) الحماية الخاصة بنظام الوكيل للسماح باتصالات TCP بالمنفذ. تحقق من أي جدران حماية نشطة، مثل iptables، وإعدادات جدار الحماية لموفر الخدمة السحابية الخاص بك، إن أمكن.
وبدلاً من ذلك، استخدم برامج مثل Cloudflare Tunnel، أو WireGuard، أو Tailscale لتجاوز جدار الحماية الخاص بك بشكل آمن.
يمكنك اختبار الاتصال عن طريق تشغيل telnet
.
في حالة استخدام وضع الشبكة المضيفة للوكيل وليس للمركز، أضف نظامك باستخدام اسم المضيف host.docker.internal
، والذي يتحول إلى عنوان IP الداخلي الذي يستخدمه المضيف. راجع المثال docker-compose.yml.
إذا كنت تستخدم وضع الشبكة المضيفة لكليهما، فيمكنك استخدام localhost
كاسم المضيف.
بخلاف ذلك، استخدم container_name
الوكيل كاسم مضيف إذا كان كلاهما في نفس شبكة Docker.
حدد نظام الملفات/الجهاز/القسم لإحصائيات القرص الجذر باستخدام متغير البيئة FILESYSTEM
.
إذا لم يتم تعيينه، فسيحاول الوكيل العثور على القسم المثبت عليه /
واستخدامه. قد لا يعمل هذا بشكل صحيح في الحاوية، لذا يوصى بتعيين هذه القيمة. استخدم إحدى الطرق التالية للعثور على نظام الملفات الصحيح:
قم بتشغيل lsblk
واختر خيارًا ضمن "NAME".
قم بتشغيل df -h
واختر خيارًا ضمن "نظام الملفات".
قم بتشغيل sudo fdisk -l
وحدد خيارًا ضمن "الجهاز".
إذا أظهرت مخططات الحاوية بيانات فارغة أو لم تظهر على الإطلاق، فقد تحتاج إلى تمكين محاسبة ذاكرة cgroup. للتحقق، قم بتشغيل docker stats
. إذا أظهر ذلك عدم استخدام الذاكرة، فاتبع هذا الدليل لإصلاح المشكلة:
https://akashrajpurohit.com/blog/resolve-missing-memory-stats-in-docker-stats-on-raspberry-pi/
حاول ترقية إصدار Docker الخاص بك على نظام الوكيل. تمت ملاحظة هذه المشكلة على جهاز يعمل بالإصدار 24 وتم حلها عن طريق الترقية إلى الإصدار 27.
يتم إنشاء السجلات لفترات زمنية أطول عن طريق حساب متوسط الإحصائيات من فترات زمنية أقصر. يجب أن يعمل الوكيل دون انقطاع لمجموعة كاملة من البيانات لملء هذه السجلات.
سيؤدي الإيقاف المؤقت/إلغاء الإيقاف المؤقت للعامل لمدة تزيد عن دقيقة واحدة إلى عدم اكتمال البيانات، مما يؤدي إلى إعادة ضبط التوقيت للفاصل الزمني الحالي.
تمت كتابة كل من المركز والوكيل بلغة Go، بحيث يمكنك بسهولة إنشاءهما بنفسك، أو تجميعهما بشكل مشترك لمنصات مختلفة. الرجاء تثبيت Go أولاً إذا لم تكن قد قمت بذلك بالفعل.
قم بتشغيل make
in /beszel
. يؤدي هذا إلى إنشاء دليل build
يحتوي على الثنائيات.
إطار القرص المضغوط && صنع
يمكنك أيضًا إنشاء منصات مختلفة:
جعل OS=freebsd ARCH=arm64
شاهد قائمة بالخيارات الصالحة عن طريق تشغيل go tool dist list
.
إطار القرص المضغوط && اذهب مرتبًا
انتقل إلى beszel/cmd/agent
وقم بتشغيل الأمر التالي لإنشاء ملف ثنائي في الدليل الحالي:
CGO_ENABLED=0 اذهب للبناء -ldflags "-w -s" .
يقوم المركز بتضمين واجهة مستخدم الويب في الملف الثنائي، لذلك يجب عليك إنشاء موقع الويب أولاً. أنا أستخدم Bun، ولكن يمكنك استخدام Node.js إذا كنت تفضل ذلك:
إطار القرص المضغوط/الموقع تثبيت كعكة بناء كعكة المدى
ثم في beszel/cmd/hub
:
CGO_ENABLED=0 اذهب للبناء -ldflags "-w -s" .
يمكنك الترجمة المشتركة لمنصات مختلفة باستخدام متغيرات البيئة GOOS
و GOARCH
.
على سبيل المثال، لإنشاء FreeBSD ARM64:
GOOS=freebsd GOARCH=arm64 CGO_ENABLED=0 انتقل إلى البناء -ldflags "-w -s" .
شاهد قائمة بالخيارات الصالحة عن طريق تشغيل go tool dist list
.
نرحب بالمساهمات، ولكن من الجيد أن تتواصل معنا أولاً في مناقشة/مسألة إذا كنت تخطط للقيام بأي شيء مهم.
نحن نستخدم Crowdin لإدارة الترجمات. نقدر اللغات الجديدة أو التحسينات على الترجمات الحالية!
سيكون لدينا المزيد من المعلومات المفيدة حول المساهمة في Beszel في المستقبل القريب.
Beszel مرخص بموجب ترخيص MIT. راجع ملف الترخيص لمزيد من التفاصيل.
يحتاج Beszel فقط إلى الوصول لقراءة معلومات الحاوية. بالنسبة إلى linuxserver/docker-socket-proxy، يمكنك تعيين CONTAINERS=1
. ↩
تعتمد القيمة الافتراضية للذاكرة المستخدمة على حساب gopsutil المستخدم، والذي يجب أن يتماشى بشكل وثيق مع free
. اضبط MEM_CALC
على htop
للتوافق مع حسابات htop. ↩