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

أنت تعرض مستندات 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 Private Cloud

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

التشخيص

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

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-server. للتحقق من عدد التحليلات هناك مجموعات، يُرجى تشغيل طلب البيانات من واجهة برمجة التطبيقات التالي:

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-server الذي تم إعداده لكل مجموعة 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 إلى مجموعتَين. تتمثل أسرع طريقة لحل المشكلة في حذف معلومات خادم Postgres من مجموعة Axgroup واحدة وتعيين جميع النطاقات (مجموعات المؤسسة والبيئة) إلى المجموعة الأخرى. للقيام بذلك، اتبع هذه الخطوات:

  1. إزالة مكونات خادم postgres من إحدى المجموعتين الرئيسيتين باستخدام الإرشادات في إضافة مكوّنات الإحصاءات وحذفها في مجموعات الإحصاءات إذا كنت تواجه مشكلات في النطاقات غير الإنتاجية فقط، فاختر مجموعة x ليس لديه أي نطاق إنتاج لهذا التمرين. بخلاف ذلك، اختر مجموعة axgroup ذات وأقل عدد من النطاقات.
  2. إزالة جميع النطاقات من axgroup التي لم تعد تحتوي على أي خوادم بوسيلة، وتلك التي ترى فيها مشكلة السمة المخصصة من مجموعة 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. تفعيل الإحصاءات باستخدام تفعيل analytics API
  4. أعد تشغيل مكون Edge-postgres-server على عقدة postgres الرئيسية، مكونات Edge-qpid-server التي ربما ثبتها، باستخدام الأوامر التالية:
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. تحقَّق من أنّ الخطأ الوارد في القسم رسالة الخطأ أعلاه لم يعد يحدث في ملف السجل لخادم Postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log
  6. تأكَّد من ظهور السمات المخصّصة في واجهة مستخدم Edge.

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

يجب جمع معلومات التشخيص

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

  1. خادم Edge-postgres-server /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