คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
ลักษณะปัญหา
ผู้ใช้สร้างเซสชันการติดตามใน Edge UI ไม่ได้
ข้อความแสดงข้อผิดพลาด
คุณจะได้รับข้อความแสดงข้อผิดพลาดใน Edge UI ตามที่แสดงด้านล่าง
Error creating trace session for API proxy <api proxy name>, revision <revision number>, environment <environment name>.
Failed to create DebugSession <session number>
ภาพหน้าจอของตัวอย่างข้อความแสดงข้อผิดพลาดที่พบใน Edge UI มีดังนี้
สาเหตุที่เป็นไปได้
สาเหตุบางส่วนที่เป็นไปได้สำหรับข้อผิดพลาดนี้มีดังนี้
สาเหตุ | คำอธิบาย | วิธีการแก้ปัญหาสำหรับ |
ปัญหาการเชื่อมต่อเครือข่าย | การสื่อสารล้มเหลวระหว่างเซิร์ฟเวอร์การจัดการและ Message Processor เนื่องจากปัญหาการเชื่อมต่อเครือข่ายหรือกฎไฟร์วอลล์ | ผู้ใช้ Edge Private Cloud |
ระบบไม่โหลดสภาพแวดล้อมในตัวประมวลผลข้อความ | ไม่ได้โหลดสภาพแวดล้อมบางอย่าง (ที่คุณพยายามเปิดใช้การติดตาม) ไว้ในตัวประมวลผลข้อความเนื่องจากเกิดข้อผิดพลาด | |
รายการโปรแกรมประมวลผลข้อความที่ไม่มีอัปเดต | เซิร์ฟเวอร์การจัดการมีการอ้างอิงถึงตัวประมวลผลข้อความที่ไม่มีอยู่ (ไม่มีอัปเดต) | |
เข้าถึงตัวประมวลผลข้อความไม่ได้ | ตัวประมวลผลข้อความหยุดทำงานหรือเข้าถึงไม่ได้ | |
ปัญหาการใช้ทรัพยากรสูง | ตัวประมวลผลข้อความกำลังมีการใช้งานทรัพยากร (CPU, หน่วยความจำ หรือการโหลด) สูง | |
ไม่ได้ทำให้พร็อกซี API ใช้งานได้ในตัวประมวลผลข้อความอย่างน้อย 1 รายการ | พร็อกซี API อาจไม่มีการทำให้ใช้งานได้กับ Message Processor อย่างน้อย 1 รายการ เนื่องจากไม่มีการแจ้งเตือนกิจกรรมในระหว่างการทำให้ใช้งานได้ | |
ปัญหาเกี่ยวกับ Edge UI | Edge UI สร้างเซสชันการติดตามไม่ได้เนื่องจากมีข้อผิดพลาดบางอย่าง |
ขั้นตอนการวินิจฉัยทั่วไป
เรียกใช้ API การจัดการนี้
curl -v <management-server-host>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/<revision-number>/debugsessions -u <user>
โปรดจดบันทึกไว้หากพบข้อผิดพลาด ย้ายไปที่ปัญหาการเชื่อมต่อเครือข่าย
หากได้รับการตอบสนองที่สำเร็จ แสดงว่าสามารถสร้างเซสชันการติดตามผ่าน Management API ได้ อย่างไรก็ตาม Edge UI อาจมีปัญหาที่ทำให้สร้างเซสชันการติดตามใน UI ไม่ได้ ย้ายไปที่ปัญหาเกี่ยวกับ Edge UI
สาเหตุ: ปัญหาการเชื่อมต่อเครือข่าย
การวิเคราะห์
ตรวจสอบบันทึกของเซิร์ฟเวอร์การจัดการ
/opt/apigee/var/log/edge-management-server/logs/system.log
และดูว่ามีข้อผิดพลาดเกิดขึ้นระหว่างการสร้างเซสชันการติดตาม/แก้ไขข้อบกพร่องหรือไม่ตัวอย่างข้อผิดพลาดจากบันทึกของเซิร์ฟเวอร์การจัดการ
2018-02-08 09:08:21,310 org:myorg env:uat qtp1073741635-1074 ERROR DISTRIBUTION - DebugSessionAPI.createDebugSession() : createDebugSession : Unable to connect to the server with UUID cedeabd2-e4d1-40bb-8f18-d6afc8835e5b org.apache.http.conn.HttpHostConnectException: Connect to 10.84.75.92:8082 [/10.84.75.92] failed: Connection refused at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:140) ~[httpclient-4.3.5.jar:4.3.5] at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:318) ~[httpclient-4.3.5.jar:4.3.5] at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363) ~[httpclient-4.3.5.jar:4.3.5] ...<snipped> Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_65] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_65] ...<snipped>
ตัวอย่างข้อผิดพลาดด้านบนแสดงให้เห็นว่าเราได้รับข้อผิดพลาด "Connectionถูกปฏิเสธ" เมื่อเซิร์ฟเวอร์การจัดการพยายามเชื่อมต่อกับตัวประมวลผลข้อความในพอร์ต # 8082 ดังนั้นเซิร์ฟเวอร์การจัดการจึงสร้างเซสชันการติดตามไม่ได้
หากคุณไม่พบข้อผิดพลาดเกี่ยวกับการเชื่อมต่อเครือข่ายหรือข้อผิดพลาดที่คล้ายกับข้อผิดพลาดที่แสดงในตัวอย่างด้านบน ให้ย้ายไปที่สภาพแวดล้อมที่ไม่ได้โหลดบนตัวประมวลผลข้อความ
หากคุณพบข้อผิดพลาดเกี่ยวกับการเชื่อมต่อเครือข่าย หรือข้อผิดพลาดที่คล้ายกับข้อผิดพลาดในตัวอย่างข้างต้น โปรดทำตามขั้นตอนด้านล่าง
ทดสอบการเชื่อมต่อจากเซิร์ฟเวอร์การจัดการไปยังตัวประมวลผลข้อความบนพอร์ต 8082 โดยทำตามขั้นตอนต่อไปนี้
หากมีให้ใช้ telnet ให้ใช้ telnet
telnet <MessageProcessor_IP> 8082
หาก telnet ไม่พร้อมใช้งาน ให้ใช้ netcat เพื่อตรวจสอบการเชื่อมต่อ ดังนี้
nc -vz <MessageProcessor_IP> 8082
หากได้รับการตอบกลับ "การเชื่อมต่อถูกปฏิเสธ" หรือ "หมดเวลาการเชื่อมต่อ" แล้วไปยังขั้นตอนถัดไป
ลงชื่อเข้าใช้ Message Processor แต่ละเครื่องด้วยที่อยู่ IP ที่เกี่ยวข้องซึ่งแสดงข้อผิดพลาด และทำตามขั้นตอนต่อไปนี้
ตรวจสอบว่าตัวประมวลผลข้อความกำลังฟังข้อมูลบนพอร์ต 8082 หรือไม่ โดยทำดังนี้
netstat -an | grep LISTEN | grep 8082
หาก Message Processor กำลังฟังอยู่บนพอร์ต 8082 ให้ไปยังขั้นตอนที่ 7
หาก Message Processor ไม่ได้รอสัญญาณจากพอร์ต 8082 ให้รีสตาร์ท Message Processor โดยใช้คำสั่งนี้
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
รอจนกว่าตัวประมวลผลข้อความจะเริ่มต้นโดยใช้คำสั่งนี้:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
เมื่อ Message Processor ทำงานแล้ว ให้ตรวจสอบอีกครั้งว่า Message Processor กำลังฟังข้อมูลบนพอร์ต 8082 หรือไม่
หากตัวประมวลผลข้อความกำลังฟังข้อมูลบนพอร์ต 8082 ให้ไปยังขั้นตอนที่ 7
ตรวจสอบว่าตอนนี้คุณเริ่มเซสชันการติดตามใน UI ได้แล้ว หากปัญหายังคงอยู่ ให้ข้ามขั้นตอนด้านล่าง
หาก Message Processor ทำงานอยู่และกำลังฟังอยู่บนพอร์ต 8082 แต่คุณยังไม่สามารถเชื่อมต่อจากเซิร์ฟเวอร์อื่นๆ เช่น Management Server แสดงว่าอาจมีไฟร์วอลล์ที่จำเป็นต้องบล็อกการเชื่อมต่อภายนอก
ใช้คำสั่งที่เหมาะสมเพื่อตรวจสอบกฎไฟร์วอลล์ ตัวอย่างเช่น คุณสามารถเรียกใช้คำสั่ง iptables เพื่อแสดงรายการกฎไฟร์วอลล์ทั้งหมดที่กำหนดไว้ในระบบของคุณ:
iptables -L -n
หากไม่ได้ตั้งค่ากฎไฟร์วอลล์สำหรับพอร์ต 8082 ให้ย้ายไปที่ปัญหาการใช้งานทรัพยากรสูง
หากตั้งค่ากฎไฟร์วอลล์บนพอร์ต 8082 ให้ไปที่ส่วน "การแก้ปัญหา" ด้านล่าง
ความละเอียด
- ประสานงานกับผู้ดูแลเครือข่ายของคุณเพื่ออนุญาตให้การรับส่งข้อมูลขาเข้า/ขาออกบนพอร์ต 8082 จากเซิร์ฟเวอร์ภายนอก
หากยังคงพบปัญหา ให้ไปที่ต้องรวบรวมข้อมูลการวินิจฉัย
สาเหตุ: ระบบไม่โหลดสภาพแวดล้อมในตัวประมวลผลข้อความ
การวิเคราะห์
- ตรวจสอบบันทึกของเซิร์ฟเวอร์การจัดการ
/opt/apigee/var/log/edge-management-server/logs/system.log
และดูว่ามีข้อผิดพลาดเกิดขึ้นระหว่างการสร้างเซสชันการติดตาม/แก้ไขข้อบกพร่องหรือไม่ คุณอาจเห็นข้อความแสดงข้อผิดพลาดอย่างเช่น "ไม่มีการตอบกลับที่ถูกต้องจาก MP" ในระหว่างการสร้างเซสชันการติดตาม/แก้ไขข้อบกพร่องดังที่แสดงด้านล่าง
2018-01-30 08:28:09,721 org:mynonprod env:uat qtp2007599722-712162 ERROR DISTRIBUTION - DebugSessionAPI.createDebugSession() : no valid responses from MP(s), throwing error 2018-01-30 08:28:09,723 org:mynonprod env:uat qtp2007599722-712162 ERROR REST - CustomJAXRSInvoker.performInvocation() : CustomJAXRSInvoker.performInvocation : Method com.apigee.distribution.DebugSessionAPI.createDebugSession threw an exception. 2018-01-30 08:28:09,724 org:mynonprod env:uat qtp2007599722-712162 ERROR REST - ExceptionMapper.toResponse() : Error occurred : Failed to create DebugSession 1517297564678 2018-01-30 08:28:09,724 org:mynonprod env:uat qtp2007599722-712162 ERROR REST - ExceptionMapper.toResponse() : Returning error response : ErrorResponse{errorCode = distribution.CreateDebugSessionFailed, errorMessage = Failed to create DebugSession 1517297564678}
ข้อผิดพลาดนี้แสดงว่าตัวประมวลผลข้อความไม่ตอบสนองกลับไปยังเซิร์ฟเวอร์การจัดการด้วยเหตุผลบางอย่าง
หากไม่เห็นข้อผิดพลาดที่คล้ายกับข้อผิดพลาดที่แสดงในตัวอย่างด้านบน ให้ย้ายไปที่รายการโปรแกรมประมวลผลข้อความที่ไม่อัปเดต
หากพบข้อผิดพลาดที่คล้ายกับข้อผิดพลาดที่แสดงในตัวอย่างด้านบน ให้ทำตามขั้นตอนต่อไปนี้
หนึ่งในสาเหตุที่เป็นไปได้มากที่สุดของข้อผิดพลาดนี้คือสภาพแวดล้อมที่คุณพยายามสร้างเซสชันการติดตามไม่ได้โหลดในตัวประมวลผลข้อความ
ลงชื่อเข้าใช้ Message Processor แต่ละตัวและตรวจสอบว่าระบบได้โหลดสภาพแวดล้อมที่เจาะจงที่คุณพยายามสร้างเซสชันการติดตามไว้ในตัวประมวลผลข้อความหรือไม่โดยใช้คำสั่งต่อไปนี้
curl -s http://localhost:8082/v1/runtime/organizations/<org-name>/environments
ตัวอย่างเอาต์พุต:
คุณจะเห็นรายการสภาพแวดล้อมที่เป็นขององค์กรเฉพาะซึ่งโหลดบน Message Processor ในเอาต์พุตของคำสั่งด้านบน เช่น หากมีการโหลดสภาพแวดล้อม preprod และ test ในตัวประมวลผลข้อความ คุณจะเห็นผลลัพธ์ดังนี้
[ "preprod", "test" ]
หากสภาพแวดล้อมที่เฉพาะเจาะจง เช่น "dev" ที่คุณพยายามสร้างเซสชันการติดตาม อยู่ในรายการของคำสั่งด้านบน จากนั้นย้ายไปที่รายการโปรแกรมประมวลผลข้อความที่ไม่อัปเดต
หากสภาพแวดล้อมที่เฉพาะเจาะจง เช่น "dev" ไม่แสดงเป็นส่วนหนึ่งของคำสั่งข้างต้น แล้วตรวจสอบ
/opt/apigee/var/log/edge-message-processor/logs/system.log
และ/opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log
ในตัวประมวลผลข้อความเพื่อหาข้อผิดพลาดระหว่างการโหลดสภาพแวดล้อมอาจมีข้อผิดพลาดต่างๆ มากมายที่อาจทำให้โหลดสภาพแวดล้อมบนตัวประมวลผลข้อความไม่สำเร็จ การแก้ปัญหาจะขึ้นอยู่กับข้อผิดพลาดที่เกิดขึ้น
ความละเอียด
สภาพแวดล้อมอาจไม่โหลดในตัวประมวลผลข้อความเนื่องจากสาเหตุหลายประการ ส่วนนี้แสดงสาเหตุที่เป็นไปได้ 2-3 ข้อที่อาจทำให้เกิดปัญหานี้และอธิบายวิธีแก้ไขปัญหานี้
หากคุณเห็นข้อผิดพลาดอย่างใดอย่างหนึ่งต่อไปนี้ในบันทึกของตัวประมวลผลข้อความ แสดงว่าปัญหานี้เกิดจากปัญหาเกี่ยวกับใบรับรอง/คีย์ที่เพิ่มลงในคีย์สโตร์/ทรัสต์สโตร์ที่ระบุในสภาพแวดล้อมที่ระบุ
ข้อผิดพลาด #1: java.security.KeyStoreException: เขียนทับใบรับรองของตนเองไม่ได้
2018-01-30 12:04:38,248 pool-47-thread-4 ERROR MESSAGING.RUNTIME - AbstractConfigurator.propagateEvent() : Error while handling the update for the Configurator com.apigee.kernel.exceptions.spi.UncheckedException: Failed to add certificate : mycert in key store : mytruststore in environment : test at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:156) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.configurators.KeyStore.handleUpdate(KeyStore.java:101) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.AbstractConfigurator.propagateEvent(AbstractConfigurator.java:85) ~[config-entities-1.0.0.jar:na] at com.apigee.messaging.runtime.Environment.handleUpdate(Environment.java:238) [message-processor-1.0.0.jar:na] … Caused by: java.security.KeyStoreException: Cannot overwrite own certificate at com.sun.crypto.provider.JceKeyStore.engineSetCertificateEntry(JceKeyStore.java:355) ~[sunjce_provider.jar:1.8.0_151] at java.security.KeyStore.setCertificateEntry(KeyStore.java:1201) ~[na:1.8.0_151] at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:153) ~[config-entities-1.0.0.jar:na] ... 20 common frames omitted 2018-01-30 12:04:38,250 pool-47-thread-4 ERROR MESSAGING.RUNTIME - AbstractConfigurator.rollbackTransaction() : Error in processing the changes : Unknown resource type cert
ข้อผิดพลาด #2: java.security.KeyStoreException: เขียนทับรหัสลับไม่ได้
2017-11-01 03:28:47,560 pool-21-thread-7 ERROR MESSAGING.RUNTIME - AbstractConfigurator.propagateEvent() : Error while handling the update for the Configurator com.apigee.kernel.exceptions.spi.UncheckedException: Failed to add certificate : mstore in key store : myTruststore in environment : dev at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:156) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.configurators.KeyStore.handleUpdate(KeyStore.java:101) ~[config-entities-1.0.0.jar:na] ... Caused by: java.security.KeyStoreException: Cannot overwrite secret key at com.sun.crypto.provider.JceKeyStore.engineSetCertificateEntry(JceKeyStore.java:354) ~[sunjce_provider.jar:1.8.0_144] at java.security.KeyStore.setCertificateEntry(KeyStore.java:1201) ~[na:1.8.0_144] at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:153) ~[config-entities-1.0.0.jar:na] ... 20 common frames omitted 2017-11-01 03:28:47,562 pool-21-thread-7 ERROR MESSAGING.RUNTIME - AbstractConfigurator.rollbackTransaction() : Error in processing the changes : Unknown resource type cert
รับรายละเอียดของคีย์สโตร์/ทรัสต์สโตร์ที่ระบุในข้อความแสดงข้อผิดพลาดที่แสดงในขั้นตอนก่อนหน้าโดยใช้การเรียก API การจัดการต่อไปนี้
curl -v "http://<management-IPaddress>:8080/v1/organizations/<org-name>/environments/<env-name>/keystores/myTruststore" -u <user>
ตัวอย่างเอาต์พุต:
{ "certs": [ "mycert", "mycert-new" ], "keys": [ "mycert" ], "name": "myTruststore" }
เอาต์พุตตัวอย่างแสดงให้เห็นว่ามีใบรับรอง 2 รายการและคีย์ใน Truststore myTruststore โดยทั่วไปแล้ว Truststore จะไม่มีคีย์ หากใช่ เราขอแนะนำให้คุณใช้ใบรับรองเดียวและคีย์เดียว
ดูรายละเอียดเกี่ยวกับใบรับรอง 2 รายการโดยใช้ API ต่อไปนี้
curl -s http://<management-IPaddress>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/keystores/<keystore-name>/certs/<cert-name>
ตรวจสอบวันหมดอายุของใบรับรองแต่ละใบและพิจารณาใบรับรองที่หมดอายุ/เก่า
ลบใบรับรองที่หมดอายุหรือไม่พึงประสงค์ออกจาก Truststore "myTruststore"
หากปัญหายังคงอยู่หรือหากพบข้อผิดพลาดอื่นนอกเหนือจากที่กล่าวไว้ในขั้นตอนที่ 1 ด้านบน ให้ไปที่ต้องรวบรวมข้อมูลการวินิจฉัย
สาเหตุ: รายการของผู้ประมวลผลข้อมูลข้อความไม่มีอัปเดตหรือเข้าถึงตัวประมวลผลข้อความไม่ได้
การวินิจฉัย
- หาก Edge UI ใช้เวลานานและสร้างเซสชันการติดตามไม่สำเร็จ สาเหตุที่เป็นไปได้มีดังนี้
- เซิร์ฟเวอร์การจัดการอาจอ้างอิงตัวประมวลผลข้อความที่ไม่มีอยู่ (ไม่มีอัปเดต)
- ตัวประมวลผลข้อความหยุดทำงานหรือไม่สามารถเข้าถึงได้
- Message Processor มีการใช้งานหน่วยความจำ/CPU สูง
- ตรวจสอบบันทึกของเซิร์ฟเวอร์การจัดการ
/opt/apigee/var/log/edge-management-server/logs/system.log
และดูว่ามีข้อผิดพลาดระหว่างการสร้างเซสชันการติดตาม/แก้ไขข้อบกพร่องหรือไม่ คุณอาจเห็นข้อความแสดงข้อผิดพลาดอย่างเช่น "server <UUID> ไม่อัปเดตหรือเข้าถึงไม่ได้" ขณะสร้างเซสชันการติดตาม/แก้ไขข้อบกพร่องดังที่แสดงด้านล่าง
2017-12-27 07:42:38,975 org:cocacola env:prod qtp2007599722-222063 INFO DISTRIBUTION - DebugSessionAPI.createDebugSession() : server 458b5910-2646-441c-a6e2-428b6d84e021 is either not up or reachable, skipping the server
อาจเกิดข้อผิดพลาดขึ้นอีก 1 รายการ "หมดเวลาการเชื่อมต่อ" หลังจากผ่านไปครู่หนึ่ง ดังที่แสดงด้านล่าง
2017-12-27 07:44:46.000 UTC org:cocacola env:prod qtp2007599722-222063 ERROR DISTRIBUTION - DebugSessionAPI.createDebugSession() : createDebugSession : Unable to connect to the server with UUID {}, skipping it458b5910-2646-441c-a6e2-428b6d84e021 org.apache.http.conn.HttpHostConnectException: Connect to 192.168.101.7:8080 [/192.168.101.7] failed: Connection timed out (Connection timed out) at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:140) ~[httpclient-4.3.5.jar:4.3.5] at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:318) ~[httpclient-4.3.5.jar:4.3.5] at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363) ~[httpclient-4.3.5.jar:4.3.5] at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219) ~[httpclient-4.3.5.jar:4.3.5] …<snipped> Caused by: java.net.ConnectException: Connection timed out (Connection timed out) at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_144] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_144] …<snipped>
ข้อผิดพลาดทั้งสองนี้อาจเกิดจากเครื่องมือประมวลผลข้อความ(Message Processor) อย่างใดอย่างหนึ่ง ดังนี้
- ไม่มีอัปเดต (ไม่มีอีกต่อไป)
- ใช้งานไม่ได้/เข้าถึงไม่ได้ด้วยเหตุผลบางอย่าง
โปรดทำตามวิธีแก้ปัญหาที่เหมาะสมโดยขึ้นอยู่กับสถานการณ์ที่พบ
ความละเอียด
สถานการณ์ที่ 1 : ตัวประมวลผลข้อความไม่มีอัปเดต (ไม่มี)
ดูรายชื่อโปรแกรมประมวลผลข้อความโดยใช้ API การจัดการด้านล่าง
curl -u <sysadmin> "http://<management-server-host>:8080/v1/servers?pod=<podName>®ions=<regionName>"
จดบันทึกที่อยู่ IP หรือชื่อโฮสต์ที่สอดคล้องกับ UUID ของโปรแกรมประมวลผลข้อความที่กล่าวถึงในข้อความแสดงข้อผิดพลาดในบันทึกของเซิร์ฟเวอร์การจัดการ (ขั้นตอนที่ 3 ในการวินิจฉัยด้านบน) ตรวจสอบว่าโปรแกรมประมวลผลข้อความที่ถูกต้องหรือไม่โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
- แผนภาพการตั้งค่าโทโพโลยีของ Private Cloud ล่าสุด
- ที่อยู่ IP ของ Edge Server ล่าสุด - ตารางการแมปชื่อโฮสต์
หากคุณพบว่าโปรแกรมประมวลผลข้อความใช้งานได้ โปรดดูสถานการณ์ที่ 2 : ไม่สามารถเข้าถึงโปรแกรมประมวลผลข้อความ
ลบตัวประมวลผลข้อความที่ไม่มีอัปเดต (ไม่มี) โดยใช้ API การจัดการด้านล่าง
ยกเลิกการลงทะเบียนโปรแกรมประมวลผลข้อความจากสภาพแวดล้อมขององค์กรดังนี้
curl -X POST http://<management-server-host>:8080/v1/o/<orgName>/e/<envName>/servers -d "uuid={uuid}®ion=<regionName>&pod=<podName}&action=remove"
ยกเลิกการลงทะเบียนประเภทของเซิร์ฟเวอร์:
curl http://<management-server-host>:8080/v1/servers -X POST -d "type={message-processor}®ion=<regionName>&pod=<podName>&uuid=<uuid>&action=remove"
วิธีลบเซิร์ฟเวอร์
curl http://<management-ip>:8080/v1/servers/<uuid> -X DELETE
ทำซ้ำขั้นตอนที่ 3 หากพบปัญหาเดียวกันในสภาพแวดล้อมอื่นๆ ในองค์กร
สถานการณ์ที่ 2: เข้าถึงโปรแกรมประมวลผลข้อความไม่ได้
- เข้าสู่ระบบโปรเซสเซอร์ข้อความแต่ละรายการด้วยการกำหนดที่อยู่ IP/ชื่อโฮสต์ตาม UUID ที่พบในข้อความแสดงข้อผิดพลาดในบันทึกของเซิร์ฟเวอร์การจัดการ
รีสตาร์ทโปรแกรมประมวลผลข้อความ
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
โปรดตรวจสอบอีกครั้งว่าคุณสร้างเซสชันการติดตามได้หรือไม่ หากยังคงพบปัญหา ให้ไปที่ต้องรวบรวมข้อมูลการวินิจฉัย
สาเหตุ: ปัญหาการใช้ทรัพยากรสูง
การวินิจฉัย
เข้าสู่ระบบโปรเซสเซอร์ข้อความแต่ละตัวและตรวจสอบว่ามีการใช้งานทรัพยากรอย่าง CPU, หน่วยความจำ หรือโหลดสูงหรือไม่ คุณสามารถใช้คำสั่ง
top
ในระบบปฏิบัติการ Unix เพื่อรับข้อมูลการใช้ทรัพยากรของกระบวนการประมวลผลข้อความtop
หากเครื่องมือประมวลผลข้อความไม่ได้ใช้ทรัพยากรสูง ให้ย้ายไปที่ต้องรวบรวมข้อมูลการวินิจฉัย
หากตัวประมวลผลข้อความมีการใช้ CPU หรือหน่วยความจำสูง นั่นอาจทำให้ระบบประมวลผลข้อความไม่ตอบกลับไปยังเซิร์ฟเวอร์การจัดการทันเวลา ซึ่งจะทำให้คุณไม่สามารถสร้างเซสชันการติดตามได้ในที่สุด
หากตัวประมวลผลข้อความมีการใช้งาน CPU สูง ให้สร้างดัมพ์เทรด 3 ชุดทุกๆ 30 วินาทีโดยใช้คำสั่งต่อไปนี้
sudo <JAVA_HOME>/bin/jstack -l <pid> > <filename>
หากตัวประมวลผลข้อความมีการใช้งานหน่วยความจำสูง ให้สร้างฮีปดัมป์โดยใช้คำสั่งต่อไปนี้
sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>
ย้ายไปที่ความละเอียด
ความละเอียด
รีสตาร์ทโปรแกรมประมวลผลข้อความโดยใช้คำสั่งด้านล่าง ซึ่งจะช่วยลดการใช้ CPU และหน่วยความจำได้
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
ตรวจสอบการเรียก API และตรวจสอบว่ายังมีปัญหาอยู่หรือไม่
ติดต่อทีมสนับสนุน Apigee Edge และส่งเทรดดัมพ์ ฮีปดัมป์ และบันทึกของโปรแกรมประมวลผลข้อความ (
/opt/apigee/var/log/edge-message-processor/logs/system.log)
เพื่อช่วยตรวจสอบสาเหตุของการใช้งาน CPU/หน่วยความจำสูง
สาเหตุ: พร็อกซี API ไม่ทำงานใน Message Processor อย่างน้อย 1 รายการ
พร็อกซี API ที่แทบจะไม่มีอาจใช้งานได้ใน Message Processor อย่างน้อย 1 ตัว กรณีนี้มักเกิดจากการไม่มีการแจ้งเตือนกิจกรรมจากเซิร์ฟเวอร์การจัดการไปยังผู้ประมวลผลข้อความระหว่างการทำให้พร็อกซี API นั้นๆ ใช้งานได้ ในกรณีนี้ คุณจะสร้างเซสชันการติดตามใน Edge UI ไม่ได้
การวินิจฉัย
ลงชื่อเข้าใช้ Message Processor แต่ละตัวและตรวจสอบว่ามีการปรับใช้การแก้ไขที่ระบุของพร็อกซี API โดยใช้คำสั่งต่อไปนี้
curl -v localhost:8082/v1/runtime/organizations/<orgname>/environments/<envname>/apis/<apiname>/revisions
ตัวอย่างเอาต์พุต:
คุณจะเห็นรายการการแก้ไขเป็นเอาต์พุตของคำสั่งด้านบน ตัวอย่างเช่น ถ้าใช้งานการแก้ไขเวอร์ชัน 12 คุณจะเห็นผลลัพธ์ดังนี้
[ "12" ]
หากการแก้ไขเฉพาะของพร็อกซี API ไม่ปรากฏเป็นเอาต์พุตของคำสั่งที่กล่าวถึงในขั้นตอนที่ 1 ข้างต้น ให้รีสตาร์ทโปรแกรมประมวลผลข้อความที่ต้องการตามที่อธิบายไว้ในการแก้ปัญหาด้านล่าง
ทำซ้ำขั้นตอนที่ 1-2 สำหรับ Message Processor ทั้งหมด
ถ้ามีการทำให้การแก้ไขที่เฉพาะเจาะจงของพร็อกซี API ใช้งานได้กับ Message Processor ทั้งหมด นี่จะไม่เป็นสาเหตุของปัญหานี้ ย้ายไปที่ต้องรวบรวมข้อมูลการวินิจฉัย
ความละเอียด
รีสตาร์ทโปรเซสเซอร์ข้อความเฉพาะที่ไม่มีการทำให้การแก้ไขพร็อกซี API ใช้งานได้
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
สาเหตุ: ปัญหาเกี่ยวกับ Edge UI
การวินิจฉัย
- ตรวจสอบบันทึก Edge UI
/opt/apigee/var/log/edge-ui/application.log
และ/opt/apigee/var/log/edge-ui/edge-ui.log
และดูว่ามีข้อผิดพลาดหรือไม่ - ติดต่อทีมสนับสนุนของ Apigee Edge และแชร์ไฟล์เหล่านี้เพื่อตรวจสอบเพิ่มเติม
ต้องรวบรวมข้อมูลการวินิจฉัย
หากปัญหายังคงอยู่แม้ว่าจะทำตามคำแนะนำด้านบนแล้ว โปรดรวบรวมข้อมูลการวินิจฉัยต่อไปนี้ ติดต่อและแชร์กับทีมสนับสนุนของ Apigee Edge
เอาต์พุตของคำสั่ง:
curl -v <management-server-host>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/<revision-number>/debugsessions -u <user>
บันทึกของเซิร์ฟเวอร์การจัดการ
/opt/apigee/var/log/edge-management-server/logs/system.log.
บันทึกของผู้ประมวลผลข้อความ
/opt/apigee/var/log/edge-message-processor/logs/system.log.
เอาต์พุตของคำสั่ง telnet/nc จากเซิร์ฟเวอร์การจัดการไปยังตัวประมวลผลข้อความ:
telnet <MessageProcessor_IP> 8082 nc -vz <MessageProcessor_IP> 8082
เอาต์พุตของคำสั่ง netstat ด้านล่างบนตัวประมวลผลข้อความ:
netstat -an > netstat.txt
หากพบปัญหากับ Edge UI ให้ส่งบันทึก Edge UI
/opt/apigee/var/log/edge-ui/application.log
และ/opt/apigee/var/log/edge-ui/edge-ui.log.
รายละเอียดว่าส่วนใดใน Playbook นี้มีการลองใช้และข้อมูลเชิงลึกอื่นๆ ที่จะช่วยให้เราแก้ไขปัญหานี้ได้อย่างรวดเร็ว