دليل عملي

‎SigNoz‎ على ‎VPS‎ : ‎APM‎ مفتوح المصدر في 15 دقيقة

الأمان والمراقبة10 دقائق للقراءةعدد الخطوات: 6

تفرض ‎Datadog‎ رسوماً تبلغ نحو 15 دولاراً لكل خادم شهرياً، إضافةً إلى رسوم لكل مقياس تتضاعف مع نمو حركة المرور. ‎SigNoz‎ (‎v0.144.0‎، سبتمبر 2026) منصة مراقبة مفتوحة المصدر مبنية على ‎ClickHouse‎ و‎OpenTelemetry‎، توفر الركائز الثلاث للمراقبة — ‎traces‎ ومقاييس وسجلات — على خادمك الخاص دون اشتراك شهري. في خمس عشرة دقيقة، تحصل على منظومة ‎APM‎ كاملة تحت سيطرتك الكاملة.

المحتويات· لماذا تستبدل ‎Datadog‎ أو ‎New Relic‎ بـ ‎SigNoz‎؟1/11
  1. 01لماذا تستبدل ‎Datadog‎ أو ‎New Relic‎ بـ ‎SigNoz‎؟
  2. 02ما الذي يمنحك إياه ‎SigNoz‎
  3. 03المتطلبات الأساسية
  4. 04تثبيت ‎SigNoz‎ عبر ‎Foundry CLI‎
  5. 05إضافة التتبع لـ ‎Node.js‎ و‎Python‎ و‎Go‎
  6. 06ضبط رتنشن ‎ClickHouse‎ والتخزين البارد
  7. 07التنبيهات المخصصة في ‎SigNoz‎
  8. 08التوسع : ‎standalone‎ أو ‎cluster‎
  9. 09احذر من قتل ‎ClickHouse‎ بسبب نقص الذاكرة
  10. 10‎SigNoz‎ مقابل ‎Datadog‎ و‎Grafana Cloud‎
  11. 11استكشاف الأخطاء المتعمق

لماذا تستبدل ‎Datadog‎ أو ‎New Relic‎ بـ ‎SigNoz‎؟

‎SigNoz‎ منصة مراقبة مفتوحة المصدر (رخصة ‎Apache 2.0‎) تعتمد على ‎ClickHouse‎ للتخزين عالي الأداء، وبروتوكول ‎OpenTelemetry‎ لإضافة التتبع. بياناتك تبقى على بنيتك التحتية، وتتحكم في مدة الاحتفاظ، ولا تدفع سوى تكلفة ‎VPS‎ الذي يشغّل المنظومة.

أدوات ‎SaaS‎ للمراقبة تتبع نموذج تسعير متصاعداً : مجانية لعدد قليل من الخوادم، ثم الفاتورة ترتفع مع كل خدمة جديدة حتى تتجاوز 200 إلى 500 يورو شهرياً دون قيمة مضافة تناسبها.

ما الذي يمنحك إياه ‎SigNoz‎

  • ‎Traces‎ موزعة: تصوُّر كامل لمسار طلب ‎HTTP‎ عبر خدماتك المصغرة، مع ‎spans‎ ومدد وأخطاء في كل خطوة.
  • مقاييس متوافقة مع ‎Prometheus‎: استورد لوحات التحكم الموجودة أو أنشئ لوحات جديدة مباشرةً في واجهة ‎SigNoz‎.
  • سجلات مركزية: جمع سجلات منظّمة من جميع تطبيقاتك في واجهة موحدة.
  • تنبيهات قابلة للضبط: حدد حدوداً لأي مقياس وتلقَّ إشعارات عبر ‎Slack‎ أو ‎PagerDuty‎ أو ‎webhook‎.
  • لوحات تحكم مخصصة: أنشئ عروضاً تقنية في بضع نقرات دون الحاجة لمعرفة ‎LoQL‎ أو ‎PromQL‎.
  • واجهة مستخدم حديثة: واجهة ‎React‎ سريعة الاستجابة بدون وكيل احتكاري من جانب العميل.

المتطلبات الأساسية

يعتمد ‎SigNoz‎ على ‎ClickHouse‎، محرك قاعدة بيانات عمودية يستهلك ذاكرة كبيرة. الحد الأدنى الموصى به هو 4 جيجابايت ذاكرة عشوائية — أقل من ذلك يؤدي إلى قتل ‎ClickHouse‎ بواسطة ‎OOM killer‎ قبل أن تُحمَّل الواجهة. للاستخدام الإنتاجي مع عدة تطبيقات، استهدف 8 جيجابايت.

قائمة المتطلبات:
- خادم ‎VPS‎ يعمل بـ‎Ubuntu 22.04‎ أو ‎Debian 12‎.
- ‎Docker Engine ≥ 24‎ و‎Docker Compose V2‎.
- المنفذ 8080 مفتوح (واجهة ‎SigNoz‎).
- المنافذ 4317 (‎OTLP/gRPC‎) و4318 (‎OTLP/HTTP‎) مفتوحة.
- 20 جيجابايت مساحة قرص كحد أدنى.

تثبيت ‎SigNoz‎ عبر ‎Foundry CLI‎

  1. الخطوة 1 — تثبيت ‎Docker‎ على ‎VPS‎

    curl -fsSL https://get.docker.com | sh
    systemctl enable --now docker
    docker compose version
  2. الخطوة 2 — تثبيت ‎Foundry CLI (foundryctl)‎

    منذ الإصدار v0.112.0، يعتمد ‎SigNoz‎ على ‎Foundry CLI‎ كطريقة النشر الرسمية.

    curl -L https://get.foundry.so/foundryctl/latest | bash
    export PATH="$HOME/.foundry/bin:$PATH"
    foundryctl --version
  3. الخطوة 3 — إنشاء ملف ‎casting.yaml‎

    mkdir -p /opt/signoz && cd /opt/signoz
    cat > casting.yaml << 'EOF'
    apiVersion: foundry.so/v1
    kind: Casting
    metadata:
      name: signoz
    spec:
      release: stable
      components:
        - name: signoz
          enabled: true
        - name: clickhouse
          enabled: true
    EOF
  4. الخطوة 4 — تشغيل النشر

    cd /opt/signoz
    foundryctl cast -f casting.yaml

    يسحب ‎Foundry CLI‎ صور ‎Docker‎ ويشغّل الحاويات بالترتيب الصحيح. يستغرق التشغيل الكامل نحو 2-3 دقائق.

  5. الخطوة 5 — التحقق من تشغيل ‎SigNoz‎

    docker compose -f /opt/signoz/docker-compose.yaml ps

    افتح المتصفح على http://<IP_VPS>:8080. ملاحظة: المنفذ القديم 3301 المذكور في دروس قديمة أصبح غير صالح — المنفذ الحالي هو 8080.

  6. الخطوة 6 — تأمين الوصول بـ ‎Nginx‎

    لا تُعرّض المنفذ 8080 مباشرةً. استخدم ‎Nginx‎ كـ‎reverse proxy‎ مع ‎TLS‎:

    ufw deny 8080
    server {
        listen 443 ssl;
        server_name signoz.yourdomain.com;
        location / { proxy_pass http://127.0.0.1:8080; }
    }

إضافة التتبع لـ ‎Node.js‎ و‎Python‎ و‎Go‎

يستقبل ‎SigNoz‎ التتبعات عبر بروتوكول ‎OTLP‎. إليك كيفية توصيل ثلاثة بيئات شائعة.

‎Node.js (Express/Fastify)‎:

npm install @opentelemetry/sdk-node @opentelemetry/auto-instrumentations-node
OTEL_EXPORTER_OTLP_ENDPOINT="http://<IP_VPS>:4318" \
OTEL_SERVICE_NAME="my-api" \
node -r ./tracing.js app.js

‎Python‎:

pip install opentelemetry-distro opentelemetry-exporter-otlp
opentelemetry-bootstrap -a install
OTEL_EXPORTER_OTLP_ENDPOINT="http://<IP_VPS>:4318" \
OTEL_SERVICE_NAME="my-python-service" \
opentelemetry-instrument uvicorn main:app

‎Go‎ — ‎spans‎ يدوية:

go get go.opentelemetry.io/otel \
       go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp \
       go.opentelemetry.io/otel/sdk/trace

هيئ المتتبع في main.go ثم أنشئ ‎spans‎ حول العمليات الحرجة:

tracer := otel.Tracer("my-go-service")
ctx, span := tracer.Start(ctx, "fetch-user-details")
defer span.End()
span.SetAttributes(attribute.String("user.id", userID))

في الحالات الثلاث، تظهر ‎traces‎ في واجهة ‎SigNoz‎ تحت الخدمات في ثوانٍ من أول طلب.

ضبط رتنشن ‎ClickHouse‎ والتخزين البارد

على ‎VPS‎ بمساحة قرص محدودة، قد تملأ البيانات القرص في غضون أسابيع بالإعدادات الافتراضية (3 أيام للـ‎traces‎، 30 يوماً للمقاييس).

ضبط الرتنشن من الواجهة: اذهب إلى الإعدادات ← فترة الاحتفاظ لضبط مدد مختلفة للـ‎traces‎ والمقاييس والسجلات. لوكالة تدير مشاريع متعددة، 7 أيام للـ‎traces‎ و90 يوماً للمقاييس توازن جيد.

‎ClickHouse TTL‎ مع حجم تخزين بارد:

إذا كان لديك حجم ثانٍ منخفض التكلفة مُثبَّت على /mnt/cold، يمكنك إعداد ‎ClickHouse‎ لنقل البيانات القديمة تلقائياً:

<storage_configuration>
  <disks>
    <default/>
    <cold_disk>
      <type>local</type>
      <path>/mnt/cold/clickhouse/</path>
    </cold_disk>
  </disks>
  <policies>
    <tiered>
      <volumes>
        <hot><disk>default</disk></hot>
        <cold><disk>cold_disk</disk></cold>
      </volumes>
    </tiered>
  </policies>
</storage_configuration>

ثم طبّق سياسة ‎TTL‎ على جدول ‎traces‎ في ‎SigNoz‎:

ALTER TABLE signoz_traces.distributed_signoz_index_v2
  MODIFY TTL toDateTime(timestamp) + INTERVAL 7 DAY
  TO VOLUME 'cold',
  toDateTime(timestamp) + INTERVAL 30 DAY DELETE;

التنبيهات المخصصة في ‎SigNoz‎

بمجرد إضافة التتبع لتطبيقاتك، يملأ ‎SigNoz‎ تلقائياً عرض الخدمات بزمن الاستجابة ‎P50/P99‎ ومعدل الأخطاء والإنتاجية لكل خدمة.

تنبيه على زمن الاستجابة ‎P99‎: اذهب إلى التنبيهات ← قاعدة تنبيه جديدة، اختر تنبيه يستند إلى مقياس، وحدد الشرط : p99(signoz_latency_bucket{service_name="my-api"}) > 500.

تنبيه على معدل الأخطاء: استخدم الشرط rate(signoz_calls_total{service_name="my-api",status_code="STATUS_CODE_ERROR"}[5m]) > 0.05 للإطلاق عند تجاوز 5% من الاستدعاءات للفشل.

كشف الشذوذ: يدعم ‎SigNoz‎ قواعد تنبيه من نوع Anomaly — حدد نافذة مرجعية (مثلاً 7 أيام) وحداً مقبولاً للانحراف. أي تغيُّر غير معتاد في الإنتاجية أو زمن الاستجابة يُطلق التنبيه.

إنشاء لوحة تحكم مخصصة: اذهب إلى لوحات التحكم ← لوحة جديدة، أضف لوحة ‎Time Series‎ واختر مقياس ‎Prometheus‎.

التوسع : ‎standalone‎ أو ‎cluster‎

يتعامل ‎SigNoz‎ في وضع ‎standalone‎ مع نحو عشر خدمات مُضافة إليها تتبع تولّد بضعة آلاف من ‎spans‎ في الثانية. هذا هو حالة الاستخدام المستهدفة لـ‎VPS‎ المطور.

متى تفكر في الانتقال إلى ‎cluster‎:
- يصل ‎VPS‎ بانتظام إلى 80% استخدام ‎CPU‎ على عملية ‎ClickHouse‎.
- يتجاوز حجم ‎traces‎ 5000 ‎span‎/ثانية في الذروة المستمرة.
- تحتاج إلى توافر عالٍ دون توقف عند التحديثات.

التوسع العمودي أولاً: قبل التوزيع، ضاعف ذاكرة ‎VPS‎. ‎ClickHouse‎ مصمم للاستفادة من ذاكرة كبيرة؛ الانتقال من 8 إلى 16 جيجابايت غالباً ما ينقل عنق الزجاجة من ‎CPU‎ إلى الشبكة.

التوسع الأفقي: يوفر ‎SigNoz‎ مخططات ‎Helm‎ لنشر ‎Kubernetes‎ مع ‎ClickHouse‎ موزع. على ‎VPS‎، أبسط نهج هو إضافة ‎VPS‎ ثانٍ مخصص لـ‎ClickHouse‎، متصل بالأول عبر شبكة خاصة.

احذر من قتل ‎ClickHouse‎ بسبب نقص الذاكرة

على ‎VPS‎ بأقل من 4 جيجابايت ذاكرة متاحة، قد يقتل ‎kernel‎ لينكس عملية ‎ClickHouse‎ بـ ‎exit code 137‎.

التشخيص:

dmesg | grep -i oom

ستجد سطراً مثل Out of memory: Killed process XXXX (clickhouse-serv).

العلاج: أضف ذاكرة إلى ‎VPS‎ (موصى به)، أو حدّ استخدام ‎ClickHouse‎ للذاكرة بإضافة max_memory_usage=2000000000 إلى /etc/clickhouse-server/users.xml.

‎SigNoz‎ مقابل ‎Datadog‎ و‎Grafana Cloud‎

مرّر الجدول أفقيًا

المعيار‎SigNoz‎ (استضافة ذاتية)‎Datadog‎‎Grafana Cloud‎
التكلفة الشهرية (5 خدمات)تكلفة ‎VPS‎ فقط (~10-20€)~75-150$ + مقاييس مخصصةمجاني حتى 10k سلسلة، ثم ~8$/1k
‎Traces‎ موزعةنعم (‎OpenTelemetry‎ أصيل)نعم (عميل احتكاري)نعم (‎Tempo‎، عبر ‎OTLP‎)
المقاييسنعم (متوافقة مع ‎Prometheus‎)نعم (احتكارية + ‎Prometheus‎)نعم (‎Mimir‎، متوافقة مع ‎Prometheus‎)
السجلاتنعم (مدمجة)نعم (تكلفة إضافية)نعم (‎Loki‎، تكلفة إضافية)
سيادة البياناتكاملة — بياناتك على ‎VPS‎بيانات عند ‎Datadog‎ (US/EU)بيانات عند ‎Grafana Labs‎
التعقيد التشغيليمتوسط (‎Docker‎، خادم واحد)لا شيء (‎SaaS‎)منخفض (‎SaaS‎)
التحديثاتيدوية (‎foundryctl‎)تلقائيةتلقائية
الدعممجتمع + خطة مدفوعةمدفوع (مضمّن)مجتمع + خطة مدفوعة

استكشاف الأخطاء المتعمق

الواجهة لا تُحمَّل على المنفذ 8080: تحقق من أن حاوية signoz-frontend تعمل وأن جدار الحماية يسمح بالمنفذ.

التتبعات لا تظهر: أكثر الأسباب شيوعاً هو متغير OTEL_EXPORTER_OTLP_ENDPOINT غير صحيح. تأكد أن ‎URL‎ يشير إلى ‎IP‎ العام للـ‎VPS‎ (وليس localhost)، وأن المنفذ 4318 لـ‎OTLP/HTTP‎ مفتوح. اختبار سريع:

curl -v http://<IP_VPS>:4318

ردّ 405 Method Not Allowed يؤكد أن الـ‎collector‎ يستمع.

حاوية ‎ClickHouse‎ تعيد التشغيل: أكّد بـ dmesg | grep -i oom. لتحديد استهلاك الذاكرة:

echo '<max_memory_usage>2000000000</max_memory_usage>' \
  >> /etc/clickhouse-server/users.xml
docker compose restart clickhouse

توقف بدء تشغيل ‎SigNoz‎: إذا ظلت حاوية signoz في حالة starting لأكثر من 5 دقائق، فـ‎ClickHouse‎ لم يصبح جاهزاً بعد. تحقق من سجلات ‎ClickHouse‎:

docker compose logs clickhouse --tail=50

امتلاء القرص أو صلاحيات غير كافية على حجم البيانات هي الأسباب الأكثر شيوعاً.

‎VPS‎ مُصمَّم لـ ‎SigNoz‎ وأدواتك التطويرية

تبدأ خططنا للمطورين من 4 جيجابايت رام مع أقراص ‎SSD‎ وعرض نطاق ترددي سخي. انشر منظومة المراقبة في دقائق واحتفظ بملكية بياناتك الكاملة.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة