คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
ลักษณะปัญหา
ข้อมูล Analytics หายไปใน Edge UI เนื่องจากเซิร์ฟเวอร์ Qpidd ไม่โอนข้อความ Analytics ไปยัง PostgreSQL ใน Edge คอมโพเนนต์ edge-qpid-server
จะสอดคล้องกับเซิร์ฟเวอร์ Qpidd
Qpidd มีคิวสำหรับ Analytics แต่ละกลุ่มอยู่ 2 คิว ดังนี้
ax-q-axgroup001-consumer-group-001
คิวนี้จะเก็บข้อความการวิเคราะห์ที่พุชมาจาก Message Processor และ Router ข้อความจะดึงมาจากที่นี่โดย
edge-qpid-server
ซึ่งจะแยกวิเคราะห์ข้อความและแทรกลงใน PostgreSQL เมื่อประมวลผลข้อความสำเร็จ ข้อความเหล่านั้นจะถูกนำออกจากคิวax-q-axgroup001-consumer-group-001-dl
คิวนี้เป็นคิวจดหมายที่ส่งไม่ได้ ซึ่งทำหน้าที่เป็นปลายทางของข้อความที่
edge-qpid-server
ประมวลผลไม่สำเร็จ จึงไม่มีความประสงค์ที่จะรับอีกต่อไป โดยทั่วไปแล้ว ระบบจะป้อนข้อมูลเมื่อมีข้อมูลการนำส่งเกินจำนวนครั้งสูงสุด หรือหาก PostgreSQL ปฏิเสธการแทรกข้อมูลใหม่เนื่องจากข้อผิดพลาดของรันไทม์
ข้อความแสดงข้อผิดพลาด
ซึ่งสาเหตุของปัญหาอาจเกิดจากข้อผิดพลาดรันไทม์หลายอย่างจากคอมโพเนนต์ edge-qpid-server
โดยปกติ หาก edge-qpid-server
ได้รับข้อผิดพลาดเกี่ยวกับรันไทม์จาก PostgreSQL ระบบจะสร้างคิวจดหมายที่ส่งไม่ได้หากยังไม่มี แล้วส่งข้อความต่อไปนี้ไปที่นั่น
yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.
สาเหตุที่เป็นไปได้
สาเหตุ | คำอธิบาย | วิธีแก้ปัญหาที่เหมาะสมสำหรับ |
---|---|---|
ข้อความติดอยู่ในคิวจดหมายที่ส่งไม่ได้ของ qpidd | edge-qpid-server ไม่เข้าใจข้อความที่อ่านจากโบรกเกอร์ของ Qpidd หรือไม่สามารถคงข้อความไปยัง PostgreSQL ได้
|
ผู้ใช้ Edge Private Cloud |
ขั้นตอนการวินิจฉัยทั่วไป
เรียกใช้คำสั่งต่อไปนี้เพื่อดูสถิติคิวของ Qpidd
qpid-stat -q
เอาต์พุตจะแสดงชุดของคิวที่ลงทะเบียนกับโบรกเกอร์ หากคิวที่มีชื่อลงท้ายด้วย "-dl" มีการเติมข้อมูลข้อความ จากนั้นมีข้อความค้างอยู่ที่คิวจดหมายที่ส่งไม่ได้
Queues queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind ======================================================================================================================== ax-q-axgroup-001-consumer-group-001 Y 0 185 185 0 13.8m 13.8m 6 2 ax-q-axgroup-001-consumer-group-001-dl Y 0 70 70 0 3.9m 3.9m 0 2
สาเหตุ: ข้อความค้างอยู่ในคิวจดหมายที่ส่งไม่ได้ของ qpidd
การวินิจฉัย
เงื่อนไขนี้อาจเกิดขึ้นในสถานการณ์ต่อไปนี้
- การอัปเกรดเกิดขึ้นในอดีต ซึ่งในขณะที่ PostgreSQL หยุดทำงาน
- PostgreSQL หยุดทำงานชั่วคราวเนื่องจากปัญหาของเครือข่าย
edge-qpid-server
พยายามส่งข้อความไปยัง PostgreSQL แต่ PostgreSQL แสดงข้อผิดพลาดด้านรันไทม์
ความละเอียด
จดบันทึกชื่อคิวจากขั้นตอนการวิเคราะห์ทั่วไป เช่น
ax-q-axgroup-001-consumer-group-001
ax-q-axgroup-001-consumer-group-001-dl
เรียกใช้คำสั่ง
qpid-tool
เพื่อป้อนข้อความแจ้งqpid
แบบอินเทอร์แอกทีฟดังนี้qpid-tool
คอมมานี้จะแสดงค่าต่อไปนี้
Management Tool for QPID qpid:
เรียกใช้
list broker
เพื่อรับรายการโบรกเกอร์ที่ใช้งานอยู่:list broker
คอมมานี้จะแสดงค่าต่อไปนี้
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
ตำแหน่งที่คอลัมน์
ID
ระบุรหัสของโบรกเกอร์จดรหัสของโบรกเกอร์ไว้ ในตัวอย่างนี้คือ 125
เรียกใช้คำสั่งต่อไปนี้เพื่อย้ายข้อความจากคิวจดหมายที่ส่งไม่ได้กลับไปยังคิวจริง
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}
คอมมานี้จะแสดงค่าต่อไปนี้
OK (0) - {}
หากไม่มีเอาต์พุตก็ไม่ต้องดำเนินการใดๆ พร้อมกับทำให้ไม่มีข้อความให้ย้าย หากไม่เห็น
OK(0)
คุณควรติดต่อทีมสนับสนุนของ Apigee Edgeออกจากเทอร์มินัล qpid-tool
quit
รอ 5 นาที แล้วเรียกใช้ขั้นตอนการวิเคราะห์อีกครั้งจากขั้นตอนการวิเคราะห์ทั่วไป ตรวจสอบว่าข้อความในคิวจริงกำลังได้รับการประมวลผล และตรวจสอบว่าจำนวนข้อความจดหมายที่ส่งไม่ได้ยังคงเท่ากับ 0
หากยังคงพบปัญหาอยู่ ให้ไปที่ส่วนถัดไป
ต้องรวบรวมข้อมูลการวินิจฉัย
หากปัญหายังคงอยู่แม้ว่าจะทำตามคำแนะนำด้านบนแล้ว โปรดรวบรวมข้อมูลการวินิจฉัยต่อไปนี้ ติดต่อและแชร์กับทีมสนับสนุนของ Apigee Edge
- บันทึกของ Qpidd:
/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
- บันทึก Postgresql:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
- บันทึกเซิร์ฟเวอร์ Edge-qpid:
/opt/apigee/var/log/edge-qpid-server/logs/system.log
- บันทึก Edge-postgres-server:
/opt/apigee/var/log/edge-postgres-server/logs/system.log
สถิติคิวของ Qpidd:
qpid-stat -q
กลุ่ม Analytics แสดงผลโดยคำสั่ง curl ต่อไปนี้
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax