Apache APISIX تدمج مع Google Cloud Logging لتحسين معالجة السجلات
API7.ai
December 22, 2021
يعد التسجيل (Logging) جزءًا مهمًا من البنية التحتية للأنظمة الموزعة. يمكن أن يساعد المطورين على مراقبة حالة تشغيل الخدمة، وتحسين كفاءة استكشاف الأخطاء وإصلاحها، وإجراء تحليل متعدد الأبعاد لتحسين الاستقرار العام للأنظمة وكفاءة التشغيل.
Google Cloud Logging هي خدمة إدارة سجلات في الوقت الفعلي مقدمة من Google Cloud، توفر تخزينًا بسعة إكسابايت (EB)، وخدمات البحث والتحليل والتنبيه. يسمح متصفح سجلات Google Cloud Logging بالبحث والفرز والتحليل بسهولة وكفاءة، كما يوفر استعلامات محفوظة وميزات رسومية غنية لجعل نتائج تصفية السجلات قابلة للاسترجاع وأكثر وضوحًا.
سبق أن دعمت Apache APISIX تكامل HTTP Logger، TCP Logger، Kafka Logger، UDP Logger، RocketMQ Logger، SkyWalking Logger، Aliyun Cloud Logging(SLS) والعديد من حلول خدمات السجلات المفتوحة المصدر والسحابية الأخرى.
مؤخرًا، أضافت Apache APISIX أيضًا دعمًا لـ Google Cloud Logging، مما يوفر للمستخدمين حلًا جديدًا لتسجيل السجلات عند استخدام Apache APISIX كبوابة: استخدام google-cloud-logging لإعادة توجيه سجلات طلبات Apache APISIX إلى خدمة Google Cloud Logging للتحليل والتخزين.
عند تمكين المكون الإضافي، ستأخذ Apache APISIX معلومات سياق الطلب في مرحلة السجل (Log Phase) وتقوم بتسلسلها إلى LogEntry الخاص بـ Google Cloud Logging، ثم تقدم بيانات السجل المسلسلة إلى قائمة الانتظار المجمعة، وعندما تصل قائمة الانتظار المجمعة إلى عتبة زمنية أو عدد إدخالات محددة من قبل المستخدم، سيتم إعادة توجيه بيانات السجل إلى خدمة Google Cloud Logging عبر واجهة برمجة تطبيقات Google Cloud.
ستشرح هذه المقالة كيفية تكوين واستخدام خدمة Google Cloud Logging في Apache APISIX.
تكوين Google Cloud
- افتح متصفحك وقم بزيارة الصفحة الرئيسية لـ Google Cloud.
- أدخل اسم المستخدم وكلمة المرور لتسجيل الدخول إلى وحدة تحكم Google Cloud.
- انقر على القائمة اليسرى لوحدة تحكم Google Cloud واختر "IAM & Admin > Create a Project" لبدء إنشاء مشروع.
- أدخل اسم المشروع، واختر اسم المؤسسة، ثم انقر على "CREATE" لإنشاء المشروع.
- عند نجاح إنشاء المشروع، سيظهر إشعار في الزاوية العلوية اليمنى لوحدة التحكم يشير إلى نجاح الإنشاء.
- انقر في النافذة لاختيار المشروع، أو اختر مسار عملية المشروع في شريط التنقل العلوي للصفحة الرئيسية لوحدة التحكم. بعد اختيار المشروع، سيتم إعادة توجيهك إلى الصفحة الرئيسية لوحدة التحكم، حيث يمكنك رؤية بيانات المشروع الحالي في شريط التنقل العلوي ومعلومات المشروع في مركز المعلومات.
- بعد الانتهاء من إنشاء المشروع، تحتاج إلى إنشاء حساب خدمة للمشروع. يرجى العودة إلى الصفحة الرئيسية لوحدة تحكم Google Cloud والنقر على "IAM & Admin > Service Account" في القائمة اليسرى لبدء إنشاء حساب خدمة.
- انقر على "CREATE SERVICE ACCOUNT" لإنشاء حساب الخدمة.
- أدخل اسم حساب الخدمة والمعرف (عادةً ما يتبع المعرف إنشاء الحساب)، ثم انقر على "CREATE AND CONTINUE".
- انقر على "Role" واكتب "Logging Admin" في مربع البحث للبحث عن هذا الدور واختر "Logging Admin" كدور.
- انقر على "DONE" لإكمال إنشاء حساب الخدمة والانتقال إلى الصفحة الرئيسية لحساب الخدمة. في هذه المرحلة، يمكنك رؤية الحساب الذي أنشأته للتو وتفاصيله في القائمة.
- انقر على "Manage keys" في العمود الأخير من حساب الخدمة للدخول إلى واجهة إدارة المفاتيح السرية.
- انقر على "ADD KEY > Create new key" لبدء إنشاء مفتاح سري جديد.
- اختر نوع المفتاح السري كـ "JSON" في الصفحة المنبثقة، ثم انقر على "CREATE" لإنشاء مفتاح سري جديد.
- سيتم تنزيل معلومات المفتاح الخاص تلقائيًا إلى مجلد التنزيلات الافتراضي في النظام من خلال متصفحك. عند تمكين مكون google-cloud-logging الإضافي، ستحتاج إلى استخدام المعلومات الموجودة في هذا المفتاح الخاص، لذا يرجى حفظ ملف المفتاح الخاص.
تكوين Apache APISIX
تمكين مكون google-cloud-logging الإضافي
الخيار 1: تحميل ملف المفتاح
- قم بتحميل ملف المفتاح الخاص إلى خادم عقدة Apache APISIX.
- قم بتكوين مسار الملف إلى
google-cloud-logging.auth_file
، كما هو موضح أدناه:
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri":"/logging.do",
"upstream":{
"type":"roundrobin",
"nodes":{
"127.0.0.1:1980":1
}
},
"plugins":{
"google-cloud-logging":{
// ملف المفتاح الخاص بـ Google Cloud Logging
"auth_file":"/path/to/apache-apisix-fcafc68c2f41.json",
// الحد الأقصى لعدد الإدخالات في قائمة الانتظار المجمعة.
"batch_max_size": 1,
// الحد الأقصى للوقت لتحديث المخزن المؤقت بالثواني.
"inactive_timeout": 10
}
}
}'
الخيار 2: التصريح بالإعدادات في JSON
- افتح ملف المفتاح الخاص.
- قم بتكوين قيمة
project_id
إلىgoogle-cloud-logging.auth_config.project_id
. - قم بتكوين قيمة
private_key
إلىgoogle-cloud-logging.auth_config.private_key
. كما هو موضح أدناه:
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri":"/logging.do",
"upstream":{
"type":"roundrobin",
"nodes":{
"127.0.0.1:1980":1
}
},
"plugins":{
"google-cloud-logging":{
// ملف المفتاح الخاص بـ Google Cloud Logging
"auth_config":{
"project_id":"apache-apisix",
"private_key":"-----BEGIN RSA PRIVATE KEY-----your private key-----END RSA PRIVATE KEY-----"
},
// الحد الأقصى لعدد الإدخالات في قائمة الانتظار المجمعة.
"batch_max_size": 1,
// الحد الأقصى للوقت لتحديث المخزن المؤقت بالثواني.
"inactive_timeout": 10
}
}
}'
المعلمات
الاسم | مطلوب | القيمة الافتراضية | الوصف |
---|---|---|---|
auth_config | لا | n/a | ملف المفتاح الخاص بـ Google Cloud Logging. يجب تكوين إما auth_config أو auth_file. |
auth_config.private_key | نعم | n/a | المفتاح الخاص بـ Google Cloud Logging. |
auth_config.project_id | نعم | n/a | معرف المشروع لحساب خدمة Google. |
auth_config.token_uri | لا | oauth2.googleapis.com/token | URI لطلب رمز حساب خدمات Google. |
auth_config.entries_uri | لا | logging.googleapis.com/v2/entries | واجهة برمجة تطبيقات كتابة سجل Google Log Service. |
auth_config.scopes | لا | ["https://www.googleapis.com/auth/logging.read","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/logging.admin","https://www.googleapis.com/auth/cloud-platform"] | نطاق وصول حساب خدمات Google، راجع: OAuth 2.0 Scopes for Google APIs |
auth_file | لا | n/a | مسار ملف JSON لحساب خدمات Google (يجب تكوين إما auth_config أو auth_file) |
ssl_verify | لا | TRUE | تمكين مصادقة SSL، يتم التكوين وفقًا لخيارات OpenResty documentation. |
resource | لا | {"type": "global"} | موارد Google المراقبة، راجع: MonitoredResource. |
log_id | لا | apisix.apache.org%2Flogs | معرف السجل في Google، راجع: LogEntry. |
max_retry_count | لا | 0 | الحد الأقصى لعدد المحاولات قبل الإزالة من خط المعالجة. |
retry_delay | لا | 1 | عدد الثواني التي يجب تأخير تنفيذ العملية إذا فشل التنفيذ. |
buffer_duration | لا | 60 | الحد الأقصى لمدة (بالثواني) لأقدم إدخال في الدفعة التي يجب معالجتها أولاً. |
inactive_timeout | لا | 10 | الحد الأقصى للوقت لتحديث المخزن المؤقت بالثواني. |
batch_max_size | لا | 100 | الحد الأقصى للوقت لتحديث المخزن المؤقت بالثواني. |
التحقق من تشغيل المكون الإضافي بشكل طبيعي
-
قم بتشغيل الأمر التالي لإرسال طلب إلى Google Cloud Logging.
curl -i http://127.0.0.1:9080/logging.do HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Date: Fri, 10 Dec 2021 09:57:52 GMT Server: APISIX/2.11.0 Hello, Google Cloud Logging
-
افتح متصفحك وقم بزيارة الصفحة الرئيسية لـ Google Cloud.
-
أدخل اسم المستخدم وكلمة المرور لتسجيل الدخول إلى وحدة تحكم Google Cloud.
-
عرض سجل الطلبات المرسلة من خلال متصفح السجلات، والنتائج المعادة موضحة أدناه.
تعطيل مكون google-cloud-logging الإضافي
يمكنك إزالة كتلة التكوين المتعلقة بـ google-cloud-logging لتعطيل المكون الإضافي إذا كنت قد انتهيت من استخدامه.
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri":"/logging.do",
"upstream":{
"type":"roundrobin",
"nodes":{
"127.0.0.1:1980":1
}
},
"plugins":{
}
}'
الخلاصة
تشرح هذه المقالة الخطوات التفصيلية لتوصيل Apache APISIX مع Google Cloud Logging. نأمل أن تمنحك هذه المقالة فهمًا أوضح لاستخدام Google Cloud Logging في Apache APISIX وتسهل عملية التنفيذ العملي اللاحقة.
لا تلتزم Apache APISIX فقط بالحفاظ على أدائها العالي، ولكنها تولي أيضًا أهمية كبيرة لبناء نظام بيئي مفتوح المصدر. حاليًا، تحتوي Apache APISIX على أكثر من 10 مكونات إضافية متعلقة بالسجلات وتدعم التكامل مع مشاريع السجلات المفتوحة المصدر الرئيسية في الصناعة.
إذا كان لديك حاجة للتكامل مع سجلات أخرى، قم بزيارة GitHub الخاص بـ Apache APISIX واترك اقتراحاتك عبر issue؛ أو اشترك في قائمة البريد الخاصة بـ Apache APISIX وعبّر عن أفكارك عبر البريد الإلكتروني.
مقالات ذات صلة
تكامل Apache APISIX مع SkyWalking لإنشاء معالجة كاملة للسجلات
Apache APISIX & RocketMQ تساعد في قدرات مراقبة سجلات واجهات برمجة التطبيقات للمستخدمين