تخطَّ إلى المحتوى

Coroot Observability

أداة قابلة للملاحظة والأداء المستندة إلى 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 -

Kubernetes (عبر عامل التشغيل Helm)

Section titled “Kubernetes (عبر عامل التشغيل Helm)”
# يتم نشر وكيل العقدة تلقائيًا بواسطة عامل التشغيل 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

مكونات الهندسة المعمارية

Section titled “مكونات الهندسة المعمارية”
المكونالدور
Coroot Serverلوحة تحكم مركزية، محرك التحليل، التنبيهات
Node Agentجمع المقاييس والسجلات المستند إلى eBPF على كل عقدة
Cluster Agentمراقبة قاعدة البيانات (MySQL و PostgreSQL و Redis)
ClickHouseتخزين المقاييس والسجلات والآثار والملفات الشخصية
Prometheusتجريف المقاييس والكتابة المتقدمة

قابلية الملاحظة بدون استقصاء

Section titled “قابلية الملاحظة بدون استقصاء”
الميزةالوصف
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، إعادة النقل

البروتوكولات المدعومة (eBPF)

Section titled “البروتوكولات المدعومة (eBPF)”
البروتوكولالمقاييس المجمعة
HTTP/HTTPSالكمون، معدل الخطأ، الإنتاجية
gRPCكمون المستوى الأسلوبي والأخطاء
PostgreSQLكمون الاستعلام والاتصالات والأخطاء
MySQLأداء الاستعلام والاستعلامات البطيئة
Redisكمون الأمر، نسبة الإصابة/الخطأ
MongoDBكمون التشغيل والاتصالات
Kafkaتأخر المنتج/المستهلك والإنتاجية
DNSكمون الحل ومعدل الفشل

قيم الخريطة الهيدروجينية

Section titled “قيم الخريطة الهيدروجينية”
# حجم 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نسبة مئوية من الأخطاء تتجاوز العتبة
ResourceCPU أو ذاكرة أو شذوذ استخدام القرص
Deploymentفشل أو تنشر متدهور تم الكشف عنه
القناةالتكوين
Slackعنوان URL للويب
PagerDutyمفتاح التكامل
Opsgenieمفتاح API
Emailإعدادات SMTP
Webhookنقطة نهاية HTTP مخصصة

استكشاف الأخطاء والإصلاح

Section titled “استكشاف الأخطاء والإصلاح”
المشكلةالحل
لا تظهر البياناتتحقق من أن وكيل العقدة --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/الذاكرة قبل التوسع
  • تفعيل تتبع النشر لارتباط تغييرات الأداء بالإصدارات