لوحة المراقبة تحتاج أن تقرأ حالة السيرفر: المعالج والذاكرة والتخزين وحالة الأجهزة. والطريق الأسهل هو كتابة حساب root في إعداداتها وإنهاء الأمر. لكن هذا يعني أن كلمة مرور تتحكم في السيرفر كله أصبحت محفوظة داخل أداة أخرى، وربما على جهاز آخر.
لنفترض أن هذه الأداة اختُرقت، أو تسرّب ملف إعدادها، أو أن فنياً أخطأ في سكربت. بحساب كامل الصلاحيات يصبح أي من هذه الأخطاء قادراً على إيقاف أجهزتك أو حذفها. أما بحساب قراءة فقط فأسوأ ما يحدث أن يطّلع أحد على معلومات تشغيلية. الفرق كبير، والإعداد لا يستغرق سوى أوامر قليلة.
مبدأ أقل صلاحية
القاعدة بسيطة: أعطِ كل حساب ما يحتاجه لعمله فقط. أداة المراقبة تقرأ ولا تغيّر، فلا سبب لأن تملك قدرة التغيير. وفي Proxmox تتكوّن الصلاحية من ثلاثة أجزاء:
- من: مستخدم أو مجموعة أو رمز API.
- ماذا: دور (Role) يجمع مجموعة امتيازات.
- أين: مسار مثل
/للكل، أو/pool/clientsلمجموعة محددة.

الدور الجاهز: PVEAuditor
لا تحتاج اختراع دور جديد. Proxmox يأتي بدور PVEAuditor، وامتيازاته كلها من نوع Audit، أي اطّلاع: لا تشغيل ولا إيقاف ولا حذف ولا تعديل ولا فتح لوحة تحكم الأجهزة.

| الحساب | يقرأ الحالة | يوقف ويحذف الأجهزة | يناسب أداة المراقبة؟ |
|---|---|---|---|
| root@pam | نعم | نعم | لا إطلاقاً |
| مستخدم بدور PVEAdmin | نعم | نعم | لا |
| مستخدم بدور PVEAuditor | نعم | لا | مقبول، وكلمة مروره في ملف الإعداد |
| رمز API بدور PVEAuditor | نعم | لا | الخيار الأنسب |
الإعداد خطوة بخطوة
نفّذ الأوامر التالية من طرفية السيرفر. الأسماء هنا افتراضية: المستخدم monitor@pve والرمز grafana.
# 1) مستخدم بلا كلمة مرور ولا دخول تفاعلي
pveum user add monitor@pve --comment "read-only monitoring"
# 2) امنحه دور القراءة على كل المسارات
pveum acl modify / --users monitor@pve --roles PVEAuditor
# 3) أنشئ رمز API مع فصل الامتيازات
pveum user token add monitor@pve grafana --privsep 1
# 4) امنح الرمز نفسه الدور
pveum acl modify / --tokens 'monitor@pve!grafana' --roles PVEAuditor
لماذا الخطوة الرابعة؟ مع privsep=1 لا يرث الرمز صلاحيات صاحبه تلقائياً، بل يحتاج صلاحية خاصة به، وتكون صلاحيته الفعلية ما يشترك فيه الاثنان. هذا يتيح إلغاء الرمز أو تقليصه دون المساس بالمستخدم. والسر يظهر مرة واحدة عند الإنشاء، فاحفظه في مدير أسرار.
تحقق: جرّب القراءة ثم جرّب الممنوع
لا تفترض أن الإعداد صحيح. استعمل الرمز لقراءة قائمة العقد، ثم حاول إيقاف جهاز تجريبي. يجب أن تنجح الأولى وتُرفض الثانية:
# يجب أن يعيد بيانات
curl -H "Authorization: PVEAPIToken=monitor@pve!grafana=<SECRET>" \
https://10.0.0.5:8006/api2/json/nodes
# يجب أن يُرفض بخطأ صلاحية (403)
curl -X POST -H "Authorization: PVEAPIToken=monitor@pve!grafana=<SECRET>" \
https://10.0.0.5:8006/api2/json/nodes/pve-01/qemu/101/status/stop
إن كان السيرفر بشهادة ذاتية التوقيع فثبّت شهادته لدى أداة المراقبة، أفضل من تعطيل التحقق نهائياً. واعرض ما يملكه الحساب فعلياً بالأمر pveum user permissions monitor@pve.
ضيّق النطاق إن أمكن
المراقب العام يحتاج المسار /، لكن الفني المسؤول عن مجموعة أجهزة لا يحتاج رؤية كل شيء. ضع الأجهزة في Pool وامنحه صلاحية عليها فقط.

وتذكّر أن القراءة ليست بلا ثمن. أسماء الأجهزة وإعداداتها معلومات مفيدة لمهاجم. لذلك لا تكشف واجهة Proxmox للإنترنت، واجعل أداة المراقبة تصل إليها عبر شبكة خاصة أو نفق WireGuard، واحصر المصدر المسموح به في الجدار بعنوان أداة المراقبة.
ماذا تراقب بهذا الحساب؟

الهدف من المراقبة أن تعرف أين الخلل بدل التخمين. حين يشتكي المستخدمون من البطء، غالباً لا يكون السبب بعد السيرفر. زمن الشبكة في العراق بين 70 و150ms، بينما يتراوح توليد الصفحة بين 150ms وأكثر من ثانيتين حسب العتاد. المسافة تكلّف عشرات الملّي ثانية والعتاد الضعيف يكلّف آلافاً. لذلك اسأل عن المعالج والتخزين لا عن المدينة وحدها، ودع أرقام المراقبة تحدد لك أيهما يختنق قبل أي قرار ترقية.
ولا تكتفِ بلوحة تنظر إليها حين تتذكر. اربط هذه المؤشرات بتنبيهات واضحة: امتلاء التخزين قبل وصوله إلى الحد الحرج، وتوقف جهاز كان يجب أن يعمل، وارتفاع انتظار القرص لفترة طويلة لا للحظة عابرة. اجعل حدود التنبيه قليلة ومعقولة، فكثرة التنبيهات الكاذبة تدفع الفريق إلى تجاهلها كلها. وقارن الأرقام بين وقت الذروة ووقت الهدوء؛ فذروة شبكات العراق في تجربتنا تكون ظهراً ومن المساء إلى منتصف الليل، وأدنى حمل يكون فجراً. وهكذا تعرف هل المشكلة حمل طبيعي يتكرر كل يوم، أم حدث جديد يحتاج تدخلاً.
لمن تناسب هذه الخدمة؟
- شركة تربط Proxmox بأداة مراقبة مثل Grafana أو Zabbix.
- مدير يريد رؤية حالة السيرفرات دون القدرة على تغييرها بالخطأ.
- مزوّد خدمة يعطي فريق الدعم رؤية محددة لمجموعة أجهزة.
أخطاء شائعة
- استعمال root@pam في أداة المراقبة لأنه «يعمل مباشرة».
- إنشاء الرمز دون منحه صلاحية، فتظهر نتائج فارغة بدل خطأ واضح، ويظن المسؤول أن السيرفر لا يعيد بيانات.
- إيقاف فصل الامتيازات بلا حاجة، فيرث الرمز كل صلاحيات صاحبه.
- حفظ السر في مستودع الكود أو مشاركته في مجموعة محادثة.
- ترك رموز قديمة بلا مراجعة بعد تغيير الأدوات أو خروج الموظفين.
أسئلة شائعة
هل يستطيع حساب PVEAuditor تعديل أي شيء؟
لا، فامتيازاته اطّلاع فقط. لكنه يرى أسماء الأجهزة وإعداداتها، فعامله كحساب يحتاج حماية، لا كحساب بلا قيمة.
هل أحتاج مستخدماً لكل أداة؟
يكفي مستخدم واحد للمراقبة مع رمز منفصل لكل أداة. عند تسرّب رمز تلغيه هو وحده، وتبقى الأدوات الأخرى تعمل.
كيف ألغي الرمز عند الشك؟
احذفه بالأمر pveum user token remove monitor@pve grafana، ثم أنشئ رمزاً جديداً وحدّث أداة المراقبة.
ابنِ مراقبتك على صلاحيات صحيحة
أوامر قليلة تزيل خطراً حقيقياً من بيئتك. ولمزيد من التفصيل في الأدوار اقرأ دليل المستخدمين والصلاحيات في Proxmox. وإن كنت تبحث عن سيرفر تدير صلاحياته بنفسك، فراجع سيرفرات Proxmox أو السيرفرات المخصصة، وتواصل مع فريق المبيعات لاختيار ما يناسب عملك.