أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
المشكلة
لا يظهر المتغيّر المخصّص الذي تم إنشاؤه باستخدام سياسة أداة جمع الإحصاءات ضمن السمات المخصّصة في التقارير المخصّصة في "إحصاءات 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/
مفقودًا، لا يمكن إنشاء سمات مخصّصة. |
مستخدمو Edge Private Cloud |
السبب: مسار سمات ZooKeeper غير متوفّر لمجموعة المؤسسة والبيئة
التشخيص
يتم تفعيل "إحصاءات Google" لمجموعة من المؤسسات والبيئات من خلال
واجهة برمجة التطبيقات Enable analytics التي تملأ /organizations/
في شجرة 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 الذي تم ضبطه لكل مجموعة ax هو نفسه. يمكنك تحديد ذلك بسرعة من خلال تنفيذ ما يلي:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"
يقارن نموذج الناتج التالي بسرعة بين معرّفات UUID الخاصة بخادم postgres لتحديد ما إذا كانت متطابقة:
{ "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 نفسها إلى مجموعتَي axgroups. أسرع طريقة لحلّ المشكلة هي حذف معلومات خادم postgres من مجموعة axgroup واحدة وتعيين جميع النطاقات (مجموعات المؤسسات والبيئات) إلى المجموعة الأخرى. لإجراء ذلك، اتّبِع الخطوات التالية:
- أزِل مكوّنات خادم postgres من إحدى مجموعتَي axgroup باتّباع التعليمات الواردة في مقالة إضافة مكوّنات الإحصاءات وحذفها في مجموعات الإحصاءات. إذا كنت تواجه مشاكل في النطاقات غير الإنتاجية فقط، اختَر مجموعة axgroup التي لا تتضمّن أي نطاق إنتاجي لهذا التمرين. بخلاف ذلك، اختَر مجموعة ax التي تحتوي على أقل عدد من النطاقات.
- أزِل جميع النطاقات من مجموعة 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'
- فعِّل الإحصاءات باستخدام Enable analytics API.
- أعِد تشغيل مكوّن 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
- تأكَّد من أنّ الخطأ الوارد في قسم رسالة الخطأ أعلاه
لم يعُد يظهر في ملف سجلّ خادم Postgres
/opt/apigee/var/log/edge-postgres-server/logs/system.log. - تأكَّد ممّا إذا كانت السمات المخصّصة تظهر في واجهة مستخدم Edge الجديدة.
إذا استمرت المشكلة، انتقِل إلى Must Gather Diagnostic Information.
Must Gather Diagnostic Information
إذا استمرت المشكلة حتى بعد اتّباع التعليمات السابقة، يُرجى جمع معلومات التشخيص التالية. يُرجى التواصل مع فريق دعم Apigee Edge ومشاركة ما يلي:
- edge-postgres-server
/opt/apigee/var/log/edge-postgres-server/logs/system.logمن وقت آخر عملية إعادة تشغيل - ناتج طلب بيانات من واجهة برمجة التطبيقات التالي من Management API:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
- ناتج شجرة ZooKeeper التي تم الحصول عليها باستخدام الأمر التالي:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt