SSD Nodes Learn
الأدلة Matt Connorبقلم Matt Connor · آخر تحديث في 2026-07-22

مراقبة Zabbix على Ubuntu 24.04

ثبّت Zabbix 7.0 LTS على Ubuntu 24.04 خطوة بخطوة: أضف المستودع الرسمي، استورد مخطط MySQL، اربط واجهة nginx الأمامية وagent2، ثم أصلح كل خطأ يظهره الإعداد.

ما الذي تبنيه

خادم VPS واحد يعمل بنظام Ubuntu 24.04 ويشغّل حزمة Zabbix 7.0 LTS كاملة: برنامج zabbix-server الخفي (daemon) الذي يستطلع الحالة ويطلق التنبيهات، وقاعدة بيانات MariaDB/MySQL تخزّن كل قياس (metric)، وواجهة أمامية بلغة PHP يقدّمها nginx، وبرنامج zabbix-agent2 الذي يجمع القياسات من الجهاز نفسه. وبمجرد أن يعمل كل ذلك، توجّهه نحو خادم ثانٍ، وتربط به قالبًا (template)، فتحصل على رسالة بريد إلكتروني في اللحظة التي يمتلئ فيها قرص أو يتعطل فيها إحدى الخدمات.

Zabbix أثقل من مجرد أداة لصفحة حالة: إنه نظام حقيقي للسلاسل الزمنية (time-series) بقوالب ومحفّزات (triggers) وتصعيد (escalation) واحتفاظ بالتاريخ. ومعظم المتاعب تكمن في ثلاث خطوات يتخطاها الناس: استيراد مخطط قاعدة البيانات، وضبط كلمة مرور قاعدة البيانات التي يقرؤها الخادم فعلًا، وإلغاء التعليق عن سطرين في إعدادات nginx. أنجز هذه الخطوات بشكل صحيح، وما تبقى مجرد معالج (wizard). إن كنت تريد فقط فحوصات التشغيل والتوقف وصفحة حالة قابلة للمشاركة، فإن مراقب حالة خفيف من Uptime Kuma يقوم بذلك في حاوية واحدة؛ أما Zabbix فيستحق ثقله حين تريد عتبات لكل قياس وتصعيدًا عبر عدد كبير من المضيفين.

اعتمد على سلسلة 7.0 LTS: فخادمها وواجهتها الأمامية وagent2 ومخططها مرقّمة إصداريًا معًا، وتحصل على تصحيحات أمنية لسنوات. قبل نسخ اسم ملف المستودع أدناه، ألقِ نظرة على صفحة تنزيل Zabbix الرسمية؛ فحزمة الإصدار latest تشير دائمًا إلى أحدث إصدار فرعي من 7.0، لكن إن كنت تفضّل تثبيت بنية 7.0-N محددة، فالصفحة تذكر اسم ذلك الملف أيضًا. كل أمر آخر هنا مستقر عبر سلسلة 7.0 كاملة.

الحجم والمنافذ والمتطلبات المسبقة

لنفترض خادم VPS جديدًا من نوع KVM يعمل بنظام Ubuntu 24.04، مع صلاحيات root أو sudo. كن صريحًا بشأن الموارد: 2 غيغابايت من RAM ونواتان افتراضيتان (vCPU) هما الحد الأدنى الواقعي للخادم وقاعدة البيانات وnginx وPHP على جهاز واحد يراقب حفنة من المضيفين. جهاز بـ 1 غيغابايت يقلع لكنه يجوّع قاعدة البيانات مع تنامي التاريخ المحفوظ؛ فخطط لـ 4 غيغابايت بعد بضع عشرات من المضيفين، وتجاوز المئة يستوجب نقل قاعدة البيانات إلى خادمها الخاص. أما القرص فينمو بحسب عدد العناصر (items) التي تجمعها ومدة الاحتفاظ بالتاريخ؛ خصّص بضعة غيغابايتات للبداية، وسيتولى الـ housekeeper تقليم البيانات القديمة وفق نوافذ الاحتفاظ التي تضبطها.

