Apache APISIX تدمج مع Google Cloud Logging لتحسين معالجة السجلات

API7.ai

December 22, 2021

Ecosystem

Apache APISIX-Google Cloud Logging cover

يعد التسجيل (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

  1. افتح متصفحك وقم بزيارة الصفحة الرئيسية لـ Google Cloud.
  2. أدخل اسم المستخدم وكلمة المرور لتسجيل الدخول إلى وحدة تحكم Google Cloud.
  3. انقر على القائمة اليسرى لوحدة تحكم Google Cloud واختر "IAM & Admin > Create a Project" لبدء إنشاء مشروع. إنشاء مشروع
  4. أدخل اسم المشروع، واختر اسم المؤسسة، ثم انقر على "CREATE" لإنشاء المشروع. إنشاء مشروع-2
  5. عند نجاح إنشاء المشروع، سيظهر إشعار في الزاوية العلوية اليمنى لوحدة التحكم يشير إلى نجاح الإنشاء. إشعار المشروع
  6. انقر في النافذة لاختيار المشروع، أو اختر مسار عملية المشروع في شريط التنقل العلوي للصفحة الرئيسية لوحدة التحكم. بعد اختيار المشروع، سيتم إعادة توجيهك إلى الصفحة الرئيسية لوحدة التحكم، حيث يمكنك رؤية بيانات المشروع الحالي في شريط التنقل العلوي ومعلومات المشروع في مركز المعلومات. عرض مشروعك
  7. بعد الانتهاء من إنشاء المشروع، تحتاج إلى إنشاء حساب خدمة للمشروع. يرجى العودة إلى الصفحة الرئيسية لوحدة تحكم Google Cloud والنقر على "IAM & Admin > Service Account" في القائمة اليسرى لبدء إنشاء حساب خدمة. بدء إنشاء حساب خدمة
  8. انقر على "CREATE SERVICE ACCOUNT" لإنشاء حساب الخدمة. إنشاء حساب خدمة
  9. أدخل اسم حساب الخدمة والمعرف (عادةً ما يتبع المعرف إنشاء الحساب)، ثم انقر على "CREATE AND CONTINUE". إنشاء حساب خدمة-2
  10. انقر على "Role" واكتب "Logging Admin" في مربع البحث للبحث عن هذا الدور واختر "Logging Admin" كدور. إنشاء حساب خدمة-3
  11. انقر على "DONE" لإكمال إنشاء حساب الخدمة والانتقال إلى الصفحة الرئيسية لحساب الخدمة. في هذه المرحلة، يمكنك رؤية الحساب الذي أنشأته للتو وتفاصيله في القائمة. معلومات حساب الخدمة
  12. انقر على "Manage keys" في العمود الأخير من حساب الخدمة للدخول إلى واجهة إدارة المفاتيح السرية. الدخول إلى واجهة إدارة المفاتيح السرية
  13. انقر على "ADD KEY > Create new key" لبدء إنشاء مفتاح سري جديد. إنشاء مفتاح سري جديد
  14. اختر نوع المفتاح السري كـ "JSON" في الصفحة المنبثقة، ثم انقر على "CREATE" لإنشاء مفتاح سري جديد. إنشاء مفتاح سري جديد-2
  15. سيتم تنزيل معلومات المفتاح الخاص تلقائيًا إلى مجلد التنزيلات الافتراضي في النظام من خلال متصفحك. عند تمكين مكون google-cloud-logging الإضافي، ستحتاج إلى استخدام المعلومات الموجودة في هذا المفتاح الخاص، لذا يرجى حفظ ملف المفتاح الخاص. تنزيل المفتاح الخاص

تكوين Apache APISIX

تمكين مكون google-cloud-logging الإضافي

الخيار 1: تحميل ملف المفتاح

  1. قم بتحميل ملف المفتاح الخاص إلى خادم عقدة Apache APISIX.
  2. قم بتكوين مسار الملف إلى 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

  1. افتح ملف المفتاح الخاص.
  2. قم بتكوين قيمة project_id إلى google-cloud-logging.auth_config.project_id.
  3. قم بتكوين قيمة 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/tokenURI لطلب رمز حساب خدمات 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الحد الأقصى للوقت لتحديث المخزن المؤقت بالثواني.

التحقق من تشغيل المكون الإضافي بشكل طبيعي

  1. قم بتشغيل الأمر التالي لإرسال طلب إلى 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
    
  2. افتح متصفحك وقم بزيارة الصفحة الرئيسية لـ Google Cloud.

  3. أدخل اسم المستخدم وكلمة المرور لتسجيل الدخول إلى وحدة تحكم Google Cloud.

  4. عرض سجل الطلبات المرسلة من خلال متصفح السجلات، والنتائج المعادة موضحة أدناه. عرض السجل

تعطيل مكون 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 تساعد في قدرات مراقبة سجلات واجهات برمجة التطبيقات للمستخدمين

Tags: