توجيه سجلات التطبيقات السحابية إلى مسار معالجة
يوضح لك هذا الدليل كيفية محاكاة حدث سجل JSON واحد وإرساله والتحقق منه ضمن سير عمل خط أنابيب القابلية للمراقبة.
الهدف: استيعاب سجل تطبيق وهمي، والتحقق من وصوله إلى خط الأنابيب، وإعداده للتوجيه إلى وجهة، مثل Splunk أو Elastic أو S3.
لماذا هذا مهم
قبل إنشاء قواعد تحليل معقدة أو توجيه البيانات إلى أدوات إدارة المعلومات والأحداث الأمنية (SIEM) المكلفة، يجب عليك التحقق من مسار الاستيعاب الخاص بك. يؤكد سير العمل هذا ما يلي:
- أن رمز API الخاص بك يعمل.
- أن خط الأنابيب يقبل بنية JSON الخاصة بك.
- أنه يمكنك رؤية البيانات في الوقت الفعلي.
قبل البدء
تأكد من أن لديك:
- رمز API (مع أذونات
ingest). - معرف الدفق الفريد الخاص بك (من واجهة مستخدم النظام الأساسي).
- وصول إلى محطة طرفية (لتشغيل
curl) أو Postman.
نظرة عامة على خط الأنابيب
- Mermaid (صورة/image)
- Mermaid (كود/code)
- ASCII
flowchart LR
A[تطبيق سحابي] -->|سجل JSON| B[واجهة برمجة تطبيقات الاستيعاب]
B --> C{محرك التوجيه}
C -->|قاعدة المطابقة| D[عارض البيانات المباشر]
C -->|لا توجد مطابقة| E[إسقاط / دلو افتراضي]
[تطبيق سحابي]
|
| |سجل JSON|
v
[واجهة برمجة]
[تطبيقات الاستيعاب]
|
v
{ محرك التوجيه }
/ \
| قاعدة | لا توجد
| مطابقة | مطابقة
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.
- Filter:
level == "ERROR" - Action: التوجيه إلى
S3-ArchiveوSlack-Alerts. - Save & Deploy.
أرسل طلب curl مرة أخرى.
- تحقق من دلو S3 الخاص بك.
- تحقق من قناة Slack الخاصة بك.
6. تحسين خط الأنابيب
الآن بعد أن أصبح لديك تدفق عمل، فكر في إضافة:
- التحليل: استخرج
customer_idإلى حقل من المستوى الأعلى. - الإثراء: أضف علامة
team_ownerبناءً على اسمservice. - الإخفاء: قم بإخفاء
customer_idإذا كانت معلومات تعريف شخصية (PII).
استكشاف الأخطاء وإصلاحها
| رمز الخطأ | السبب المحتمل / الحل |
|---|---|
401 غير مصرح به | تحقق من أذونات رمز API الخاص بك. |
400 طلب غير صحيح | تحقق من صحة بناء جملة JSON. |
404 غير موجود | تحقق من صحة X-Stream-Id. |
مشكلات الطابع الزمني | تأكد من استخدام تنسيق التوقيت العالمي المنسق (UTC) ISO 8601. |
البيانات لا تظهر | تحقق مما إذا كان لديك مرشح نشط يستبعد السجل الجديد. |
الخطوات التالية
- مرجع واجهة برمجة التطبيقات (API) للاستيعاب
- مفاهيم القابلية للمراقبة
- حاول إرسال أنواع مختلفة من السجلات، مثل سجلات VM وسجلات الحاويات وأحداث واجهة برمجة التطبيقات (API).