أداة قابلة للملاحظة والأداء المستندة إلى eBPF مفتوحة المصدر مع مقاييس بدون استقصاء، سجلات، آثار، والتنميط المستمر لبيئات Kubernetes و Docker.
# نشر بأمر واحد مع ClickHouse و Prometheus
curl -fsS https://raw.githubusercontent.com/coroot/coroot/main/deploy/docker-compose.yaml | \
docker compose -f - up -d
# الوصول إلى واجهة المستخدم في http://localhost:8080
# إضافة مستودع Coroot Helm
helm repo add coroot https://coroot.github.io/helm-charts
helm repo update coroot
# تثبيت عامل تشغيل Coroot
helm install -n coroot --create-namespace coroot-operator coroot/coroot-operator
# نشر Community Edition
helm install -n coroot coroot coroot/coroot-ce
# النشر مع تكرار ClickHouse
helm install -n coroot coroot coroot/coroot-ce \
--set "clickhouse.shards=2,clickhouse.replicas=2"
# إعادة توجيه المنفذ للوصول إلى واجهة المستخدم
kubectl port-forward -n coroot service/coroot-coroot 8080:8080
# الوصول إلى واجهة المستخدم في http://localhost:8080
# نشر مكدس Coroot
curl -fsS https://raw.githubusercontent.com/coroot/coroot/main/deploy/docker-swarm-stack.yaml | \
docker stack deploy -c - coroot
# تثبيت خادم Coroot
curl -sfL https://raw.githubusercontent.com/coroot/coroot/main/deploy/install.sh | \
BOOTSTRAP_PROMETHEUS_URL="http://PROMETHEUS_IP:9090" \
BOOTSTRAP_REFRESH_INTERVAL=15s \
BOOTSTRAP_CLICKHOUSE_ADDRESS=CLICKHOUSE_IP:9000 \
sh -
# يعمل المثبت نفسه مع توزيعات RHEL
curl -sfL https://raw.githubusercontent.com/coroot/coroot/main/deploy/install.sh | \
BOOTSTRAP_PROMETHEUS_URL="http://PROMETHEUS_IP:9090" \
BOOTSTRAP_REFRESH_INTERVAL=15s \
BOOTSTRAP_CLICKHOUSE_ADDRESS=CLICKHOUSE_IP:9000 \
sh -
# تشغيل وكيل العقدة كحاوية امتيازات
docker run --detach --name coroot-node-agent \
--pull=always --privileged --pid host \
-v /sys/kernel/tracing:/sys/kernel/tracing:rw \
-v /sys/kernel/debug:/sys/kernel/debug:rw \
-v /sys/fs/cgroup:/host/sys/fs/cgroup:ro \
ghcr.io/coroot/coroot-node-agent \
--cgroupfs-root=/host/sys/fs/cgroup \
--collector-endpoint=http://COROOT_IP:8080
# تثبيت وكيل العقدة على الأجهزة المعدنية أو الآلات الافتراضية
curl -sfL https://raw.githubusercontent.com/coroot/coroot-node-agent/main/install.sh | \
COLLECTOR_ENDPOINT=http://COROOT_IP:8080 \
SCRAPE_INTERVAL=15s \
sh -
# يتم نشر وكيل العقدة تلقائيًا بواسطة عامل التشغيل Coroot
# لا يلزم تثبيت منفصل عند استخدام Helm
| الأمر | الوصف |
|---|
docker compose up -d | بدء Coroot مع Docker Compose |
docker compose down | إيقاف جميع خدمات Coroot |
docker compose logs -f | متابعة سجلات Coroot |
helm install coroot coroot/coroot-ce | تثبيت Coroot على Kubernetes |
helm upgrade coroot coroot/coroot-ce | ترقية Coroot |
helm uninstall coroot -n coroot | إزالة Coroot من المجموعة |
kubectl port-forward svc/coroot-coroot 8080:8080 -n coroot | الوصول إلى واجهة المستخدم Coroot |
| المتغير | الوصف | الافتراضي |
|---|
BOOTSTRAP_PROMETHEUS_URL | نقطة نهاية خادم Prometheus | مطلوب |
BOOTSTRAP_REFRESH_INTERVAL | فاصل جمع المقاييس | 15s |
BOOTSTRAP_CLICKHOUSE_ADDRESS | عنوان خادم ClickHouse | مطلوب |
LISTEN_ADDRESS | عنوان الاستماع HTTP | :8080 |
DATA_DIR | مسار دليل البيانات | /var/lib/coroot |
| العلم | الوصف | الافتراضي |
|---|
--collector-endpoint | نقطة نهاية خادم Coroot | مطلوب |
--cgroupfs-root | مسار جذر نظام ملفات Cgroup | /sys/fs/cgroup |
--scrape-interval | فاصل الخدش في المقاييس | 15s |
--log-level | مستوى تفاصيل السجل | info |
| المكون | الدور |
|---|
| Coroot Server | لوحة تحكم مركزية، محرك التحليل، التنبيهات |
| Node Agent | جمع المقاييس والسجلات المستند إلى eBPF على كل عقدة |
| Cluster Agent | مراقبة قاعدة البيانات (MySQL و PostgreSQL و Redis) |
| ClickHouse | تخزين المقاييس والسجلات والآثار والملفات الشخصية |
| Prometheus | تجريف المقاييس والكتابة المتقدمة |
| الميزة | الوصف |
|---|
| Automatic Discovery | الخدمات المكتشفة تلقائيًا عبر eBPF — لا توجد تغييرات في الكود |
| Service Map | خريطة الطوبولوجيا المباشرة تعرض جميع تبعيات الخدمة |
| Distributed Tracing | تتبع الطلب عبر الخدمات الصغيرة بدون SDK |
| Log Collection | جمع السجلات التلقائية وتجميع الأنماط |
| Continuous Profiling | تنميط CPU/الذاكرة مع تفعيل بنقرة واحدة |
| القدرة | الوصف |
|---|
| SLO Tracking | تحديد ومراقبة أهداف مستوى الخدمة |
| Issue Detection | تحديد تلقائي لـ 80%+ من المشاكل |
| Deployment Tracking | تتبع انتشار Kubernetes والعودة للإصدار السابق |
| Cost Monitoring | تحليل تكلفة موارد AWS و GCP و Azure |
| Network Analysis | مقاييس اتصال TCP، زمن انتظار DNS، إعادة النقل |
| البروتوكول | المقاييس المجمعة |
|---|
| HTTP/HTTPS | الكمون، معدل الخطأ، الإنتاجية |
| gRPC | كمون المستوى الأسلوبي والأخطاء |
| PostgreSQL | كمون الاستعلام والاتصالات والأخطاء |
| MySQL | أداء الاستعلام والاستعلامات البطيئة |
| Redis | كمون الأمر، نسبة الإصابة/الخطأ |
| MongoDB | كمون التشغيل والاتصالات |
| Kafka | تأخر المنتج/المستهلك والإنتاجية |
| DNS | كمون الحل ومعدل الفشل |
# حجم ClickHouse المخصص
helm install coroot coroot/coroot-ce \
--set clickhouse.shards=3 \
--set clickhouse.replicas=2 \
--set clickhouse.storage=100Gi
# إعدادات Prometheus المخصصة
helm install coroot coroot/coroot-ce \
--set prometheus.storage=50Gi \
--set prometheus.retention=30d
# تفعيل ingress
helm install coroot coroot/coroot-ce \
--set ingress.enabled=true \
--set ingress.host=coroot.example.com
| نوع التنبيه | الوصف |
|---|
| SLO Breach | يتم تشغيله عندما يكون هدف SLO في خطر |
| Latency Spike | يتجاوز كمون p99 العتبة |
| Error Rate | نسبة مئوية من الأخطاء تتجاوز العتبة |
| Resource | CPU أو ذاكرة أو شذوذ استخدام القرص |
| Deployment | فشل أو تنشر متدهور تم الكشف عنه |
| القناة | التكوين |
|---|
| Slack | عنوان URL للويب |
| PagerDuty | مفتاح التكامل |
| Opsgenie | مفتاح API |
| Email | إعدادات SMTP |
| Webhook | نقطة نهاية HTTP مخصصة |
| المشكلة | الحل |
|---|
| لا تظهر البيانات | تحقق من أن وكيل العقدة --collector-endpoint يشير إلى خادم Coroot |
| الخدمات المفقودة | تحقق من أن وكيل العقدة يعمل مع --privileged و --pid host |
| eBPF لا يتحمل | تأكد من الإصدار 4.16+ من النواة مع دعم BTF |
| استخدام ذاكرة عالي | قلل --scrape-interval أو حدد مساحات أسماء مراقبة |
| اتصال ClickHouse | تحقق من تشغيل ClickHouse والوصول إليه على المنفذ 9000 |
- نشر وكلاء العقدة على كل عقدة في المجموعة لضمان الرؤية الكاملة
- استخدم تكرار ClickHouse لنشر الإنتاج (الحد الأدنى 2 نسخة)
- قم بتعيين أهداف SLO ذات معنى قبل الاعتماد على التنبيهات التلقائية
- ابدأ بـ Docker Compose للتقييم وانقل إلى Helm للإنتاج
- قم بتكوين Prometheus remote write للاحتفاظ بالمقاييس بعد إعادة تشغيل البوت
- استخدم المنمى المدمج لتحديد اختناقات CPU/الذاكرة قبل التوسع
- تفعيل تتبع النشر لارتباط تغييرات الأداء بالإصدارات