المنافذ: 80 و443 للواجهة الأمامية، عامة أو مقصورة على عنوان IP الخاص بك. يستمع الخادم على المنفذ TCP 10051 للوكلاء (agents) النشطين الذين يدفعون بياناتهم إليه، ويستمع كل وكيل على المنفذ TCP 10050 كي يستطلعه الخادم. لا تفتح إلا ما تعرضه فعلًا إذا كان جدار حماية موجودًا أمامه. يستحق الأمر أن يكون لديك سجل DNS من نوع A للواجهة الأمامية، لأنك ستريد شهادة حقيقية عليها؛ فجهاز Zabbix يراقب كل خدمة أخرى تشغّلها، لذا فمكانه ضمن حزمة الاستضافة الذاتية الأوسع التي تستحق التشغيل في 2026 لا أن يُضاف لاحقًا كحلٍّ ترقيعي.

الخطوة 1: أضف مستودع Zabbix 7.0 الرسمي

حزمة zabbix-release تفعل شيئًا واحدًا: تضع قائمة مصادر apt ومفتاح التوقيع على نظامك. ثبّتها، ثم حدّث الفهرس.

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt update

إذا أعاد wget الرسالة 404 Not Found، فاسم الملف قد تغيّر؛ افتح صفحة تنزيل Zabbix، واختر Ubuntu 24.04، وانسخ عنوان zabbix-release الدقيق الذي تعرضه. تنفيذ apt update نظيف يُظهر سطر repo.zabbix.com بلا أي تحذير بخصوص المفتاح؛ أما الرسالة The following signatures couldn't be verified because the public key is not available فتعني أن حزمة الإصدار لم تثبّت مفتاحها قط، فأعد تنفيذ dpkg -i ثم حدّث من جديد.

الخطوة 2: ثبّت الخادم والواجهة الأمامية والوكيل

ثبّت الخادم المبني على MySQL، والواجهة الأمامية بلغة PHP، وإعدادات nginx، وملفات مخطط SQL، وagent2 دفعة واحدة.

sudo apt install -y zabbix-server-mysql zabbix-frontend-php \
  zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

zabbix-server-mysql هو الخادم المصرَّف لأجل MySQL/MariaDB؛ أما لأجل PostgreSQL فثبّت zabbix-server-pgsql بدلًا منه واضبط خطوات قاعدة البيانات أدناه تبعًا لذلك. حزمة zabbix-sql-scripts تحمل المخطط الذي ستستورده بعد قليل؛ وهي حزمة منفصلة في 7.0، ونسيانها هو بالضبط سبب ظهور مسار الاستيراد مفقودًا لاحقًا. لا تجلب أيٌّ من هذه الحزم محرك قاعدة بيانات، فثبّت MariaDB الآن إن لم يكن الجهاز يملك واحدًا بالفعل.

sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb

الخطوة 3: أنشئ قاعدة البيانات بمجموعة الأحرف الصحيحة

Zabbix صارم بشأن الترتيب التجميعي (collation): يجب أن تكون قاعدة البيانات بترميز utf8mb4 مع utf8mb4_bin، وإلا فشل الاستيراد في منتصف الطريق بسبب أخطاء في المفتاح الأجنبي (foreign key). افتح صدفة root بالأمر sudo mysql ونفّذ:

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED BY 'choose-a-strong-password';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;

سطر SET GLOBAL هذا صمام أمان للاستيراد. مخطط Zabbix ينشئ دوالًا مخزَّنة (stored functions)، وحساب غير SUPER مثل zabbix لا يستطيع إنشاءها ما دام السجل الثنائي (binary logging) مفعّلاً؛ يُفعِّل MySQL 8 السجل الثنائي افتراضيًا، وبعض بنيات MariaDB المُدارة تفعل ذلك أيضًا (أما MariaDB القياسية فلا). تخطَّ هذا العلم على خادم مُفعَّل فيه السجل الثنائي، وسيتوقف الاستيراد برسالة ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled. ضبطه بصفتك root يزيل المشكلة؛ ثم أعده إلى الإيقاف بعد انتهاء الاستيراد. لاحظ كلمة المرور بدقة تامة؛ فإعدادات الخادم تحتاج السلسلة نفسها حرفًا بحرف (byte for byte).

الخطوة 4: استورد المخطط (الخطوة التي يتخطاها الناس)

