الأمان والمراقبة10 دقيقة قراءة

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

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

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

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

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

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

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

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

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

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

01

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

curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
docker compose version
02

الخطوة 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
03

الخطوة 3 — تشغيل النشر

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

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

04

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

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

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

05

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

انتظر حتى تكون جميع الحاويات في حالة ‎healthy‎:

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

اعتمد على الواجهة عبر http://IP_VPS:8080. يمكنك تسجيل الدخول مع بريد إلكتروني وكلمة مرور عند أول فتح.

06

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

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

ufw deny 8080
server {
    listen 443 ssl;
    server_name signoz.نطاقك.com;
    location / { proxy_pass http://127.0.0.1:8080; }
}

إضافة التتبع لتطبيقك باستخدام ‎OpenTelemetry SDK‎

يستقبل ‎SigNoz‎ التتبعات عبر بروتوكول ‎OTLP‎. ‎Node.js‎:

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

إنشاء لوحات التحكم والتنبيهات

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

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

ضبط تنبيه على زمن الاستجابة ‎P99‎: اذهب إلى التنبيهات → قاعدة تنبيه جديدة، اختر تنبيه يستند إلى مقياس، وحدد الشرط واختر قناة الإشعار.

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

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

التشخيص:

dmesg | grep -i oom

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

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

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

حل المشكلات الشائعة

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

التتبعات لا تظهر في الواجهة: تحقق من إمكانية الوصول إلى المنفذ 4318 من تطبيقك: curl -v http://<IP_VPS>:4318.

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

خطط لفترة الاحتفاظ ببيانات ‎ClickHouse‎

يحتفظ ‎SigNoz‎ افتراضياً بالتتبعات لمدة 3 أيام والمقاييس لـ30 يوماً. اضبط فترة الاحتفاظ في واجهة ‎SigNoz‎ تحت الإعدادات → فترة الاحتفاظ. بالنسبة لوكالة تدير مشاريع متعددة، 7 أيام للتتبعات و90 يوماً للمقاييس يُقدّم توازناً جيداً.

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

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

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

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