توجيه سجلات التطبيقات السحابية إلى خط أنابيب
يرشدك هذا الدليل إلى "مرحبًا بالعالم" لخطوط أنابيب المراقبة: إرسال حدث سجل JSON واحد من تطبيق سحابي (تتم محاكاته عبر واجهة برمجة التطبيقات) والتحقق منه في المنصة.
الهدف: إدخال سجل تطبيق وهمي، والتحقق من وصوله إلى خط الأنابيب، وإعداده للتوجيه إلى وجهة (مثل Splunk أو Elastic أو S3).
لماذا هذا مهم
قبل أن تنشئ قواعد تحليل معقدة أو توجّه البيانات إلى أنظمة SIEM باهظة الثمن، عليك أن تثق بمسار الاستيعاب الخاص بك.
يؤكد سير العمل هذا:
- يعمل رمز API الخاص بك.
- يقبل خط الأنابيب بنية JSON الخاصة بك.
- يمكنك رؤية البيانات في الوقت الفعلي.
قبل البدء
تأكد من أن لديك:
- رمز مميز لواجهة برمجة التطبيقات (مع أذونات
ingest). - معرف البث الفريد الخاص بك (من واجهة مستخدم المنصة).
- الوصول إلى المحطة الطرفية (لتشغيل
curl) أو Postman.
نظرة عامة على خط الأنابيب
- Mermaid (رمز)
- Mermaid (صورة)
- مخطط ASCII
flowchart LR
A[تطبيق سحابي] -->|سجل JSON| B[واجهة برمجة تطبيقات الاستيعاب]
B --> C{محرك التوجيه}
C -->|قاعدة مطابقة| D[عارض البيانات المباشرة]
C -->|لا يوجد تطابق| E[إسقاط / الدلو الافتراضي]
[تطبيقك]
|
|
|
(POST /v1/streams/ingest)
v
+-----------------------+
| عقدة الاستيعاب |
+-----------------------+
|
v
+-----------------------+
| عارض البيانات المباشرة | <-- نحن نتحقق هنا
+-----------------------+
1. إنشاء أو تحديد دفق
في منصة الرصد الخاصة بك:
- انتقل إلى التدفقات (Streams) > الإدارة (Management).
- انقر على تدفق جديد (New Stream) (أو اختر
default-logs). - انسخ معرف التدفق (Stream ID) (على سبيل المثال،
st_12345). -
- (اختياري) قم بتعيين نهج الاحتفاظ (الافتراضي هو عادةً 7 أيام).
2. قم بإنشاء حدث سجل عينة
سنقوم بمحاكاة سجل تطبيق سحابي. احفظ هذا باسم app-log.json.
{
"timestamp": "2025-11-15T08:30:00Z",
"service": "payment-gateway",
"level": "ERROR",
"message": "Transaction failed: Gateway timeout",
"transaction_id": "txn_998877",
"meta": {
"region": "us-east-1",
"customer_id": "cus_554433"
}
}
ملاحظة: احتفظ بـ
timestampبصيغة ISO 8601 لضمان الفهرسة الصحيحة.
3. إرسال حدث السجل
استخدم curl لمحاكاة التطبيق الذي يرسل السجل.
export STREAM_ID="your_stream_id_here"
export API_TOKEN="your_api_token_here"
curl -X POST "https://api.observability-platform.com/v1/streams/ingest" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-H "X-Stream-Id: $STREAM_ID" \
-d @app-log.json
الاستجابة المتوقعة
{
"status": "accepted",
"ingest_id": "evt_abc12345",
"accepted_items": 1
}
إذا رأيت status: accepted، فهذا يعني أن خط الأنابيب تلقى البيانات.
4. تحقق من السجل في عارض البيانات المباشرة
- انتقل إلى استكشاف (Explore) أو التتبع المباشر (Live Tail) في واجهة مستخدم المنصة.
- حدد البث الخاص بك (
st_12345). - أضف عامل تصفية:
service == "payment-gateway". - يجب أن ترى الحدث الخاص بك يظهر على الفور:
[ERROR] 2025-11-15T08:30:00Z service=payment-gateway msg="Transaction failed..."
5. توجيه السجلات إلى وجهة
الآن بعد تدفق البيانات، قم بإنشاء قاعدة توجيه:
- انتقل إلى خطوط الأنابيب (Pipelines) > قواعد التوجيه (Routing Rules).
- انقر على قاعدة جديدة (New Rule).
- ** مرشح:**
level == "ERROR" - الإجراء: توجيه إلى
S3-ArchiveوSlack-Alerts. - حفظ ونشر.
أرسل طلب curl مرة أخرى.
- تحقق من دلو S3 الخاص بك.
- تحقق من قناة Slack الخاصة بك.
6. تحسين خط الأنابيب
الآن بعد أن أصبح لديك تدفق عمل، فكر في إضافة:
- التحليل: استخرج
customer_idفي حقل المستوى الأعلى. - الإثراء: إضافة علامة
team_ownerبناءً على اسمservice. - الإخفاء: إخفاء
customer_idإذا كان عبارة عن معلومات شخصية.
استكشاف الأخطاء وإصلاحها
- 401 غير مصرح (Unauthorized): تحقق من أذونات الرمز المميز لواجهة برمجة التطبيقات.
- 400 طلب غير صالح (Bad Request): تحقق من صحة بناء جملة JSON الخاصة بك.
- 404 غير موجود (Not Found): تحقق من صحة
X-Stream-Id. - مشكلات الطابع الزمني: تأكد من أنك تستخدم تنسيق ISO 8601 بالتوقيت العالمي المنسق.
- البيانات لا تظهر: تحقق مما إذا كان لديك عامل تصفية نشط يستثني السجل الجديد.
الخطوات التالية
- مرجع واجهة برمجة تطبيقات Ingest API
- مفاهيم قابلية الملاحظة
- جرب إرسال أنواع مختلفة من السجلات (سجلات الآلة الافتراضية، سجلات الحاوية، أحداث واجهة برمجة التطبيقات).