คุณกำลังดูเอกสารประกอบของ 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 สำหรับคู่องค์กรและสภาพแวดล้อม | หากไม่มีเส้นทาง 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
ปกติแล้วปัญหานี้จะเกิดขึ้นเมื่อองค์กรเริ่มต้นใช้งานพร้อมกันเมื่อมีกลุ่มการวิเคราะห์มากกว่า 1 กลุ่มที่ใช้ UUID ของเซิร์ฟเวอร์ Postgres เดียวกัน หากต้องการตรวจสอบว่ามีกลุ่ม Analytics กี่กลุ่ม ให้เรียกใช้ 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 อย่างรวดเร็วเพื่อระบุว่าเหมือนกัน
{ "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 2 กลุ่มไม่ได้ วิธีที่เร็วที่สุดในการแก้ปัญหาคือการลบข้อมูลเซิร์ฟเวอร์ Postgres ออกจาก Axgroup หนึ่ง และกำหนดขอบเขตทั้งหมด (ชุดค่าผสมองค์กรและสภาพแวดล้อม) ไปยังกลุ่มอื่น โดยทำตามขั้นตอนต่อไปนี้
- นำคอมโพเนนต์เซิร์ฟเวอร์ Postgres ออกจาก Axgroup 1 กลุ่มจาก 2 กลุ่มโดยทำตามวิธี การเพิ่มและลบคอมโพเนนต์ Analytics ในกลุ่ม Analytics หากพบปัญหาในขอบเขตที่ไม่ได้ใช้งานจริงเท่านั้น ให้เลือก axgroup ที่ไม่มีขอบเขตการใช้งานจริงสำหรับแบบฝึกหัดนี้ หรือเลือก axgroup ที่มีจำนวนขอบเขตน้อยที่สุด
- นำขอบเขตทั้งหมดออกจาก 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'
- เปิดใช้ 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
- ยืนยันว่าข้อผิดพลาดที่ระบุในส่วน Error Message ข้างต้นไม่ได้เกิดขึ้นในไฟล์บันทึกของเซิร์ฟเวอร์ 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