متروك — مخطط v1.xتوثّق هذه الصفحة مخطط Helm بنمط v1.x inline-template، وهو في وضع الصيانة ولن يتلقّى مزايا جديدة بعد الآن. لعمليات النشر الجديدة، استخدم مخطط v2.x. ولترحيل عملية نشر حالية من v1.x، راجع دليل الترقية.
يمكن العثور على مخطط Helm الخاص بـ ClickStack هنا، وهو الطريقة الموصى بها لعمليات النشر في بيئة الإنتاج.
يوفّر مخطط Helm افتراضيًا جميع المكوّنات الأساسية، بما في ذلك:
- ClickHouse
- HyperDX
- جامع OpenTelemetry (OTel)
- MongoDB (لحالة التطبيق الدائمة)
ومع ذلك، يمكن تخصيصه بسهولة ليتكامل مع عملية نشر ClickHouse قائمة — على سبيل المثال، مستضافة على ClickHouse Cloud.
يدعم المخطط أفضل ممارسات Kubernetes القياسية، بما في ذلك:
- إعدادات خاصة بكل بيئة عبر
values.yaml
- حدود الموارد والتوسعة على مستوى الـ pod
- إعداد TLS وIngress
- إدارة الأسرار وإعداد المصادقة
- تجارب إثبات المفهوم
- بيئات الإنتاج
المتطلبات الأساسية
- Helm v3+
- عنقود Kubernetes (يُوصى بالإصدار v1.20+)
kubectl مُعَدّ للتعامل مع عنقودك
أضف مستودع Helm لـ ClickStack
أضف مستودع Helm لـ ClickStack:helm repo add clickstack https://clickhouse.github.io/ClickStack-helm-charts
helm repo update
تثبيت ClickStack
لتثبيت chart الخاص بـ ClickStack باستخدام القيم الافتراضية:helm install my-clickstack clickstack/clickstack
تحقّق من التثبيت
تحقّق من التثبيت:kubectl get pods -l "app.kubernetes.io/name=clickstack"
عندما تصبح جميع وحدات الـPod جاهزة، تابع.إعادة توجيه المنافذ
تتيح إعادة توجيه المنافذ الوصول إلى HyperDX وإعداده. أمّا المستخدمون الذين ينشرون في بيئات الإنتاج، فينبغي لهم بدلًا من ذلك إتاحة الخدمة عبر مورد Ingress أو موازن تحميل لضمان وصول شبكي مناسب، وإنهاء TLS، وقابلية التوسع. وتُعد إعادة توجيه المنافذ أنسب للتطوير المحلي أو للمهام الإدارية لمرة واحدة، وليست مناسبة للبيئات طويلة الأمد أو عالية التوافر.kubectl port-forward \
pod/$(kubectl get pod -l app.kubernetes.io/name=clickstack -o jsonpath='{.items[0].metadata.name}') \
8080:3000
إعداد Ingress لبيئة الإنتاجفي عمليات النشر المخصّصة لبيئة الإنتاج، اضبط Ingress مع TLS بدلًا من إعادة توجيه المنفذ. راجع دليل تكوين Ingress للاطلاع على تعليمات إعداد مفصّلة. الانتقال إلى واجهة المستخدم
زُر http://localhost:8080 للوصول إلى واجهة HyperDX.أنشئ مستخدمًا بإدخال اسم مستخدم وكلمة مرور يستوفيان المتطلبات.عند النقر على Create، ستُنشأ مصادر البيانات لمثيل ClickHouse الذي نُشر باستخدام مخطط Helm.تجاوز إعداد الاتصال الافتراضييمكنك تجاوز إعداد الاتصال الافتراضي لمثيل ClickHouse المدمج. لمزيد من التفاصيل، راجع “Using ClickHouse Cloud”. تخصيص القيم (اختياري)
يمكنك تخصيص الإعدادات باستخدام خيارات --set. على سبيل المثال:helm install my-clickstack clickstack/clickstack --set key=value
بدلًا من ذلك، حرِّر ملف values.yaml. لاسترجاع القيم الافتراضية:helm show values clickstack/clickstack > values.yaml
مثال للإعداد:replicaCount: 2
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- host: hyperdx.example.com
paths:
- path: /
pathType: ImplementationSpecific
helm install my-clickstack clickstack/clickstack -f values.yaml
استخدام Kubernetes Secrets (اختياري)
للتعامل مع البيانات الحساسة مثل مفاتيح API أو بيانات اعتماد قاعدة البيانات، استخدم Kubernetes Secrets. توفّر مخططات Helm الخاصة بـ HyperDX ملفات secrets افتراضية يمكنك تعديلها وتطبيقها على الـ cluster لديك.استخدام secrets مُعدّة مسبقًا
يتضمّن مخطط Helm قالب secret افتراضيًا موجودًا في charts/clickstack/templates/secrets.yaml. يوفّر هذا الملف بنية أساسية لإدارة secrets.إذا كنت بحاجة إلى تطبيق secret يدويًا، فعدّل قالب secrets.yaml المرفق ثم طبّقه:apiVersion: v1
kind: Secret
metadata:
name: hyperdx-secret
annotations:
"helm.sh/resource-policy": keep
type: Opaque
data:
API_KEY: <base64-encoded-api-key>
طبّق مورد Secret على عنقودك:kubectl apply -f secrets.yaml
إنشاء سر Kubernetes مخصص
إذا كنت تفضّل ذلك، يمكنك إنشاء سر Kubernetes مخصص يدويًا:kubectl create secret generic hyperdx-secret \
--from-literal=API_KEY=my-secret-api-key
الإشارة إلى مورد secret
للإشارة إلى مورد secret في values.yaml:hyperdx:
apiKey:
valueFrom:
secretKeyRef:
name: hyperdx-secret
key: API_KEY
إدارة مفاتيح APIللاطلاع على إرشادات تفصيلية لإعداد مفتاح API، بما في ذلك أساليب التهيئة المتعددة وإجراءات إعادة تشغيل الكبسولات، راجع دليل إعداد مفتاح API.
عند استخدام ClickHouse Cloud، يجب على المستخدمين تعطيل مثيل ClickHouse الذي ينشره مخطط Helm وتحديد بيانات اعتماد Cloud:
# specify ClickHouse Cloud credentials
export CLICKHOUSE_URL=<CLICKHOUSE_CLOUD_URL> # full https url
export CLICKHOUSE_USER=<CLICKHOUSE_USER>
export CLICKHOUSE_PASSWORD=<CLICKHOUSE_PASSWORD>
# how to overwrite default connection
helm install my-clickstack clickstack/clickstack \
--set clickhouse.enabled=false \
--set clickhouse.persistence.enabled=false \
--set otel.clickhouseEndpoint=${CLICKHOUSE_URL} \
--set clickhouse.config.users.otelUser=${CLICKHOUSE_USER} \
--set clickhouse.config.users.otelUserPassword=${CLICKHOUSE_PASSWORD}
بدلاً من ذلك، يمكنك استخدام ملف values.yaml:
clickhouse:
enabled: false
persistence:
enabled: false
config:
users:
otelUser: ${CLICKHOUSE_USER}
otelUserPassword: ${CLICKHOUSE_PASSWORD}
otel:
clickhouseEndpoint: ${CLICKHOUSE_URL}
hyperdx:
defaultConnections: |
[
{
"name": "External ClickHouse",
"host": "http://your-clickhouse-server:8123",
"port": 8123,
"username": "your-username",
"password": "your-password"
}
]
helm install my-clickstack clickstack/clickstack -f values.yaml
# or if installed...
# helm upgrade my-clickstack clickstack/clickstack -f values.yaml
الإعدادات الخارجية المتقدمةلعمليات النشر في بيئات الإنتاج التي تستخدم تهيئة قائمة على Secret، أو OTel collectors خارجية، أو إعدادات مبسطة، راجع دليل خيارات النشر.
ملاحظات حول بيئة production
يثبّت هذا مخطط، افتراضيًا، أيضًا ClickHouse وجامع OTel. ومع ذلك، في بيئة production، يُنصح بإدارة ClickHouse وجامع OTel بشكل منفصل.
لتعطيل ClickHouse وجامع OTel، اضبط values التالية:
helm install my-clickstack clickstack/clickstack \
--set clickhouse.enabled=false \
--set clickhouse.persistence.enabled=false \
--set otel.enabled=false
أفضل الممارسات لبيئة الإنتاجلعمليات النشر في بيئة الإنتاج، بما في ذلك إعداد التوافر العالي، وإدارة الموارد، وإعداد Ingress/TLS، والإعدادات الخاصة بـ Cloud (GKE وEKS وAKS)، راجع:
افتراضيًا، توجد مهمة واحدة في إعدادات الـمخطط على شكل cronjob، وهي مسؤولة عن التحقق مما إذا كان ينبغي إطلاق التنبيهات. وفيما يلي خيارات تهيئتها:
| المَعلمة | الوصف | الافتراضي |
|---|
tasks.enabled | تمكين/تعطيل مهام cron في الـcluster. افتراضيًا، ستشغّل صورة HyperDX مهام cron ضمن العملية نفسها. غيّرها إلى true إذا كنت تفضّل استخدام مهمة cron منفصلة في الـcluster. | false |
tasks.checkAlerts.schedule | جدول Cron لمهمة check-alerts | */1 * * * * |
tasks.checkAlerts.resources | طلبات الموارد والحدود لمهمة check-alerts | راجع values.yaml |
للترقية إلى إصدار أحدث:
helm upgrade my-clickstack clickstack/clickstack -f values.yaml
للتحقق من إصدارات مخطط Helm المتاحة:
helm search repo clickstack
الترقية إلى v2.xإذا كنت تريد الترحيل إلى المخطط المعتمد على المخطط الفرعي في v2.x، فراجع دليل الترقية للحصول على إرشادات الترحيل. هذا تغيير غير متوافق — لا يُدعَم إجراء helm upgrade موضعيًا.
لإزالة النشر:
helm uninstall my-clickstack
سيؤدي هذا إلى إزالة جميع الموارد المرتبطة بالإصدار، لكن قد تظل البيانات الدائمة (إن وُجدت).
kubectl logs -l app.kubernetes.io/name=clickstack
استكشاف أخطاء التثبيت الفاشل وإصلاحها
helm install my-clickstack clickstack/clickstack --debug --dry-run
kubectl get pods -l app.kubernetes.io/name=clickstack
موارد إضافية لاستكشاف الأخطاء وإصلاحهاللمشكلات المتعلقة بـ Ingress، أو مشكلات TLS، أو استكشاف أخطاء عمليات النشر على Cloud وإصلاحها، راجع ما يلي:
اختيار المخطط: Map مقابل JSON
يخزّن ClickStack السمات في أعمدة Map(LowCardinality(String), String) افتراضيًا. هذا هو المخطط الموصى به لأعباء عمل Observability. وعند دمجه مع تسلسل map المقسّم إلى buckets وفهارس النص على مفاتيح map وقيمه، فإنه يوفّر عمليات بحث انتقائية من دون الكلفة الإضافية لإدخال كل مفتاح على حدة كما في JSON subcolumns الديناميكية.
يتوفر مخطط من النوع JSON في مرحلة بيتا للتقييم على أعباء العمل التي تتضمن مجموعة صغيرة ومستقرة من مفاتيح السمات. وهو غير موصى به كخيار افتراضي. راجع Map مقابل نوع JSON للاطلاع على المقارنة الكاملة ومتغيرات البيئة المطلوبة لتمكين دعم JSON.
آخر تعديل في ٢٥ يونيو ٢٠٢٦