คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
ลักษณะปัญหา
แดชบอร์ดข้อมูลวิเคราะห์ (ประสิทธิภาพของพร็อกซี ประสิทธิภาพเป้าหมาย ฯลฯ) ไม่ได้แสดงใดๆ ใน Edge UI หน้าแดชบอร์ดทั้งหมดจะแสดงข้อความต่อไปนี้
No traffic in the selected date range
ข้อความแสดงข้อผิดพลาด
ปัญหานี้ไม่ทำให้เกิดข้อผิดพลาดที่สังเกตได้
สาเหตุที่เป็นไปได้
ตารางต่อไปนี้แสดงสาเหตุที่เป็นไปได้ของปัญหานี้
สาเหตุ | สำหรับ |
---|---|
ไม่มีการรับส่งข้อมูล API สำหรับสภาพแวดล้อมขององค์กร | Edge สำหรับผู้ใช้ Private Cloud |
ข้อมูลมีอยู่ในฐานข้อมูล Postgres แต่ไม่แสดงใน UI | Edge สำหรับผู้ใช้ Private Cloud |
ข้อมูล Analytics ไม่ถูกพุชไปยังฐานข้อมูล Postgres | Edge สำหรับผู้ใช้ Private Cloud |
การทำให้ Analytics ใช้งานได้ไม่ถูกต้อง | Edge สำหรับผู้ใช้ Private Cloud |
UUID ของเซิร์ฟเวอร์ Analytics ที่ไม่มีอัปเดต | Edge สำหรับผู้ใช้ Private Cloud |
ไม่มีการรับส่งข้อมูล API สำหรับสภาพแวดล้อมขององค์กร
การวินิจฉัย
- ตรวจสอบว่ามีการรับส่งข้อมูลสำหรับพร็อกซี API ในสภาพแวดล้อมขององค์กรที่เฉพาะเจาะจงสำหรับ
ระยะเวลาที่เจาะจงที่คุณพยายามดูข้อมูล Analytics โดยใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้
วิธีการ:
- เปิดใช้การติดตามสำหรับ API ที่ผู้ใช้ของคุณใช้อยู่และ ตรวจสอบว่าคุณรับคำขอในการติดตามได้ไหม
- ดูบันทึกการเข้าถึง NGINX
(
/opt/apigee/var/log/edge-router/nginx/logs/access.log)
และดูว่ามีหรือไม่ รายการใหม่สำหรับพร็อกซี API ในช่วงเวลาที่ระบุ - หากคุณบันทึกข้อมูลจากพร็อกซี API ไปยังเซิร์ฟเวอร์บันทึก เช่น Syslog, Splunk, Loggly หรืออื่นๆ เพื่อดูว่ามีรายการใดในเซิร์ฟเวอร์บันทึกเหล่านี้สำหรับพร็อกซี API สำหรับ ระยะเวลาที่เจาะจง
- หากไม่มีการรับส่งข้อมูล (ไม่มีคำขอ API) ในช่วงเวลาที่ระบุ ข้อมูลการวิเคราะห์จะ ไม่พร้อมใช้งาน คุณจะเห็น "ไม่มีการเข้าชมในช่วงวันที่ที่เลือก" ในข้อมูลวิเคราะห์ หน้าแดชบอร์ด
ความละเอียด
- เรียกใช้พร็อกซี API อย่างน้อย 1 รายการในสภาพแวดล้อมองค์กรที่ระบุ
- รอสักครู่แล้วดูหน้าแดชบอร์ดข้อมูลวิเคราะห์ในแท็บชั่วโมง แล้วดูว่า ข้อมูลจะปรากฏขึ้น
- หากปัญหายังคงอยู่ ให้ไปที่ข้อมูลที่มีอยู่ใน Postgres มีฐานข้อมูลแต่ไม่แสดงใน UI
ข้อมูลมีอยู่ในฐานข้อมูล Postgres แต่ไม่แสดงใน UI
ลักษณะปัญหา
ก่อนอื่น ให้กำหนดความพร้อมใช้งานของข้อมูล Analytics ล่าสุดในฐานข้อมูล Postgres
หากต้องการตรวจสอบว่าข้อมูล Analytics ล่าสุดมีให้บริการใน Postgres Master หรือไม่ โหนด:
- เข้าสู่ระบบเซิร์ฟเวอร์ Postgres แต่ละเซิร์ฟเวอร์ และเรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบว่า
ในโหนด Master Postgres
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
- ในโหนด Master Postgres ให้เข้าสู่ระบบ PostgreSQL
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- ตรวจสอบว่ามีตารางอยู่ใน org-env หรือไม่โดยใช้การค้นหา SQL ต่อไปนี้ใน Postgres
ฐานข้อมูล:
\d analytics."orgname.envname.fact"
- ตรวจสอบว่าข้อมูลล่าสุดมีอยู่ในฐานข้อมูล Postgres โดยใช้ SQL ต่อไปนี้หรือไม่
ข้อความค้นหา:
select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
- หากการประทับเวลาล่าสุดเก่ามาก (หรือไม่มีข้อมูล) แสดงว่าข้อมูลไม่ใช่ ที่มีอยู่ในฐานข้อมูล Postgres สาเหตุที่เป็นไปได้สำหรับปัญหานี้คือข้อมูล ไม่ได้พุชจากเซิร์ฟเวอร์ Qpid ไปยังฐานข้อมูล Postgres ดำเนินการต่อในระบบไม่ได้พุชข้อมูล Analytics ไปยังฐานข้อมูล Postgres
- ถ้ามีข้อมูลล่าสุดในฐานข้อมูล Postgres ในโหนดหลัก โปรดทำตาม ขั้นตอนด้านล่างเพื่อวิเคราะห์สาเหตุที่ข้อมูลไม่แสดงใน Edge UI
การวินิจฉัย
- เปิดใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์
ในเบราว์เซอร์ Chrome และรับ API ที่ใช้จากหนึ่งในแดชบอร์ดข้อมูลวิเคราะห์โดยใช้
ได้ที่ด้านล่าง
- เลือกแท็บ "เครือข่าย" จากเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์
- เริ่มบันทึก
- โหลดแดชบอร์ด Analytics ซ้ำ
- ที่แผงด้านซ้ายมือในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ ให้เลือกแถวที่มี "apiproxy?_optimizer..."
- ในแผงด้านขวามือในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ ให้เลือก "ส่วนหัว" แล้วแตะ "URL คำขอ"
- ต่อไปนี้เป็นตัวอย่างเอาต์พุตจากเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์:
ตัวอย่างเอาต์พุตที่แสดง API ที่ใช้ในหน้าแดชบอร์ดประสิทธิภาพของพร็อกซีจากแท็บเครือข่าย ของเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์สำหรับแดชบอร์ดประสิทธิภาพพร็อกซี
- เรียกใช้การเรียก API การจัดการโดยตรงและตรวจดูว่าคุณได้รับผลลัพธ์หรือไม่ ต่อไปนี้คือตัวอย่าง API
การเรียกแท็บ "วัน" ในหน้าแดชบอร์ดประสิทธิภาพพร็อกซี
curl -u username:password "http://management_server_IP_address:8080/v1/organizations/ org_name/environments/env_name/stats/apiproxy?limit=14400& select=sum(message_count),sum(is_error),avg(total_response_time), avg(target_response_time)&sort=DESC&sortby=sum(message_count),sum(is_error), avg(total_response_time),avg(target_response_time)&timeRange=08%2F9%2F2017+ 18:00:00~08%2F10%2F2017+18:00:00&timeUnit=hour&tsAscending=true"
- ถ้าคุณเห็นการตอบกลับที่สำเร็จแต่ไม่มีข้อมูลใดๆ แสดงว่า เซิร์ฟเวอร์การจัดการไม่สามารถดึงข้อมูลจากเซิร์ฟเวอร์ Postgres ได้เนื่องจากเครือข่าย ปัญหาการเชื่อมต่อ
- ตรวจสอบว่าคุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ Postgres จากเซิร์ฟเวอร์การจัดการได้หรือไม่ โดยทำดังนี้
telnet Postgres_server_IP_address 5432
- หากไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ Postgres ได้ ให้ตรวจสอบว่ามีไฟร์วอลล์หรือไม่ ข้อจำกัดของพอร์ต 5432
- หากมีข้อจำกัดด้านไฟร์วอลล์ นั่นอาจเป็นสาเหตุที่เซิร์ฟเวอร์การจัดการ ไม่สามารถดึงข้อมูลจากเซิร์ฟเวอร์ Postgres ได้
ความละเอียด
- หากมีข้อจำกัดของไฟร์วอลล์ ให้นำออกเพื่อให้เซิร์ฟเวอร์การจัดการสามารถ สื่อสารกับเซิร์ฟเวอร์ Postgres
- หากไม่มีข้อจำกัดของไฟร์วอลล์ ปัญหานี้อาจเกิดจากข้อบกพร่องของเครือข่าย
- หากมีข้อผิดพลาดของเครือข่ายในเซิร์ฟเวอร์การจัดการ การรีสตาร์ทเครื่องอาจแก้ปัญหา ปัญหา
- รีสตาร์ทเซิร์ฟเวอร์การจัดการทั้งหมดทีละเซิร์ฟเวอร์โดยใช้คำสั่งต่อไปนี้
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- ตรวจสอบว่าคุณดูข้อมูลการวิเคราะห์ใน Edge UI ได้หรือไม่
หากยังคงไม่เห็นข้อมูล โปรดติดต่อทีมสนับสนุนของ Apigee Edge
ข้อมูล Analytics ไม่ถูกพุชไปยังฐานข้อมูล Postgres
การวินิจฉัย
หากข้อมูลไม่ได้พุชจากเซิร์ฟเวอร์ Qpid ไปยังฐานข้อมูล Postgres ตามที่ระบุไว้ในข้อมูลมีอยู่ในฐานข้อมูล Postgres แต่ไม่แสดงใน UI ให้ทำ ขั้นตอนต่อไปนี้
- ตรวจสอบว่าเซิร์ฟเวอร์ Qpid แต่ละรายการทำงานอยู่โดยเรียกใช้คำสั่งด้านล่าง
/opt/apigee/bin/apigee-service edge-qpid-server status
- หากเซิร์ฟเวอร์ Qpid ไม่ทำงาน ให้รีสตาร์ทเครื่อง หากไม่มี ให้ข้ามไปยังขั้นตอนที่ 5
/opt/apigee/bin/apigee-service edge-qpid-server restart
- โปรดรอสักระยะหนึ่งแล้วตรวจสอบอีกครั้งว่ามีข้อมูลล่าสุดในฐานข้อมูล Postgres หรือไม่
- ลงชื่อเข้าสู่ระบบ PostgreSQL:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- เรียกใช้การค้นหา SQL ด้านล่างเพื่อตรวจสอบว่ามีข้อมูลล่าสุดหรือไม่
select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
- ลงชื่อเข้าสู่ระบบ PostgreSQL:
- หากมีข้อมูลล่าสุด ให้ข้ามขั้นตอนต่อไปนี้และไปยังขั้นตอนสุดท้าย การแก้ปัญหา หากไม่มีข้อมูลล่าสุด ให้ดําเนินการต่อไปนี้ ขั้นตอน
- ตรวจสอบว่าข้อความจากคิวของเซิร์ฟเวอร์ Qpid ได้รับการพุชไปยังฐานข้อมูล Postgres หรือไม่
- ดำเนินการ
qpid-stat -q command
และตรวจสอบ msgIn และ ค่าของคอลัมน์ msgOut - ต่อไปนี้เป็นตัวอย่างเอาต์พุตที่แสดงให้เห็นว่า msgIn และ msgOut ไม่เท่ากัน สิ่งนี้แสดงถึง ข้อความไม่ถูกพุชจากเซิร์ฟเวอร์ Qpid ไปยังฐานข้อมูล Postgres
- ดำเนินการ
- หากคอลัมน์ msgIn และ msgOut ไม่ตรงกัน ให้ตรวจสอบ Qpid
บันทึกของเซิร์ฟเวอร์
/opt/apigee/var/log/edge-qpid-server/system.log
และดูว่ามีเนื้อหาหรือไม่ ข้อผิดพลาดใดๆ - คุณอาจเห็นข้อความแสดงข้อผิดพลาด เช่น "อาจเป็นไปได้ว่า PG ยังใช้งานไม่ได้" หรือ
"ร้ายแรง: ขออภัย มีลูกค้ามากเกินไปแล้ว" ดังที่แสดงในรูปด้านล่าง
2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be retriable - . Error observed while trying to connect to jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d] 2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection; nested exception is org.postgresql.util.PSQLException: FATAL: sorry, too many clients already 2017-07-28 09:56:53,617 pool-7-thread-1 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be retriable - . Error observed while trying to connect to jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d] 2017-07-28 09:56:53,617 pool-7-thread-1 WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (FATAL: sorry, too many clients already)
ปัญหานี้อาจเกิดขึ้นหากเซิร์ฟเวอร์ Postgres เรียกใช้การค้นหา SQL มากเกินไปหรือ CPU ทำงานอยู่ สูง และไม่สามารถตอบสนองต่อ Qpid Server
ความละเอียด
- รีสตาร์ทเซิร์ฟเวอร์ Postgres และ PostgreSQL ดังที่แสดงด้านล่าง
/opt/apigee/bin/apigee-service edge-postgres-server restart
วันที่/opt/apigee/bin/apigee-service apigee-postgresql restart
- การรีสตาร์ทนี้จะตรวจสอบว่าการค้นหา SQL ก่อนหน้าทั้งหมดหยุดทำงานแล้ว และควรอนุญาตให้ เชื่อมต่อกับฐานข้อมูล Postgres ได้
- โหลดหน้าแดชบอร์ด Analytics ซ้ำและตรวจสอบว่ามีการแสดงข้อมูล Analytics หรือไม่
หากยังคงพบปัญหาอยู่ ให้ติดต่อทีมสนับสนุนของ Apigee Edge
การทำให้ Analytics ใช้งานได้ไม่ถูกต้อง
การวินิจฉัย
- ดูสถานะการทำให้ข้อมูลวิเคราะห์ใช้งานได้โดยใช้การเรียก API ต่อไปนี้
curl -u user_email:password http://management_server_host:port /v1/organizations/orgname/environments/envname/provisioning/axstatus
- ตรวจสอบสถานะของเซิร์ฟเวอร์ Qpid และ Postgres จากผลการเรียก API
- หากสถานะของเซิร์ฟเวอร์ Qpid และ Postgres แสดงเป็น "สำเร็จ" ก็แสดงว่า เดินสายเซิร์ฟเวอร์การวิเคราะห์อย่างถูกต้อง ดำเนินการต่อไปยังไม่มีอัปเดต UUID ของเซิร์ฟเวอร์ Analytics
- หากสถานะของเซิร์ฟเวอร์ Qpid/Postgres แสดงเป็น "UNKNOWN" หรือ "ล้มเหลว"
แสดงว่าเกิดปัญหากับเซิร์ฟเวอร์ที่ตรงกัน
ตัวอย่างเช่น สถานการณ์ต่อไปนี้แสดงสถานะของเซิร์ฟเวอร์ Postgres เป็น "ไม่ทราบ":
ซึ่งอาจเกิดขึ้นหากเกิดความล้มเหลวในระหว่างการเริ่มต้นใช้งานข้อมูลวิเคราะห์ ความล้มเหลวนี้ จะป้องกันไม่ให้ข้อความจากเซิร์ฟเวอร์การจัดการเข้าถึงเซิร์ฟเวอร์ Postgres
ความละเอียด
ปัญหานี้แก้ไขได้ด้วยการรีสตาร์ทเซิร์ฟเวอร์ที่แสดงข้อผิดพลาด "ล้มเหลว" หรือ "ไม่ทราบ"
- รีสตาร์ทเซิร์ฟเวอร์แต่ละตัวที่สถานะการเดินสายข้อมูลวิเคราะห์ระบุว่า "ล้มเหลว" หรือ "UNKNOWN" (ไม่ทราบ)
โดยใช้คำสั่งต่อไปนี้
/opt/apigee/apigee-service/bin/apigee-service component restart
- ดังตัวอย่างต่อไปนี้
- ถ้าคุณพบปัญหาในเซิร์ฟเวอร์ Qpid ให้รีสตาร์ทเซิร์ฟเวอร์ Qpid ดังนี้
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- ถ้าคุณพบปัญหาในเซิร์ฟเวอร์ Postgres ให้รีสตาร์ททั้ง Master และ Slave
โหนดเซิร์ฟเวอร์ Postgres:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- ถ้าคุณพบปัญหาในเซิร์ฟเวอร์ Qpid ให้รีสตาร์ทเซิร์ฟเวอร์ Qpid ดังนี้
- ในตัวอย่างด้านบน แอตทริบิวต์ "UNKNOWN" สำหรับเซิร์ฟเวอร์ Postgres คุณจึงต้องมี
เพื่อรีสตาร์ททั้งเซิร์ฟเวอร์หลักและ Slave Postgres:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
UUID ของเซิร์ฟเวอร์ Analytics ที่ไม่มีอัปเดต
การวินิจฉัย
- รับการกำหนดค่าการวิเคราะห์โดยใช้การเรียก API ต่อไปนี้
curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax
ต่อไปนี้คือตัวอย่างเอาต์พุตจาก API ด้านบน
[ { "name" : "axgroup001", "properties" : { "consumer-type" : "ax" }, "scopes" : [ "myorg~prod", "myorg~test" ], "uuids" : { "aries-datastore" : [ ], "postgres-server" : [ "6777...2db14" ], "dw-server" : [ ], "qpid-server" : [ "774e...fb23", "29f3...8c11" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ "774e...8c11" ], "datastores" : [ "6777...db14" ], "properties" : { } } ], "data-processors" : { } } ]
- ตรวจสอบว่าข้อมูลต่อไปนี้ในเอาต์พุตถูกต้อง
- ชื่อระบบขององค์กรที่แสดงใน "ขอบเขต"
- UUID ของเซิร์ฟเวอร์ Postgres และเซิร์ฟเวอร์ Qpid
- รับ UUID ของเซิร์ฟเวอร์ Postgres โดยเรียกใช้คำสั่งต่อไปนี้ใน
โหนดเซิร์ฟเวอร์ Postgres:
curl 0:8084/v1/servers/self/uuid
- รับ UUID ของเซิร์ฟเวอร์ Qpid โดยเรียกใช้คำสั่งต่อไปนี้ใน Qpid แต่ละรายการ
โหนดเซิร์ฟเวอร์:
curl 0:8083/v1/servers/self/uuid
- รับ UUID ของเซิร์ฟเวอร์ Postgres โดยเรียกใช้คำสั่งต่อไปนี้ใน
โหนดเซิร์ฟเวอร์ Postgres:
- หากข้อมูลทั้งหมดถูกต้อง ให้ไปยังข้อมูล Analytics ไม่ถูกพุชไปยังฐานข้อมูล Postgres
- หาก UUID ของเซิร์ฟเวอร์ Postgres และ/หรือ Qpid ไม่ถูกต้อง ก็อาจเป็นไปได้ว่า เซิร์ฟเวอร์การจัดการหมายถึง UUID ที่ไม่อัปเดต
ความละเอียด
หากต้องการนำ UUID เก่าออกและเพิ่ม UUID ที่ถูกต้องของเซิร์ฟเวอร์ โปรดติดต่อทีมสนับสนุนของ Apigee Edge