Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

البدء مع ClickStack المُدار

انشر ClickStack المُدار على ClickHouse Cloud، وأرسل حدثًا تجريبيًا عبر مسار الاستيعاب لديك، وتأكد من أن الحدث متاح في واجهة ClickStack.

تشغّل ClickHouse Cloud الواجهة الخلفية لـ ClickHouse بينما تحتفظ بالتحكّم في مسار الاستيعاب والمخطط. يوفّر ClickStack المُدار ما يلي:

  • التوسّع التلقائي لقدرات المعالجة بشكل مستقل عن التخزين
  • احتفاظ منخفض التكلفة وغير محدود عمليًا استنادًا إلى تخزين الكائنات
  • عزل مستقل لأعباء عمل القراءة والكتابة باستخدام warehouses
  • مصادقة متكاملة
  • نسخ احتياطية مؤتمتة
  • ميزات الأمان والامتثال
  • ترقيات سلسة

قبل البدء

يمكنك أيضًا إرسال البيانات مباشرةً إلى ClickHouse باستخدام تكامل مدعوم ومخطط بيانات خاص بك.

إنشاء خدمة ClickHouse Cloud

أكمِل خطوة إنشاء خدمة ClickHouse في دليل البدء السريع لـ ClickHouse Cloud. قبل المتابعة، تأكد من أن الخدمة تعمل.

تجهيز بيئة الاستيعاب

  • لبدء استخدام OpenTelemetry Collector جديد، ثبّت Docker. أما في Kubernetes، فانشر الـ collector باستخدام Helm.
  • لاستخدام collector موجود، شغّله بصفته gateway role، وتأكد من أن توزيعه يتضمن ClickHouse exporter. ستضيف الإعدادات المطلوبة في هذا الدليل.

إعداد ClickStack المُدار

اختر مصدر الإدخال وإعدادات المُجمِّع

من خدمة ClickHouse Cloud، شغّل ClickStack. في صفحة بدء الاستخدام في ClickStack، اختر بدء الاستيعاب.

بدء الاستيعاب

في صفحة اختيار مصدر الاستيعاب، اختر OpenTelemetry.

اختيار OpenTelemetry كمصدر للاستيعاب

يُنشئ ClickStack أمر المُجمِّع باستخدام بيانات اعتماد المسؤول default. نوصي باستخدام بيانات اعتماد مخصصة للاستيعاب لفصل صلاحية الوصول الخاصة بالاستيعاب عن الإدارة وتجنب الاعتماد على كلمة مرور المسؤول.

إنشاء بيانات اعتماد مخصصة للاستيعاب (موصى به)

في ClickHouse Cloud، افتح وحدة تحكم SQL لخدمتك ونفّذ:

CREATE USER `clickstack-ingest` IDENTIFIED WITH sha256_password BY '<password>';
GRANT SELECT, INSERT, CREATE DATABASE, CREATE TABLE, CREATE VIEW ON default.* TO `clickstack-ingest`;

في الأمر المُنشأ، استبدل CLICKHOUSE_USER="default" بـ CLICKHOUSE_USER="clickstack-ingest" واضبط CLICKHOUSE_PASSWORD على كلمة مرور المستخدم المخصص.

للمتابعة باستخدام بيانات اعتماد المسؤول default، انسخ الأمر من علامة التبويب بدء المُجمِّع. يملأ ClickStack نقطة نهاية الخدمة مسبقًا. استبدل العنصر النائب لكلمة المرور بكلمة مرور خدمتك. إذا لم تعد تملكها، اجمع تفاصيل الاتصال أو أعد تعيينها.

يتبع الأمر التنسيق التالي:

docker run -e CLICKHOUSE_ENDPOINT="https://<host>:8443" \
    -e CLICKHOUSE_USER="default" \
    -e CLICKHOUSE_PASSWORD="<your_password_here>" \
    -p 4317:4317 -p 4318:4318 \
    clickhouse/clickstack-otel-collector:latest

استبدل <host> و<your_password_here> بالقيم الخاصة بخدمة ClickHouse Cloud، ثم شغّل الأمر.

يعمل المُجمِّع في الواجهة الأمامية. اترك هذه الطرفية مفتوحة واستخدم طرفية ثانية لتنفيذ الأوامر المتبقية في هذا الدليل.

إرسال بيانات تجريبية

أرسل سجل اختبار بالطابع الزمني الحالي:

NOW_NANO="$(date +%s)000000000"

curl -i "http://localhost:4318/v1/logs" \
  -H "Content-Type: application/json" \
  --data-binary @- <<EOF
{
  "resourceLogs": [{
    "resource": {
      "attributes": [{
        "key": "service.name",
        "value": {"stringValue": "clickstack-docs-test"}
      }]
    },
    "scopeLogs": [{
      "scope": {"name": "clickstack-docs-test"},
      "logRecords": [{
        "timeUnixNano": "${NOW_NANO}",
        "severityText": "INFO",
        "body": {"stringValue": "ClickStack ingestion test"}
      }]
    }]
  }]
}
EOF

إذا كنت تستخدم مُجمِّعًا موجودًا، فاستبدل http://localhost:4318 بنقطة نهاية OTLP عبر HTTP الخاصة به. إذا كان المستقبِل يتطلب مصادقة، فأضف الترويسة المطلوبة إلى أمر curl.

يعيد الطلب الناجح HTTP/1.1 200 OK.

ابدأ الاستكشاف وتأكد من استيعاب البيانات

بعد أن يكتشف ClickStack مصادر بيانات OpenTelemetry، اختر بدء الاستكشاف لفتح عرض البحث. ابحث عن ClickStack ingestion test.

يجب أن تتضمن النتائج حدث الاختبار باسم الخدمة clickstack-docs-test.

عرض سجلات ClickStack يُظهر حدث اختبار استيعاب ClickStack

تجهيز بيئة استقبال البيانات

ابدأ بـخط أنابيب Vector قائم قادر على إرسال البيانات إلى ClickHouse.

إعداد Managed ClickStack

اختر Vector وهيِّئ استيعاب البيانات

من خدمة ClickHouse Cloud الخاصة بك، شغّل ClickStack. في صفحة بدء الاستخدام في ClickStack، حدد بدء الاستيعاب.

بدء إدخال البيانات

في صفحة Choose an ingestion source (اختيار مصدر الاستيعاب)، حدّد Vector.

اختر Vector كمصدر لاستيعاب البيانات

Vector هو خط أنابيب لبيانات المراقبة عالي الأداء ومحايد تجاه المورّدين، ويحظى بشعبية خاصة في استيعاب السجلات نظرًا لمرونته واستهلاكه المنخفض للموارد.

عند استخدام Vector مع ClickStack، تكون أنت من يحدد المخطط (schema)، وبإمكانه اتباع اصطلاحات OpenTelemetry أو استخدام حقول خاصة بأحداثك.

إنشاء قاعدة بيانات وجدول

أنشئ قاعدة بيانات وجدولاً قبل تكوين sink في Vector.

في ClickHouse Cloud، افتح SQL Console الخاص بـ service الخاصة بك وأنشئ قاعدة بيانات:

على سبيل المثال، أنشئ قاعدة بيانات للسجلات (logs):

CREATE DATABASE IF NOT EXISTS logs

بعد ذلك، أنشئ جدولاً يتطابق مخططه مع بنية بيانات السجلات لديك. ويفترض المثال التالي استخدام تنسيق سجل وصول Nginx الكلاسيكي:

CREATE TABLE logs.nginx_logs
(
    `time_local` DateTime,
    `remote_addr` IPv4,
    `remote_user` LowCardinality(String),
    `request` String,
    `status` UInt16,
    `body_bytes_sent` UInt64,
    `http_referer` String,
    `http_user_agent` String,
    `http_x_forwarded_for` LowCardinality(String),
    `request_time` Float32,
    `upstream_response_time` Float32,
    `http_host` String
)
ENGINE = MergeTree
ORDER BY (toStartOfMinute(time_local), status, remote_addr);

يجب أن يتوافق جدولك مع مخطط الخرج الذي ينتجه Vector. عدّل المخطط بما يلائم بياناتك، مع اتباع أفضل الممارسات الموصى بها للمخططات.

نوصي بشدة بفهم كيفية عمل المفاتيح الأساسية في ClickHouse واختيار مفتاح ترتيب يتوافق مع أنماط الوصول الخاصة بك. راجع الإرشادات الخاصة بـ ClickStack بشأن اختيار المفتاح الأساسي.

تهيئة وجهة الإخراج (sink) في ClickHouse

بعد التأكد من وجود الجدول، أضف وجهة إخراج (sink) لـ ClickHouse إلى تكوين Vector:

sinks:
  clickhouse:
    type: clickhouse
    inputs:
      - your_input
    endpoint: "https://<host>:8443"
    database: logs
    table: nginx_logs
    format: json_each_row
    skip_unknown_fields: true
    auth:
      strategy: basic
      user: default
      password: "<your_password_here>"

استبدل your_input بالإدخال الخاص بـ pipeline الحالي لديك. واستبدل <host> و<your_password_here> بالقيم الخاصة بخدمة ClickHouse Cloud لديك. وإذا لزم الأمر، غيّر قاعدة البيانات أو الجدول الهدف.

استخدم بيانات اعتماد مخصصة لتلقّي البيانات (موصى به)

لبيئة production، أنشئ مستخدمًا مخصصًا وامنحه صلاحية الوصول إلى جدول الهدف لـ Vector. في ClickHouse Cloud، افتح SQL Console لخدمتك وشغّل:

CREATE USER `clickstack-ingest` IDENTIFIED WITH sha256_password BY '<password>';
GRANT SELECT, INSERT ON logs.nginx_logs TO `clickstack-ingest`;

استبدل default بـ clickstack-ingest في وجهة Vector، واضبط password على كلمة مرور المستخدم المخصص.

احفظ التكوين المُحدَّث، ثم أعد تحميل Vector أو أعد تشغيله باستخدام عملية النشر الحالية لديك.

لمزيد من الأمثلة على استيعاب البيانات باستخدام Vector، راجع الاستيعاب باستخدام Vector، أو راجع توثيق وجهة (sink) ClickHouse في Vector للاطلاع على الخيارات المتقدمة.

إنشاء مصدر بيانات ClickStack

أنشئ مصدر بيانات للجدول الذي يعبّئه خط أنابيب Vector لديك. سيطالبك ClickStack بإنشاء مصدر عند أول تسجيل دخول.

يقوم النموذج تلقائيًا بتعبئة التعبيرات الخاصة بمخطط OpenTelemetry الافتراضي. أما بالنسبة إلى جدول Nginx الذي أنشأته في هذا الدليل، فقم بتهيئة المصدر بالقيم التالية:

الإعداد القيمة
الاسم سجلات Nginx
نوع بيانات المصدر السجل
اتصال الخادم default
قاعدة البيانات logs
الجدول nginx_logs
عمود الطابع الزمني time_local
SELECT الافتراضي time_local, remote_addr, status, request
تعبير اسم الخدمة 'nginx'
تعبير مستوى السجل multiIf(status >= 500, 'ERROR', status >= 400, 'WARN', 'INFO')
تعبير سمات السجل map('http.remote_addr', toString(remote_addr), 'http.status_code', toString(status), 'http.request', request)
تعبير سمات المورد map('service.name', 'nginx')
عمود الطابع الزمني المعروض time_local
تعبير معرّف التتبّع ''
تعبير معرّف الامتداد ''
تعبير العمود التلقائي request

لا يحتوي جدول Nginx على عمود Body. اضبط Body Expression على:

concat(
  remote_addr, ' ',
  remote_user, ' ',
  '[', formatDateTime(time_local, '%d/%b/%Y:%H:%i:%S %z'), '] ',
  '"', request, '" ',
  toString(status), ' ',
  toString(body_bytes_sent), ' ',
  '"', http_referer, '" ',
  '"', http_user_agent, '" ',
  '"', http_x_forwarded_for, '" ',
  toString(request_time), ' ',
  toString(upstream_response_time), ' ',
  '"', http_host, '"'
)

للتعرف على إعدادات المصدر الأخرى، راجع مرجع تكوين ClickStack.

إرسال بيانات اختبارية

أرسل حدثًا نموذجيًا عبر مُدخل مسار Vector الحالي لديك.

للاطّلاع على مزيد من أمثلة مصادر Vector وعمليات التحويل، راجع الاستيعاب باستخدام Vector.

ابدأ الاستكشاف وتحقّق من استيعاب البيانات

بعد إنشاء مصدر البيانات، اختر بدء الاستكشاف لفتح عرض Search. اختر مصدر البيانات الخاص بجدولك وتأكد من احتوائه على الحدث الذي أرسلته.

السجلات في واجهة مستخدم ClickStack

لديك الآن خدمة ClickStack المُدار، ومسار استيعاب فعّال، وحدث اختباري يمكنك فحصه في ClickStack.

الخطوات التالية

إذا تطلّب دليل آخر نقطة نهاية ClickHouse Cloud أو كلمة مرورك، احصل على تفاصيل الاتصال أو أعد تعيينها قبل المتابعة.

إرسال بيانات التطبيق والبنية التحتية

اختر دليلاً لنوع البيانات التي تريد إرسالها إلى ClickStack:

استكشف بيانات نموذجية

استخدم مجموعة بيانات نموذجية لاستكشاف ClickStack ببيانات قياس عن بُعد أكثر ثراءً:

إنشاء بيانات اصطناعية

استخدم مولّدًا لاختبار استيعاب البيانات دون الحاجة إلى تطبيق أو مجموعة بيانات موجودة:

اطّلع على جميع البيانات النموذجية والعروض التوضيحية لـ ClickStack.

الاستعداد للإنتاج

راجع إرشادات الإنتاج وتقدير الموارد قبل استخدام ClickStack لأحمال العمل المستمرة:

لمهام النشر، راجع دليل نشر ClickStack المُدار.

Navigation