คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
ลักษณะปัญหา
ตัวแปรที่กำหนดเองที่สร้างขึ้นโดยใช้ เครื่องมือรวบรวมสถิติ นโยบายจะไม่แสดงในส่วนมิติข้อมูลที่กำหนดเองในรายงานที่กำหนดเองของ Analytics ใน Edge UI
ข้อความแสดงข้อผิดพลาด
บันทึกระบบ 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 /organizations/
ไม่มีมิติข้อมูลที่กำหนดเอง |
ผู้ใช้ Edge Private Cloud |
สาเหตุ: ไม่มีเส้นทางพร็อพเพอร์ตี้ ZooKeeper สำหรับการรวมองค์กรและสภาพแวดล้อม
การวินิจฉัย
เปิดใช้ Analytics สำหรับชุดค่าผสมสภาพแวดล้อมองค์กรผ่าน
เปิดใช้ Analytics API ซึ่งจะป้อนข้อมูล /organizations/
ในต้นไม้ ZooKeeper เมื่อ API นี้ล้มเหลว คอมโพเนนต์ 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
โดยปกติ กรณีนี้จะเกิดขึ้นเมื่อองค์กรเริ่มต้นใช้งานโดยมี มีกลุ่ม Analytics ที่ใช้ UUID เซิร์ฟเวอร์ Postgres เดียวกัน เพื่อดูจำนวนข้อมูลวิเคราะห์ มีกลุ่มอยู่ ให้เรียกใช้การเรียก API ต่อไปนี้
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
หาก API นี้แสดงผลหลายกลุ่ม แสดงว่าอาจเป็นสาเหตุของปัญหา ในตัวอย่างต่อไปนี้ โปรดสังเกตว่ามี 2 กลุ่มซึ่งแยกความแตกต่างด้วยเครื่องหมายขีดกลางเท่านั้น 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 ชุดเดียวกันให้กับกลุ่มแอกซ์ 2 กลุ่มได้ วิธีที่เร็วที่สุดในการแก้ไขปัญหาคือการลบข้อมูลเซิร์ฟเวอร์แบบ Postgres ออกจากกลุ่ม Axgroup เดียว และกำหนดขอบเขตทั้งหมด (ชุดค่าผสมองค์กรและสภาพแวดล้อม) ให้กับอีกกลุ่ม วิธีการคือ ให้ทำตามขั้นตอนต่อไปนี้
- นำคอมโพเนนต์ของเซิร์ฟเวอร์ Postgres ออกจาก 1 ใน 2 Axgroups โดยใช้วิธีการ เวลา การเพิ่มและลบคอมโพเนนต์การวิเคราะห์ในกลุ่ม Analytics หากพบปัญหาเฉพาะกับขอบเขตที่ไม่ได้ใช้งานจริง ให้เลือก axgroup ไม่มีขอบเขตการผลิตใดๆ สำหรับการฝึกครั้งนี้ หรือเลือก axgroup ที่มีเมธอด จำนวนขอบเขตน้อยที่สุด
- นำขอบเขตทั้งหมดออกจาก axgroup ที่ไม่มีเซิร์ฟเวอร์ Postgres อีกต่อไป
ที่คุณพบปัญหาเกี่ยวกับมิติข้อมูลที่กำหนดเองจาก axgroup สมมติว่า
axgroup-001
จากตัวอย่างด้านบนคือกลุ่มที่คุณต้องการใช้ คุณจะ ต้องใช้รายการต่อไปนี้เพื่อนำขอบเขตขององค์กร myorg ออก และสภาพแวดล้อม prodcurl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
- เปิดใช้งาน Analytics โดยใช้ เปิดใช้ 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 UI หรือไม่
หากปัญหายังคงอยู่ ให้ไปที่ต้องรวบรวมข้อมูลการวินิจฉัย
ต้องรวบรวมข้อมูลการวินิจฉัย
หากปัญหายังคงอยู่แม้จะทำตามคำแนะนำก่อนหน้านี้แล้ว โปรดรวบรวม ข้อมูลการวินิจฉัยต่อไปนี้ ติดต่อและแชร์กับทีมสนับสนุนของ 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