عدم ظهور "المكوّنات المخصّصة" عند ضبط مجموعات عدّة

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

المشكلة

لا يظهر المتغيّر المخصّص الذي تم إنشاؤه باستخدام سياسة جهة جمع الإحصاءات ضمن "السمات المخصّصة" في تقارير "إحصاءات Google" المخصّصة في واجهة مستخدم Edge.

رسالة الخطأ

سيتضمّن سجلّ نظام Edge-postgres-server الخطأ التالي بعد إعادة التشغيل لكل تركيبة مؤسسة/بيئة حيث لا يتوفّر المسار:

KeeperErrorCode = NoNode for
/organizations/<ORG>/environments/<ENV>/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations//environments//properties, reason:
KeeperErrorCode = NoNode for
/organizations//environments//properties

الأسباب المحتملة

السبب الوصف تعليمات استكشاف الأخطاء وإصلاحها التي تنطبق على
مسار خصائص Zookeeper غير متوفّر لتركيبة المؤسسة والبيئة. عندما يكون مسار ZooKeeper /organizations//environments//properties غير متوفّر، لا يمكن إنشاء سمات مخصّصة. مستخدمو Edge الخاص على السحابة الإلكترونية

السبب: مسار خصائص ZooKeeper غير موجود لتركيبة المؤسسة والبيئة

التشخيص

يتم تفعيل "إحصاءات Google" لتركيبة بيئات المؤسسة من خلال تفعيل analytics API، التي تملأ /organizations//environments//properties في شجرة ZooKeeper. عندما تفشل واجهة برمجة التطبيقات هذه، لا يمكن لمكوِّن خادم Edge-postgres-server إنشاء أبعاد مخصصة، وسيظهر الخطأ التالي في System.log:

KeeperErrorCode = NoNode for
/organizations/example/environments/prod/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations/example/environments/prod/properties, reason:
KeeperErrorCode = NoNode for
/organizations/digi/environments/sandbox/properties

يحدث ذلك عادةً عندما يتم إدراج مؤسسة في وقت يكون فيه أكثر من مجموعة إحصاءات واحدة تستخدم المعرّفات الفريدة العالمية (UUID) لخادم Postgres نفسها. للتحقق من عدد مجموعات التحليلات المتوفرة، يمكنك تشغيل طلب واجهة برمجة التطبيقات التالي:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"

وإذا عرضت واجهة برمجة التطبيقات هذه عدة مجموعات، من المرجح أن يكون سبب المشكلة على الأرجح. في المثال التالي، لاحظ أنّ هناك مجموعتَين، وتفصل بينهما واصلة فقط: axgroup-001 وaxgroup001.

[ {
  "name" : "axgroup-001",
  "properties" : {
  },
  "scopes" : [ "VALIDATE~test" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }
}, {
  "name" : "axgroup001",
  "properties" : {
  },
  "scopes" : [ "example~prod" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }

على وجه التحديد، تحدث هذه المشكلة في حال كان معرِّف UUID لخادم Postgres الذي تم إعداده لكل مجموعة Axgroup مماثلاً. يمكنك معرفة ذلك بسرعة من خلال تشغيل ما يلي:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"

تقارن نتيجة النموذج التالي المعرّفات الفريدة العالمية (UUID) لخادم Postgres-server بسرعة لتحديد ما إذا كانت متطابقة:

{  "name" : "axgroup-001",  "properties" : {  },  "scopes" : [ "VALIDATE~test" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]--
"name" : "axgroup001",  "properties" : {  },  "scopes" : [ "myorg~prod" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"aries-datastore" : [ ],    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],

درجة الدقّة

لا يمكن تعيين نفس مجموعة خوادم PostgreSQL إلى مجموعتي xax. تتمثل أسرع طريقة للحل في حذف معلومات الخادم اللاحقة من مجموعة محورية واحدة، وتعيين جميع النطاقات (مجموعات المؤسسات والبيئة) إلى المجموعة الأخرى. للقيام بذلك، اتبع هذه الخطوات:

  1. أزِل مكوّنات الخادم Postgres من إحدى المجموعتَين المحوريتَين باستخدام التعليمات الواردة في إضافة مكوّنات الإحصاءات وحذفها في مجموعات الإحصاءات. إذا كنت تواجه مشاكل فقط مع النطاقات غير الإنتاجية، اختر المجموعة axgroup التي ليس لها أي نطاق إنتاج لهذا التمرين. في الحالات الأخرى، اختَر المجموعة المحورية التي تحتوي على أقل عدد من النطاقات.
  2. أزِل جميع النطاقات من المجموعة Axgroup التي لم تعُد تحتوي على أي خوادم Postgres، وتلك التي تظهر لك مشكلة سمة مخصّصة لها من مجموعة Axgroup الخاصة بها. بافتراض أن axgroup-001 من المثال أعلاه هي المجموعة التي تريد استخدامها، عليك استخدام ما يلي لإزالة النطاق لمؤسسة myorg وبيئة prod:
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. فعِّل ميزة "الإحصاءات" باستخدام تفعيل واجهة برمجة تطبيقات "إحصاءات Google".
  4. أعِد تشغيل مكوِّن Edge-postgres-server في عقدة postgres الرئيسية، وجميع مكونات خادم Edge-qpid التي ربما ثبَّتها، باستخدام الأوامر التالية:
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. تحقق من أن الخطأ المقدم في قسم رسالة الخطأ أعلاه لم يعد يحدث في ملف السجل /opt/apigee/var/log/edge-postgres-server/logs/system.log لخادم Postgres.
  6. تأكّد من ظهور المكوّنات المخصّصة في واجهة مستخدم Edge.

إذا استمرت المشكلة، انتقِل إلى القسم ضرورة جمع معلومات التشخيص.

ضرورة جمع معلومات التشخيص

إذا استمرت المشكلة حتى بعد اتّباع التعليمات السابقة، يُرجى جمع معلومات التشخيص التالية. يمكنك التواصل مع فريق دعم Apigee Edge ومشاركته:

  1. خادم Edge-postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log من وقت إعادة التشغيل الأخيرة.
  2. نتيجة طلب واجهة برمجة التطبيقات Management API التالي:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. ناتج شجرة ZooKeeper الذي تم الحصول عليه باستخدام الأمر التالي:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt