ما الذي يفعله Zabbix
يجمع Zabbix قياسات — حمل المعالج، والذاكرة الحرة، ومساحة القرص، وحالة خدمة، وزمن استجابة صفحة — ويقارنها بـمشغّلات. وعندما يتحقق تعبير ما، مثل «أقل من 10% من المساحة الحرة لمدة خمس دقائق»، يفتح Zabbix مشكلة ويعرضها في لوحات معلوماته وينفّذ الإجراءات المقررة: رسالة بريد إلكتروني، أو رسالة Telegram، أو webhook.
تصل القياسات عبر عدة طرق: وكيل Zabbix المثبّت على كل خادم، وبروتوكول SNMP لأجهزة التوجيه والمبدّلات ووحدات الطاقة، وسيناريوهات الويب للمواقع وواجهات API، أو استعلامات مباشرة لقاعدة بيانات. وتجمع القوالب الجاهزة القياسات والمشغّلات المناسبة لـ Linux وWindows وnginx وMySQL وPostgreSQL وDocker.
ما يقدّمه Zabbix
- وكلاء Linux وWindows — المعالج والذاكرة والأقراص والشبكة والخدمات والعمليات والسجلات.
- SNMP — مراقبة أجهزة الشبكة دون وكيل، مع اكتشاف تلقائي للمنافذ.
- المشغّلات والتصعيد — عتبات واضحة، وتبعيات بين المضيفين، وتنبيهات ترتفع مستوى إذا لم يتفاعل أحد.
- سيناريوهات الويب — توفّر سلسلة من الصفحات أو استدعاءات API وزمن استجابتها ومحتواها.
- لوحات المعلومات والخرائط والتقارير — لفريق التشغيل ولعملائك أيضًا.
- صلاحيات حسب مجموعة المضيفين — لا يرى كل مستخدم إلا ما يعنيه.
Zabbix مقارنةً بالخيارات الأخرى
مرّر الجدول أفقيًا
| Zabbix | Prometheus + Grafana | Uptime Kuma | |
|---|---|---|---|
| ما الذي يُراقَب | الخوادم والخدمات والشبكة والمواقع | مقاييس التطبيقات والحاويات | توفّر المواقع والمنافذ |
| الجمع | وكيل وSNMP وHTTP وقواعد البيانات | مصدّرات تُستعلَم | مجسّات HTTP وTCP وping |
| الإعداد | واجهة ويب | ملفات YAML | واجهة ويب |
| التنبيهات | مدمجة مع التصعيد | Alertmanager منفصل | مدمجة |
| التكلفة | سعر الخادم الافتراضي | سعر الخادم الافتراضي | سعر الخادم الافتراضي |
المتطلبات
خادم افتراضي بنظام Ubuntu 24.04 بذاكرة 2 غيغابايت وقرص 20 غيغابايت لبضع عشرات من المضيفين، مع Docker وإضافة Compose، ونطاق فرعي يشير إلى الخادم، مثل zabbix.example.com. خطّط لمساحة قرص أكبر إذا احتفظت بسجل طويل: فقاعدة PostgreSQL تكبر مع عدد القياسات.
تثبيت Zabbix باستخدام Docker Compose
تحضير المجلد وكلمة مرور قاعدة البيانات
يحمل الملف
.envكلمة مرور PostgreSQL التي يتشاركها الخادم والواجهة الويب.mkdir -p /opt/zabbix && cd /opt/zabbix echo "DB_PASSWORD=$(openssl rand -hex 16)" > .env chmod 600 .envكتابة الملف docker-compose.yml
أربع خدمات: خادم Zabbix، والواجهة الويب (nginx وPHP)، ووكيل الخادم الافتراضي، وPostgreSQL. لا تُنشر إلا الواجهة الويب، وعلى الواجهة المحلية فقط: سيتولى nginx أمر HTTPS.
services: zabbix-server: image: zabbix/zabbix-server-pgsql:alpine-8.0.0 restart: unless-stopped depends_on: database: condition: service_healthy environment: DB_SERVER_HOST: database POSTGRES_USER: zabbix POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: zabbix zabbix-web: image: zabbix/zabbix-web-nginx-pgsql:alpine-8.0.0 restart: unless-stopped depends_on: - zabbix-server ports: - "127.0.0.1:8080:8080" environment: ZBX_SERVER_HOST: zabbix-server DB_SERVER_HOST: database POSTGRES_USER: zabbix POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: zabbix PHP_TZ: Africa/Casablanca zabbix-agent: image: zabbix/zabbix-agent2:alpine-8.0.0 restart: unless-stopped environment: ZBX_HOSTNAME: "Zabbix server" ZBX_SERVER_HOST: zabbix-server database: image: postgres:17.11-alpine restart: unless-stopped environment: POSTGRES_USER: zabbix POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: zabbix volumes: - zabbix-db:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U zabbix -d zabbix"] interval: 5s retries: 12 volumes: zabbix-db: {}تشغيل الحزمة
عند التشغيل الأول، ينشئ الخادم مخطط قاعدة البيانات؛ انتظر دقيقة قبل أن تستجيب الواجهة.
docker compose up -d docker compose ps curl -fsS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080/
غيّر كلمة مرور المصنع قبل أي شيء
يفتح تثبيت Zabbix الجديد الحساب Admin بكلمة المرور zabbix المعروفة للجميع. سجّل الدخول فورًا واستبدلها من User settings ثم Profile ثم Change password، حتى قبل وضع الواجهة خلف اسم نطاقها.
وضع Zabbix خلف nginx عبر HTTPS
لا يستمع المنفذ 8080 إلا على 127.0.0.1: يستقبل nginx المثبّت على المضيف الحركة العامة ويمرّرها. ثم يضيف Certbot الشهادة وإعادة التوجيه إلى HTTPS.
server {
listen 80;
server_name zabbix.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}certbot --nginx -d zabbix.example.comربط المضيف «Zabbix server» بوكيل الخادم الافتراضي
ينشئ Zabbix افتراضيًا مضيفًا باسم «Zabbix server» يستعلم وكيلًا على 127.0.0.1. وفي Docker يعيش الوكيل في حاويته الخاصة: افتح Data collection ثم Hosts، وانقر على «Zabbix server» واستبدل واجهة Agent باسم DNS zabbix-agent، مع ضبط «Connect to» على DNS. وبعد دقيقة يصبح مؤشر ZBX أخضر، وتعرض Latest data المعالج والذاكرة والحمل على الخادم.
مراقبة خوادمك الأخرى
على كل خادم، ثبّت حزمة zabbix-agent2 من توزيعتك أو من مستودع Zabbix الرسمي، ثم صرّح بعنوان IP العام لخادم Zabbix كخادم مسموح به. في الوضع السلبي، يستعلم خادم Zabbix الوكيلَ على المنفذ 10050: افتح هذا المنفذ لهذا العنوان وحده.
# /etc/zabbix/zabbix_agent2.conf
Server=203.0.113.10
Hostname=web-01systemctl restart zabbix-agent2
ufw allow from 203.0.113.10 to any port 10050 proto tcpفي Data collection ثم Hosts، أنشئ المضيف web-01 بعنوانه والقالب «Linux by Zabbix agent». أما الوضع النشط، الذي يرسل فيه الوكيل بياناته إلى المنفذ 10051 للخادم، فيتطلب فتح هذا المنفذ على خادم Zabbix: احصره في عناوين خوادمك.
تلقي التنبيهات
في Alerts ثم Media types، فعّل واضبط البريد الإلكتروني (خادم SMTP والمرسل) أو Telegram أو Slack، إذ يوفّر Zabbix أنواعًا جاهزة لعشرات الخدمات. ثم أضف الوسيلة إلى مستخدمك من User settings ثم Profile ثم Media، وفعّل الإجراء «Report problems to Zabbix administrators» من Alerts ثم Actions. جرّب ذلك بإيقاف وكيل أحد الخوادم: يجب أن تصلك مشكلة «Zabbix agent is not available».
النسخ الاحتياطي والتحديث
يعيش كل الإعداد والسجل في PostgreSQL، وتكفي نسخة احتياطية يومية عبر pg_dump:
cd /opt/zabbix
docker compose exec -T database pg_dump -U zabbix zabbix | gzip > zabbix-$(date +%F).sql.gzللتحديث، غيّر رقم إصدار صور Zabbix الثلاث في docker-compose.yml، ثم نفّذ docker compose pull && docker compose up -d: يحدّث الخادم المخطط عند التشغيل. خذ نسخة احتياطية من القاعدة قبل ذلك مباشرة، واقرأ ملاحظات الإصدار قبل الانتقال إلى فرع رئيسي جديد.
التثبيت بنقرة واحدة على ServOrbit
من المتجر في مساحة العميل، يُثبَّت Zabbix على خادم ServOrbit الافتراضي دون كتابة سطر واحد: يُنشر الخادم والواجهة الويب وPostgreSQL ووكيل الخادم، ويكون المضيف «Zabbix server» مرتبطًا بوكيله، وتُستبدل كلمة مرور المصنع بكلمة مولّدة تظهر في مساحة العميل، وتُنشر الواجهة عبر HTTPS على نطاقك أو على النطاق الفرعي المجاني للخادم.