Netdata - مراقبة الأداء في الوقت الفعلي
Netdata هو وكيل مراقبة مفتوح المصدر يجمع آلاف المقاييس في الثانية مع إعدادات قريبة من الصفر ويصورها على لوحة تحكم ويب حية (منفذ افتراضي 19999). يكتشف الخدمات تلقائياً (قواعد البيانات وخوادم الويب والحاويات و Kubernetes) من خلال أكثر من 800 مجمع ويأتي مع كشف الشذوذ ومحرك التنبيهات المدمج.
التثبيت
| الطريقة | الأمر |
|---|
| البدء الشامل | wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh |
| متغير curl | curl https://get.netdata.cloud/kickstart.sh > /tmp/k.sh && sh /tmp/k.sh |
| حزمة Debian/Ubuntu | sudo apt install netdata |
| حزمة Fedora/RHEL | sudo dnf install netdata |
| Docker | docker run -d --name=netdata -p 19999:19999 --cap-add SYS_PTRACE netdata/netdata |
| Helm (Kubernetes) | helm install netdata netdata/netdata |
بعد التثبيت، افتح http://localhost:19999 (أو عنوان IP الخادم).
إدارة الخدمة
| الأمر | الوصف |
|---|
sudo systemctl start netdata | بدء الوكيل |
sudo systemctl enable netdata | البدء عند الإقلاع |
sudo systemctl restart netdata | إعادة تشغيل (تطبيق تغييرات الإعدادات) |
sudo systemctl status netdata | فحص الحالة |
sudo journalctl -u netdata -f | تتبع سجلات الوكيل |
netdatacli reload-health | إعادة تحميل التنبيهات بدون إعادة تشغيل كاملة |
netdatacli reload-labels | إعادة تحميل تسميات الوكيل |
netdatacli shutdown-agent | إيقاف الوكيل بشكل صحيح |
الإعداد
قم دائماً بتعديل الإعدادات باستخدام غلاف edit-config — ينسخ الملف من /usr/lib/netdata/conf.d إلى /etc/netdata لذلك الترقيات لن تمحيه.
cd /etc/netdata
sudo ./edit-config netdata.conf # إعدادات الوكيل الرئيسية
sudo ./edit-config health_alarm_notify.conf # الإخطارات
sudo ./edit-config go.d.conf # تفعيل/تعطيل مجمعات Go
الإعداد (في netdata.conf) | الغرض |
|---|
[global] update every = 1 | فترة التجميع بالثواني |
[global] history / dbengine | أحجام الاحتفاظ / طبقة قاعدة البيانات على القرص |
[web] bind to = * | واجهات الشبكة التي تستمع عليها لوحة التحكم |
[web] default port = 19999 | منفذ لوحة التحكم |
[plugins] | تبديل مجموعات الملحقات على/إيقاف |
المجمعات (الملحقات)
| المهمة | الطريقة |
|---|
| سرد ملفات الإعداد لكل مجمع | cd /etc/netdata && sudo ./edit-config go.d/CONFIG.conf |
| تفعيل وحدة (مثل nginx) | sudo ./edit-config go.d/nginx.conf ثم أشر إليها بعنوان URL الحالة |
| تصحيح مجمع Go | sudo /usr/libexec/netdata/plugins.d/go.d.plugin -d -m nginx |
| الوحدات المكتشفة تلقائياً الشائعة | nginx, apache, mysql, postgres, redis, docker, وحدات systemd, الأقراص, الشبكة, المستشعرات |
الصحة والتنبيهات
تعريفات التنبيهات توجد في /etc/netdata/health.d/*.conf.
cd /etc/netdata
sudo ./edit-config health.d/cpu.conf # ضبط تنبيه مدمج
netdatacli reload-health # تطبيق
| الأمر | الوصف |
|---|
curl http://localhost:19999/api/v1/alarms?all | سرد جميع التنبيهات والحالة الحالية (JSON) |
curl http://localhost:19999/api/v1/info | معلومات الوكيل والإصدار والمجمعات |
تعديل health_alarm_notify.conf | توصيل البريد الإلكتروني و Slack و PagerDuty و Discord وغيرها |
نقاط نهاية API مفيدة
| نقطة النهاية | العودة |
|---|
/api/v1/charts | جميع الرسوم البيانية المتاحة على العقدة |
/api/v1/data?chart=system.cpu | بيانات السلاسل الزمنية لرسم بياني |
/api/v1/allmetrics?format=prometheus | استهداف الكشط لـ Prometheus |
/api/v1/badge.svg?chart=system.cpu&value_color=green | شارة الحالة القابلة للتضمين |
Netdata Cloud (اختياري)
# الاتصال (المطالبة) بعقدة إلى Netdata Cloud لوحات التحكم متعددة العقد
sudo netdata-claim.sh -token=YOUR_TOKEN -rooms=ROOM_ID -url=https://app.netdata.cloud
يستمر الوكيل في العمل بالكامل بشكل مستقل إذا لم تطالب به مطلقاً — Cloud يضيف فقط طرق عرض متقاطعة وتنبيهات مركزية.
سير العمل الشائع
# فحص صحة سريع من الصدفة
curl -s http://localhost:19999/api/v1/alarms | jq '.alarms | keys'
# عرض المقاييس على مكدس Prometheus موجود
curl -s 'http://localhost:19999/api/v1/allmetrics?format=prometheus' | head
# تقليل حمل CPU/القرص على جهاز افتراضي صغير (netdata.conf)
# [global] update every = 2
# [db] mode = ram # الاحتفاظ بالمقاييس في الذاكرة فقط
# تقليل الاحتفاظ لكن الحفاظ على الدقة في الثانية، ثم إعادة التحميل
sudo systemctl restart netdata
Netdata مقابل Prometheus + Grafana
| الجانب | Netdata | Prometheus + Grafana |
|---|
| الإعداد | دقائق، اكتشاف تلقائي | مصدرات يدوية + لوحات تحكم |
| الدقة | في الثانية بشكل افتراضي | عادة كشط 15 ثانية |
| التخزين | قاعدة بيانات محلية متعددة الطبقات (dbengine) | TSDB مركزي |
| الأفضل لـ | عمق العقدة الواحدة والفحص السريع | الأساطيل الكبيرة والاستعلام طويل الأجل |
| التشغيل البيني | يصدر تنسيق Prometheus | يمكن كشط Netdata |
الموارد