คุณกำลังดูเอกสารประกอบของ 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 ในสภาพแวดล้อมขององค์กรหนึ่งๆ ในระยะเวลาที่กำหนดหรือไม่ โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
- เปิดใช้การติดตามสำหรับ API ที่ผู้ใช้กำลังใช้อยู่และตรวจสอบว่าคุณรับคำขอในการติดตามได้หรือไม่
- ดูบันทึกการเข้าถึง NGINX (
/opt/apigee/var/log/edge-router/nginx/logs/access.log)
และดูว่ามีรายการใหม่สำหรับพร็อกซี API ในระยะเวลาที่กำหนดหรือไม่ - หากคุณบันทึกข้อมูลจากพร็อกซี API ไปยังเซิร์ฟเวอร์การบันทึก เช่น Syslog, Splunk, Loggly เป็นต้น คุณจะตรวจสอบได้ว่ามีรายการในเซิร์ฟเวอร์บันทึกเหล่านี้สำหรับพร็อกซี API ในช่วงเวลาที่ระบุหรือไม่
- หากไม่มีการรับส่งข้อมูล (ไม่มีคำขอ API) ในระยะเวลาที่กำหนด ข้อมูลวิเคราะห์ก็จะใช้ไม่ได้ คุณจะเห็น "ไม่มีการเข้าชมในช่วงวันที่ที่เลือก" ในหน้าแดชบอร์ดข้อมูลวิเคราะห์
ความละเอียด
- ทำการเรียกพร็อกซี API อย่างน้อย 1 รายการในสภาพแวดล้อมองค์กรที่ระบุ
- รอสัก 2-3 วินาทีแล้วดูหน้าแดชบอร์ดของ Analytics ในแท็บชั่วโมง แล้วดูว่าข้อมูลปรากฏหรือไม่
- หากปัญหายังคงอยู่ ให้ไปที่ข้อมูลที่มีอยู่ในฐานข้อมูล 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
- ตรวจสอบว่ามีตารางสำหรับสภาพแวดล้อมขององค์กรหรือไม่โดยใช้การค้นหา 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?_optimized...".
- ในแผงด้านขวาในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ ให้เลือกแท็บ "ส่วนหัว" และสังเกต "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 Server ทำงานได้หรือไม่โดยเรียกใช้คำสั่งต่อไปนี้
/opt/apigee/bin/apigee-service edge-qpid-server status
- หาก Qpid Server หยุดทำงาน ให้รีสตาร์ทเครื่อง หากไม่มี ให้ข้ามไปยังขั้นตอนที่ 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 ยังใช้งานไม่ได้" หรือ "FATAL: ขอโทษนะ มีไคลเอ็นต์มากเกินไปแล้ว" ดังที่แสดงในรูปภาพด้านล่าง
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 ใช้งานได้ไม่ถูกต้อง
การวินิจฉัย
- ดูสถานะการทำให้ 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 แสดงเป็น "ไม่ทราบ" หรือ "ไม่ผ่าน" แสดงว่าเกิดปัญหากับเซิร์ฟเวอร์ที่เกี่ยวข้อง
ตัวอย่างสถานการณ์ต่อไปนี้แสดงสถานะของเซิร์ฟเวอร์ Postgres เป็น "ไม่ทราบ"
เหตุการณ์นี้อาจเกิดขึ้นหากเกิดข้อผิดพลาดระหว่างการเริ่มต้นใช้งาน Analytics ความล้มเหลวนี้จะทำให้ข้อความจากเซิร์ฟเวอร์การจัดการเข้าถึงเซิร์ฟเวอร์ Postgres ไม่ได้
ความละเอียด
โดยทั่วไปแล้วปัญหานี้แก้ไขได้ด้วยการรีสตาร์ทเซิร์ฟเวอร์ที่แสดงข้อความ "ล้มเหลว" หรือ "ไม่ทราบ"
- รีสตาร์ทแต่ละเซิร์ฟเวอร์ที่สถานะการเดินสาย Analytics ระบุว่า "ไม่ผ่าน" หรือ "ไม่ทราบ" โดยใช้คำสั่งต่อไปนี้
/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 คุณจึงต้องรีสตาร์ททั้งเซิร์ฟเวอร์ Master และ Slave Postgres ดังนี้
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
UUID ของเซิร์ฟเวอร์ Analytics ไม่มีอัปเดต
การวินิจฉัย
- รับการกำหนดค่า 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" : { } } ]
- ตรวจสอบว่าข้อมูลต่อไปนี้ในเอาต์พุตถูกต้อง
- ชื่อ org-env ที่แสดงในองค์ประกอบ "ขอบเขต"
- 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