هذا هو السبب الأكثر شيوعًا على الإطلاق لرفض واجهة أمامية جديدة التحميل: قاعدة البيانات التي أنشأتها فارغة. حمّل إليها المخطط المرفق في zabbix-sql-scripts.

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | \
  mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

يطلب كلمة مرور zabbix، ويعمل لثلاثين إلى ستين ثانية على VPS صغير، ولا يطبع شيئًا عند النجاح؛ الصمت هنا هو الصحيح. رسالة zcat: /usr/share/zabbix-sql-scripts/mysql/server.sql.gz: No such file or directory تعني أن حزمة zabbix-sql-scripts غير مثبَّتة (ارجع إلى الخطوة 2). ورسالة ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' تعني أن كلمة المرور أو الصلاحية الممنوحة (grant) في الخطوة 3 خاطئة. وبمجرد الانتهاء، أعد إيقاف علم الأمان:

sudo mysql -e "SET GLOBAL log_bin_trust_function_creators = 0;"

تأكد من نجاح التحميل بالأمر sudo mysql -e "SELECT COUNT(*) FROM zabbix.users;"؛ ظهور رقم، لا خطأ doesn't exist، يعني أن المخطط موجود فعلًا.

الخطوة 5: اضبط كلمة مرور قاعدة البيانات في zabbix_server.conf

يقرأ الخادم بيانات اعتماد قاعدة بياناته من /etc/zabbix/zabbix_server.conf. لا يحتاج الأمر سوى ضبط كلمة المرور فقط؛ فقيمتا DBName وDBUser تكونان بالفعل zabbix افتراضيًا. ألغِ التعليق عن سطر # DBPassword= واضبط قيمته:

DBName=zabbix
DBUser=zabbix
DBPassword=choose-a-strong-password

يجب أن تكون كلمة المرور مطابقة حرفًا بحرف لتلك التي في الخطوة 3. كلمة مرور DBPassword فارغة أو خاطئة هي السبب الأول لظهور شريط "Zabbix server is not running" الذي ستواجهه لاحقًا: يبدأ البرنامج الخفي، ثم يفشل في تسجيل الدخول، فيخرج. لا شيء على الشاشة يخبرك بذلك؛ السجل وحده يكشف ذلك.

الخطوة 6: وجّه nginx نحو الواجهة الأمامية

تثبّت حزمة zabbix-nginx-conf كتلة server في /etc/zabbix/nginx.conf وتربطها بـ nginx من خلال /etc/nginx/conf.d/zabbix.conf، لكنها تأتي وسطرا listen وserver_name معلَّقان، لذا لا يقدّم nginx شيئًا لأجل Zabbix حتى تلغي تعليقهما:

server {
    listen          80;
    server_name     zabbix.example.com;
    ...
}

استخدم نطاقك، أو عنوان IP العام للخادم إن لم يكن لديك DNS بعد. وثمة فخّان هنا. موقع الترحيب الافتراضي لـ nginx على Ubuntu يستمع هو أيضًا على المنفذ 80 ومُعلَّم كخادم افتراضي (default server)، فيفوز بأي طلب لا يطابق اسمه؛ فأزله وإلا ظهرت الصفحة الخطأ: sudo rm -f /etc/nginx/sites-enabled/default. وإذا كان /etc/nginx/conf.d/zabbix.conf مفقودًا لسبب ما (وهو خلل تعبئة معروف)، فأنشئ الرابط يدويًا بالأمر sudo ln -s /etc/zabbix/nginx.conf /etc/nginx/conf.d/zabbix.conf. ثم اختبر وأعد التحميل:

sudo nginx -t
sudo systemctl reload nginx

من المفترض أن يطبع nginx -t الرسالة test is successful. وإن طبع بدلًا منها nginx: [emerg] a duplicate default server for 0.0.0.0:80، فكل من الموقع الافتراضي وكتلة Zabbix يدّعيان default_server؛ فاحذف الموقع الافتراضي وأعد الاختبار. والأكثر شيوعًا أن يجتاز الاختبار بمجرد تحذير conflicting server name بينما يظل المتصفح يعرض صفحة الترحيب البسيطة: هذا هو الموقع الافتراضي يفوز على اسم غير مطابَق، وإزالته يحل المشكلة.

الخطوة 7: شغّل الخدمات وفعّلها

شغّل الخادم والوكيل وPHP-FPM وnginx، وفعّلها كي تصمد بعد إعادة الإقلاع.

sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm
sudo systemctl enable  zabbix-server zabbix-agent2 nginx php8.3-fpm

يأتي Ubuntu 24.04 مزوّدًا بـ PHP 8.3، لذا خدمة FPM هي php8.3-fpm؛ وتشغّل حزمة zabbix-nginx-conf واجهتها الأمامية تحت عملية master (master process) نفسها لخدمة PHP-FPM. تأكد من أن الخادم بدأ وبقي يعمل:

sudo systemctl status zabbix-server --no-pager
sudo tail -n 20 /var/log/zabbix/zabbix_server.log

السجل السليم ينتهي ببدء الخادم وعمل عملياته housekeeper وpoller وtrapper. إذا رأيت [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost'، فإن DBPassword من الخطوة 5 غير مطابقة؛ صحّحها وأعد التشغيل. وسطر [Z3005] query failed: [1146] Table 'zabbix.dbversion' doesn't exist يعني أنك تخطيت استيراد المخطط في الخطوة 4، فليس لدى الخادم ما يقرؤه.

الخطوة 8: أكمل معالج الإعداد عبر الويب

افتح http://your-domain-or-ip في المتصفح. سيفتح معالج إعداد Zabbix. تابع خطواته:

  1. Welcome: اختر لغة.
  2. Check of pre-requisites: من المفترض أن يظهر كل صف بحالة OK دون أي تدخل؛ فتجمّع (pool) /etc/zabbix/php-fpm.conf المُعبَّأ مع الحزمة يرفع أصلًا حدود PHP التي يحتاجها Zabbix.
  3. Configure DB connection: نوع قاعدة البيانات MySQL، والمضيف localhost، والمنفذ 0 (وهذا يعني المنفذ أو المقبس (socket) الافتراضي)، واسم قاعدة البيانات zabbix، والمستخدم zabbix، وكلمة المرور من الخطوة 3. بيانات اعتماد خاطئة أو مخطط مفقود يظهران هنا بالضبط.
  4. Settings: اترك مضيف خادم Zabbix على localhost، والمنفذ 10051، وسمِّ التثبيت.
  5. Pre-installation summary، ثم Install: يكتب المعالج الملف /etc/zabbix/web/zabbix.conf.php.
  6. Finish: سجّل الدخول باسم Admin (بحرف A كبير) وكلمة المرور zabbix، وغيّر كلمة المرور تلك فورًا من تحت Users.

إذا أبلغ المعالج عن Cannot create the configuration file، فمستخدم الويب لا يستطيع الكتابة في /etc/zabbix/web/؛ نزّل ملف zabbix.conf.php الذي يعرضه، وضعه هناك يدويًا بصلاحيات sudo، ثم اضغط Finish.

الخطوة 9: أضف المضيف المحلي واربط به قالبًا

لا يراقب Zabbix نفسه تلقائيًا. اذهب إلى Data collection → Hosts → Create host، واضبط اسم المضيف على zabbix-server، وأضفه إلى مجموعة Linux servers، وأضف واجهة Agent بعنوان IP 127.0.0.1 ومنفذ 10050. تحت Templates، اربط القالب Linux by Zabbix agent (وهو النسخة القائمة على الاستطلاع السلبي؛ أما Linux by Zabbix agent active فيجعل الوكيل يدفع البيانات بدلًا من ذلك). احفظ.

خلال دقيقة يُظهر صف المضيف تسمية ZBX خضراء، وتصل القياسات تحت Monitoring → Latest data. تسمية ZBX حمراء تعني أن الخادم لا يستطيع الوصول إلى الوكيل؛ وهو نمط فشل مشروح أدناه، لا خطأ في هذه الخطوة.

الخطوة 10: محفّز مفيد واحد وتنبيه بريد إلكتروني

يأتي القالب Linux by Zabbix agent أصلًا بمحفّزات (triggers) لارتفاع استخدام CPU، وانخفاض الذاكرة، وامتلاء الأقراص، فتحصل على تنبيهات بمجرد ربطه. ولترى كيف يُبنى أحدها، أضف واحدًا خاصًا بك: افتح المضيف، اذهب إلى Triggers → Create trigger، سمِّه Root filesystem over 90% full on {HOST.NAME}، واضبط الخطورة (severity) على High، واستخدم هذا التعبير:

last(/zabbix-server/vfs.fs.dependent.size[/,pused])>90

vfs.fs.dependent.size[/,pused] هو عنصر (item) النسبة المئوية المستخدَمة الذي ينشئه اكتشاف أنظمة الملفات (filesystem discovery) الخاص بالقالب لنظام الملفات الجذري (root filesystem) — إذ يجمع قالب Linux في 7.0 القيمة vfs.fs.get مرة واحدة ثم يشتق منها عناصر تابعة لكل نقطة تحميل (mount) — لذا يُطلَق المحفّز دون أي جمع بيانات إضافي. احفظه.

المحفّز لا يفعل أكثر من إعادة تلوين صف في لوحة التحكم (dashboard) حتى يُخطر action أحدًا. تحت Alerts → Media types → Email، اضبط خادم SMTP والمنفذ وعنوان المرسل وأمان الاتصال (عادةً STARTTLS) وأي بيانات اعتماد للترحيل (relay)، ثم استخدم Test؛ فأي فشل هنا يعني أن مسار SMTP خاطئ قبل أن يعتمد عليه أي تنبيه حقيقي. امنح مستخدم Admin عنوانًا تحت Users → Users → Admin → Media → Add واختر أي درجات الخطورة تُرسل إشعارًا. ثم اربط كل ذلك تحت Alerts → Actions → Trigger actions → Create action: أضف شرطًا مثل Trigger severity >= Warning، وتحت Operations أرسل إلى Admin عبر Email. احفظ وفعّل. تفضّل الدردشة؟ يوفّر Zabbix 7.0 أنواع وسائط (media types) ويب هوك (webhook) لـ Slack وDiscord وTelegram؛ اضبط أحدها تمامًا مثل Email وعيّنه لمستخدم.

مراقبة خادم ثانٍ بالوكيل

لمراقبة خادم آخر، أضف مستودع Zabbix هناك أيضًا — فـ Ubuntu 24.04 لا يأتي بأي حزم Zabbix خاصة به — ثم ثبّت الوكيل فقط:

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt update
sudo apt install -y zabbix-agent2

حرّر /etc/zabbix/zabbix_agent2.conf، واضبط Server على عنوان IP لخادم Zabbix (للاستطلاع السلبي)، ولأجل الفحوصات النشطة اضبط ServerActive بالإضافة إلى Hostname فريد يطابق المضيف الذي تنشئه في الواجهة الأمامية:

Server=10.0.0.10
ServerActive=10.0.0.10
Hostname=web-01

نفّذ sudo systemctl enable --now zabbix-agent2 وافتح المنفذ TCP 10050 من خادم Zabbix نحو هذا الجهاز. وفي الواجهة الأمامية، أنشئ مضيفًا تشير واجهة Agent الخاصة به إلى عنوان IP لتلك الآلة، واربط قالب Linux، فيبدأ بالإبلاغ خلال دقيقة.

أنماط الفشل والنصوص التي ستراها

الواجهة الأمامية تعرض Error connecting to database أو خطأ قاعدة بيانات. في خطوة قاعدة البيانات من المعالج، تعني الرسالة Access denied for user 'zabbix'@'localhost' (using password: YES) أن كلمة المرور لا تطابق الخطوة 3 أو أن GRANT لم يُنفَّذ قط. وإذا اتصلت قاعدة البيانات لكن الواجهة الأمامية أبلغت عن The frontend does not match Zabbix database أو Table 'zabbix.users' doesn't exist، فاستيراد المخطط في الخطوة 4 قد تُخُطِّي أو فشل؛ أعد تنفيذه في قاعدة بيانات أُنشئت حديثًا.

شريط برتقالي: Zabbix server is not running: the information displayed may not be current. الواجهة الأمامية تعمل لكنها لا تصل إلى خادم حيّ. ثلاثة أسباب، الأكثر احتمالًا أولًا. الخدمة متوقفة: تحقق بـ systemctl status zabbix-server وشغّلها. أو الخدمة تعمل لكنها لا تصل إلى قاعدة بياناتها: يُظهر السجل [Z3001] connection to database 'zabbix' failed: [1045] Access denied، أي أن DBPassword خاطئة أو فارغة. أو أن الواجهة الأمامية تشير إلى الخادم الخطأ، المخزَّن كمضيف localhost ومنفذ 10051 في /etc/zabbix/web/zabbix.conf.php. على Ubuntu لا يوجد SELinux افتراضيًا، فالسبب المرتبط بمقبس SELinux (SELinux socket) الذي تذكره أدلة RHEL لا ينطبق هنا؛ فالسبب هنا يكاد يكون دائمًا كلمة مرور قاعدة البيانات أو خدمة متوقفة.

المضيف يعرض تسمية ZBX حمراء؛ وخطأ العنصر (item) Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused. الوكيل لا يعمل أو لا يستمع. تحقق بـ systemctl status zabbix-agent2 وتأكد من ListenPort=10050. انتهاء مهلة (timeout) بدلًا من "connection refused" يعني أن جدار حماية يُسقط المنفذ 10050. أما الرسالة المرتبطة بذلك Received empty response from Zabbix Agent. Assuming that agent dropped connection because of access permissions. فتعني أن الوكيل قابل للوصول لكن سطر Server= لديه لا يذكر عنوان IP لخادم Zabbix؛ أضفه وأعد تشغيل الوكيل.

صفحة ترحيب nginx العادية، أو 502 Bad Gateway. صفحة الترحيب تعني أن الموقع الافتراضي ما زال مفعّلًا أو أن كتلة Zabbix غير مربوطة؛ احذف /etc/nginx/sites-enabled/default وتأكد من وجود /etc/nginx/conf.d/zabbix.conf، كما في الخطوة 6. أما 502 فتعني أن nginx وصل إلى PHP لكن PHP-FPM متوقف أو يستمع على مقبس (socket) مختلف؛ شغّل php8.3-fpm وتحقق من أن مقبس fastcgi_pass في كتلة Zabbix يطابق التجمّع (pool) العامل فعليًا.

النسخ الاحتياطي والترقيات وTLS

قاعدة البيانات هي التاريخ كله، فاحفظ نسخة احتياطية منها بـ mysqldump وفق جدول زمني، واحتفظ بالنسخة (dump) بعيدًا عن الجهاز نفسه:

mysqldump --single-transaction zabbix | gzip > zabbix-$(date +%F).sql.gz

ملفات إعدادات /etc/zabbix صغيرة وتستحق الحفظ أيضًا، لكنها قابلة لإعادة البناء؛ أما البيانات فلا. الاستعادة هي العملية العكسية: أنشئ قاعدة البيانات، استورد النسخة الاحتياطية، ووجّه الإعدادات إليها.

الترقيات ضمن سلسلة 7.0 هي عمليات apt update && apt upgrade عادية؛ يطبّق الخادم أي ترحيلات (migrations) للمخطط عند بدء تشغيله التالي، فرقِّ الحزم وأعد تشغيل zabbix-server. أما الانتقال إلى سلسلة رئيسية مستقبلية فهو خطوة متعمّدة؛ اقرأ ملاحظات الترقية الخاصة بها، وخذ نسخة احتياطية من قاعدة البيانات أولًا، وتوقع تغييرًا في المخطط باتجاه واحد لا رجعة فيه. هذا الانتقال أحادي الاتجاه هو بالضبط سبب تثبيتك على سلسلة LTS وبقائك عليها.

لا تترك الواجهة الأمامية على HTTP عادي. بمجرد أن يشير DNS إلى الجهاز، ضع عليه شهادة بواسطة Certbot وLet's Encrypt على nginx لـ Ubuntu 24.04، الذي يعيد كتابة كتلة server لتستمع على 443 وتعيد التوجيه من 80. وبينما تحصّن جهازًا يسجّل الدخول لمراقبة كل خادم آخر تشغّله، أحكم أيضًا إغلاق SSH الخاص به بواسطة Fail2ban الذي يحظر هجمات SSH بالقوة الغاشمة. تسجيل دخول للمراقبة لا ينبغي أن ينتقل عبر الشبكة كنص صريح (cleartext)، وبابه الأمامي لا ينبغي أن يبقى مفتوحًا أمام مخمِّني كلمات المرور.

FAQ

هل أحتاج إلى وكيل Zabbix، أم يمكنني المراقبة من دونه؟

كلاهما يعمل. الوكيل (agent2) يمنحك قياسات غنية لكل مضيف: CPU، والذاكرة، والأقراص، والعمليات، والخدمات، وملفات السجلّ، وهو الخيار المعتاد للخوادم التي تتحكم فيها. أما المراقبة بلا وكيل (agentless) فتغطي الأجهزة التي لا يمكنك تثبيت برامج عليها: SNMP للمحوّلات (switches) والطابعات، وping عبر ICMP للتحقق من إمكانية الوصول، وفحوصات HTTP لنقاط النهاية (endpoints)، وIPMI لصحة العتاد. معظم عمليات النشر الحقيقية تمزج بين الاثنين.

لماذا تقول الواجهة الأمامية إن خادم Zabbix ليس قيد التشغيل؟

الواجهة الأمامية تعمل لكنها لا تصل إلى عملية zabbix-server حيّة. عادةً يكون الخادم قد بدأ، ثم فشل في تسجيل الدخول لأن DBPassword في zabbix_server.conf خاطئة أو فارغة، فخرج فورًا. نفّذ systemctl status zabbix-server واقرأ /var/log/zabbix/zabbix_server.log؛ سطر [Z3001] connection to database ... failed يؤكد ذلك. صحّح كلمة المرور وأعد التشغيل، ويختفي الشريط خلال دقيقة.

هل يجب أن أستخدم MySQL، أم يمكنني استخدام PostgreSQL؟

كلاهما مدعوم بالكامل: zabbix-server-mysql مع MariaDB أو MySQL كما يفعل هذا الدليل، أو zabbix-server-pgsql مع PostgreSQL. في التثبيتات الصغيرة لا يكاد الاختيار يهم. أما في الكبيرة، فإن PostgreSQL مع امتداد TimescaleDB يقسّم جداول التاريخ ويجعل الـ housekeeping أرخص تكلفة بكثير، ولهذا تميل المواقع الكبيرة إليه. اختر واحدًا والتزم به؛ فالانتقال لاحقًا يعني تصديرًا كاملًا وإعادة استيراد، لا مجرد تبديل إعداد.

كم من الذاكرة RAM يحتاجها خادم Zabbix الشامل (all-in-one)؟

لجهاز واحد يراقب حفنة من المضيفين، 2 غيغابايت حد أدنى واقعي، و4 غيغابايت مريحة بعد بضع عشرات من المضيفين؛ إذ تذهب الذاكرة في معظمها إلى ذاكرة تخزين قاعدة البيانات المؤقتة (cache) وإلى مستطلعات (pollers) الخادم. VPS بـ 1 غيغابايت يعمل لكنه يجوّع قاعدة البيانات مع تنامي التاريخ. وبعد تجاوز المئة مضيف، افصل قاعدة البيانات إلى خادمها الخاص واضبط مجمّع الذاكرة المؤقتة (buffer pool) الخاص بها بدلًا من حشو جهاز واحد بمزيد من RAM.

هل Zabbix مبالغ فيه لخادمين أو ثلاثة؟

قد يكون كذلك. إذا كان كل ما تحتاجه هو "هل هو يعمل؟" وصفحة يمكنك مشاركتها، فأداة أخف مثل Uptime Kuma لمراقبة التشغيل والحالة أسرع في الإعداد وأسهل في القراءة بنظرة سريعة. اختر Zabbix حين تريد عتبات لكل قياس، ورسومًا بيانية تاريخية، ومضيفين مبنيين على قوالب، وقواعد تصعيد؛ وهي أمور لا يمكن لأداة ping بسيطة أن تمنحك إياها عبر أسطول كامل من الأجهزة.