สร้างเซสชันการติดตามไม่ได้

คุณกำลังดูเอกสารประกอบของ 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 มีดังนี้

สาเหตุที่เป็นไปได้

สาเหตุบางประการที่เป็นไปได้สำหรับข้อผิดพลาดนี้มีดังนี้

สาเหตุ คำอธิบาย วิธีการแก้ปัญหาสำหรับ
ปัญหาการเชื่อมต่อเครือข่าย การสื่อสารระหว่างเซิร์ฟเวอร์การจัดการกับเครื่องมือประมวลผลข้อความล้มเหลวเนื่องจากปัญหาการเชื่อมต่อเครือข่ายหรือกฎไฟร์วอลล์ ผู้ใช้ Edge Private Cloud
สภาพแวดล้อมไม่โหลดบนตัวประมวลผลข้อความ สภาพแวดล้อมเฉพาะ (ที่คุณพยายามเปิดใช้งานการติดตาม) ไม่ได้โหลดใน Message Processor (s) เนื่องจากเกิดข้อผิดพลาด
รายการตัวประมวลผลข้อความที่ไม่มีอัปเดต เซิร์ฟเวอร์การจัดการกำลังอ้างอิงไปยังตัวประมวลผลข้อความที่ไม่มีอยู่ (ไม่มีอัปเดต)
เข้าถึงเครื่องมือประมวลผลข้อความไม่ได้ ตัวประมวลผลข้อความหยุดทำงานหรือเข้าถึงไม่ได้
ปัญหาการใช้ทรัพยากรสูง ตัวประมวลผลข้อความมีการใช้งานทรัพยากร (CPU, หน่วยความจำ หรือโหลด) สูง
พร็อกซี API ไม่ทำงานในตัวประมวลผลข้อความอย่างน้อย 1 รายการ พร็อกซี API อาจไม่สามารถใช้งานได้กับตัวประมวลผลข้อความอย่างน้อย 1 รายการเนื่องจากไม่มีการแจ้งเตือนเหตุการณ์ระหว่างการทำให้ใช้งานได้
ปัญหาเกี่ยวกับ Edge UI Edge UI สร้างเซสชันการติดตามไม่ได้เนื่องจากข้อผิดพลาดบางอย่าง

ขั้นตอนการวิเคราะห์ทั่วไป

  1. ใช้ Management API นี้

    curl -v <management-server-host>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/<revision-number>/debugsessions -u <user>
    
  2. หากพบข้อผิดพลาด โปรดจดบันทึกไว้ ย้ายไปที่ปัญหาการเชื่อมต่อเครือข่าย

  3. หากได้รับการตอบกลับที่สำเร็จ แสดงว่าสามารถสร้างเซสชันการติดตามได้ผ่าน Management API อย่างไรก็ตาม อาจมีปัญหาเกิดขึ้นกับ Edge UI ซึ่งทำให้สร้างเซสชันการติดตามใน UI ไม่ได้ เลื่อนไปที่ปัญหาเกี่ยวกับ Edge UI

สาเหตุ: ปัญหาการเชื่อมต่อเครือข่าย

การวิเคราะห์

  1. ตรวจสอบบันทึกของเซิร์ฟเวอร์การจัดการ /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>
    
  2. ตัวอย่างข้อผิดพลาดข้างต้นแสดงให้เห็นว่าเราได้รับข้อผิดพลาด "การเชื่อมต่อถูกปฏิเสธ" เมื่อเซิร์ฟเวอร์การจัดการพยายามเชื่อมต่อกับผู้ประมวลผลข้อความบนพอร์ต # 8082 ดังนั้น เซิร์ฟเวอร์การจัดการจึงไม่สามารถสร้างเซสชันการติดตามได้

  3. หากคุณไม่เห็นข้อผิดพลาดเกี่ยวกับการเชื่อมต่อเครือข่ายหรือข้อผิดพลาดที่คล้ายกับที่แสดงในตัวอย่างข้างต้น ให้ย้ายไปที่สภาพแวดล้อมไม่โหลดในเครื่องมือประมวลผลข้อความ

  4. หากคุณพบข้อผิดพลาดเกี่ยวกับการเชื่อมต่อเครือข่ายหรือข้อผิดพลาดที่คล้ายกับที่แสดงในตัวอย่างด้านบน ให้ทำตามขั้นตอนด้านล่าง

  5. ทดสอบการเชื่อมต่อจากเซิร์ฟเวอร์การจัดการไปยัง Message Processor บนพอร์ต 8082 โดยทำตามขั้นตอนต่อไปนี้

    1. ถ้ามี telnet ให้ใช้ telnet

      telnet <MessageProcessor_IP> 8082
      
    2. หาก Telnet ไม่พร้อมใช้งาน ให้ใช้ netcat เพื่อตรวจสอบการเชื่อมต่อดังนี้

      nc -vz <MessageProcessor_IP> 8082
      
    3. หากได้รับการตอบกลับว่า "การเชื่อมต่อถูกปฏิเสธ" หรือ "หมดเวลาการเชื่อมต่อ" ให้ไปยังขั้นตอนถัดไป

  6. เข้าสู่ระบบตัวประมวลผลข้อความแต่ละเครื่องด้วยที่อยู่ IP ที่ตรงกันซึ่งแสดงข้อผิดพลาด แล้วทำตามขั้นตอนต่อไปนี้

    1. ตรวจสอบว่าตัวประมวลผลข้อความกำลังฟังอยู่บนพอร์ต 8082 หรือไม่

      netstat -an | grep LISTEN | grep 8082
      
    2. ถ้าตัวประมวลผลข้อความกำลังฟังอยู่ในพอร์ต 8082 ให้ย้ายไปที่ขั้นตอนที่ 7

    3. ถ้า Message Processor ไม่ทำงานบนพอร์ต 8082 ให้รีสตาร์ท Message Processor โดยใช้คำสั่งต่อไปนี้

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      
    4. รอจนกว่าตัวประมวลผลข้อความจะเริ่มสมบูรณ์โดยใช้คำสั่งนี้

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
      
    5. เมื่อตัวประมวลผลข้อความทำงานแล้ว ให้ตรวจสอบอีกครั้งว่าตัวประมวลผลข้อความกำลังฟังอยู่บนพอร์ต 8082 หรือไม่

    6. หากผู้ประมวลผลข้อความกำลังฟังอยู่บนพอร์ต 8082 ให้ไปยังขั้นตอนที่ 7

  7. ตรวจสอบว่าตอนนี้คุณเริ่มเซสชันการติดตามใน UI ได้แล้วหรือไม่ หากไม่พบปัญหาแล้ว ให้ข้ามขั้นตอนด้านล่าง

  8. หากตัวประมวลผลข้อความทำงานอยู่และฟังอยู่บนพอร์ต 8082 แต่คุณยังไม่สามารถเชื่อมต่อจากเซิร์ฟเวอร์อื่นๆ เช่น เซิร์ฟเวอร์การจัดการ อาจเป็นเพราะมีไฟร์วอลล์ที่ต้องบล็อกการเชื่อมต่อภายนอก

  9. ใช้คำสั่งที่เหมาะสมเพื่อตรวจสอบกฎไฟร์วอลล์ ตัวอย่างเช่น คุณสามารถเรียกใช้คำสั่ง iptables เพื่อแสดงรายการกฎไฟร์วอลล์ทั้งหมดที่กำหนดไว้ในระบบของคุณ

    iptables -L -n
    
  10. หากไม่มีการตั้งค่ากฎไฟร์วอลล์สำหรับพอร์ต 8082 ให้ย้ายไปที่ปัญหาการใช้งานทรัพยากรสูง

  11. หากมีการตั้งค่ากฎไฟร์วอลล์บนพอร์ต 8082 ให้ย้ายไปที่ส่วน "การแก้ปัญหา" ด้านล่าง

ความละเอียด

  1. ทำงานร่วมกับผู้ดูแลระบบเครือข่ายเพื่ออนุญาตให้มีการรับส่งข้อมูลขาเข้า/ขาออกบนพอร์ต 8082 จากเซิร์ฟเวอร์ภายนอก

หากยังคงพบปัญหาอยู่ ให้ไปที่ต้องรวบรวมข้อมูลการวินิจฉัย

สาเหตุ: สภาพแวดล้อมไม่โหลดบนตัวประมวลผลข้อความ

การวิเคราะห์

  1. ตรวจสอบบันทึกเซิร์ฟเวอร์การจัดการ /opt/apigee/var/log/edge-management-server/logs/system.log และดูว่ามีข้อผิดพลาดระหว่างการสร้างเซสชันการติดตาม/แก้ไขข้อบกพร่องหรือไม่
  2. คุณอาจเห็นข้อความแสดงข้อผิดพลาด เช่น "ไม่มีการตอบกลับที่ถูกต้องจาก 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}
    

    ข้อผิดพลาดนี้แสดงว่าผู้ประมวลผลข้อความไม่ตอบกลับไปยังเซิร์ฟเวอร์การจัดการด้วยเหตุผลบางประการ

  3. หากไม่เห็นข้อผิดพลาดที่คล้ายกับในตัวอย่างข้างต้น ให้ย้ายไปที่รายการผู้ประมวลผลข้อความที่ไม่อัปเดต

  4. หากคุณพบข้อผิดพลาดที่คล้ายกับที่แสดงในตัวอย่างข้างต้น ให้ทำตามขั้นตอนต่อไปนี้

  5. สาเหตุหนึ่งที่เป็นไปได้มากที่สุดสำหรับข้อผิดพลาดนี้คือ สภาพแวดล้อมที่คุณพยายามสร้างเซสชันการติดตามไม่ได้โหลดบนตัวประมวลผลข้อความ

  6. ลงชื่อเข้าใช้ Message Processor แต่ละเครื่อง และตรวจสอบว่าสภาพแวดล้อมเฉพาะที่คุณพยายามสร้างเซสชันการติดตามมีการโหลดตัวประมวลผลข้อความโดยใช้คำสั่งด้านล่างหรือไม่

    curl -s http://localhost:8082/v1/runtime/organizations/<org-name>/environments
    

    ตัวอย่างเอาต์พุต:

    คุณจะเห็นรายการสภาพแวดล้อมที่เป็นขององค์กรหนึ่งๆ ซึ่งโหลดในตัวประมวลผลข้อความในเอาต์พุตของคำสั่งข้างต้น ตัวอย่างเช่น ถ้าสภาพแวดล้อม preprod และ test โหลดในโปรแกรมประมวลผลข้อความ คุณจะเห็นผลลัพธ์ดังนี้

    [ "preprod", "test" ]

  7. หากสภาพแวดล้อมเฉพาะ เช่น "dev" ที่คุณพยายามสร้างเซสชันการติดตามปรากฏในคำสั่งข้างต้น ให้ย้ายไปที่รายการผู้ประมวลผลข้อความที่ไม่อัปเดต

  8. หากสภาพแวดล้อมเฉพาะ เช่น "dev" ไม่ปรากฏเป็นส่วนหนึ่งของคำสั่งข้างต้น ให้ตรวจสอบ /opt/apigee/var/log/edge-message-processor/logs/system.log และ /opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log ในตัวประมวลผลข้อความเพื่อหาข้อผิดพลาดในระหว่างการโหลดสภาพแวดล้อม

  9. เกิดข้อผิดพลาดหลายอย่างที่อาจทำให้โหลดสภาพแวดล้อมในเครื่องประมวลผลข้อความไม่สำเร็จ การแก้ปัญหาขึ้นอยู่กับข้อผิดพลาดที่เกิดขึ้น

ความละเอียด

สภาพแวดล้อมอาจไม่โหลดบนตัวประมวลผลข้อความเนื่องจากสาเหตุหลายประการ ส่วนนี้จะแสดงสาเหตุที่เป็นไปได้ 2 ประการที่ทำให้เกิดปัญหานี้และอธิบายวิธีแก้ไขปัญหา

  1. ถ้าคุณพบข้อผิดพลาดอย่างใดอย่างหนึ่งต่อไปนี้ในบันทึกเครื่องมือประมวลผลข้อความ แสดงว่าข้อผิดพลาดนั้นเกิดจากปัญหาที่พบกับใบรับรอง/คีย์ที่เพิ่มลงในคีย์สโตร์/ความน่าเชื่อถือที่ระบุในสภาพแวดล้อมที่ระบุ

    ข้อผิดพลาด #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 
    
  2. ดูรายละเอียดของ keystore/truststore ที่ระบุไว้ในข้อความแสดงข้อผิดพลาดซึ่งแสดงในขั้นตอนก่อนหน้าโดยใช้การเรียก 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" 
    }
    
  3. เอาต์พุตตัวอย่างแสดงให้เห็นว่ามีใบรับรอง 2 รายการและคีย์ใน myTruststore ของ Truststore โดยทั่วไป Truststore จะไม่มีคีย์ หากมี ก็ควรจะมีใบรับรองรายการเดียวและคีย์เดียว

  4. ดูรายละเอียดเกี่ยวกับใบรับรองทั้ง 2 ใบโดยใช้ API ต่อไปนี้

    curl -s http://<management-IPaddress>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/keystores/<keystore-name>/certs/<cert-name>
    
  5. ตรวจสอบวันที่หมดอายุของใบรับรองแต่ละใบและระบุใบรับรองที่หมดอายุ/เก่ากว่า

  6. ลบใบรับรองที่หมดอายุหรือไม่พึงประสงค์ออกจาก Truststore "myTruststore"

หากยังคงพบปัญหาอยู่หรือพบข้อผิดพลาดอื่นใดนอกเหนือจากที่ระบุไว้ในขั้นตอนที่ 1 ข้างต้น ให้ไปที่ต้องรวบรวมข้อมูลการวินิจฉัย

สาเหตุ: เข้าถึงรายการผู้ประมวลผลข้อความไม่มีอัปเดตหรือตัวประมวลผลข้อความไม่ได้

การวินิจฉัย

  1. หาก Edge UI ใช้เวลานานและสร้างเซสชันการติดตามไม่ได้ อาจเกิดจากสาเหตุต่อไปนี้
    1. เซิร์ฟเวอร์การจัดการอาจหมายถึงตัวประมวลผลข้อความที่ไม่มีอยู่ (ไม่มีอัปเดต)
    2. ผู้ประมวลผลข้อความหยุดทำงานหรือเข้าถึงไม่ได้
    3. ตัวประมวลผลข้อความมีการใช้งานหน่วยความจำ/CPU สูง
  2. ตรวจสอบบันทึกเซิร์ฟเวอร์การจัดการ /opt/apigee/var/log/edge-management-server/logs/system.log และดูว่ามีข้อผิดพลาดระหว่างการสร้างเซสชันการติดตาม/แก้ไขข้อบกพร่องหรือไม่
  3. คุณอาจเห็นข้อความแสดงข้อผิดพลาด เช่น "เซิร์ฟเวอร์ <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
    

    ซึ่งอาจเกิดจากข้อผิดพลาด "การเชื่อมต่อหมดเวลา" อีกครั้งหลังจากผ่านไปสักครู่ ดังที่แสดงด้านล่าง

    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>
    
  4. ข้อผิดพลาดทั้งสองนี้อาจเกิดจากตัวประมวลผลข้อความที่เฉพาะเจาะจง ดังนี้

    1. ไม่มีอัปเดต (ไม่มีแล้ว)
    2. ใช้งานไม่ได้/เข้าถึงไม่ได้ด้วยเหตุผลบางอย่าง
  5. โปรดทำตามวิธีแก้ปัญหาที่เหมาะสมตามสถานการณ์ที่พบ

ความละเอียด

สถานการณ์ที่ 1 : ตัวประมวลผลข้อความไม่มีอัปเดต (ไม่มีอยู่)

  1. รับรายการเครื่องมือประมวลผลข้อความที่ใช้ API การจัดการด้านล่าง

    curl -u <sysadmin> "http://<management-server-host>:8080/v1/servers?pod=<podName>&regions=<regionName>"
    
  2. จดบันทึกที่อยู่ IP หรือชื่อโฮสต์ที่ตรงกับ UUID ของตัวประมวลผลข้อความที่กล่าวถึงในข้อความแสดงข้อผิดพลาดในบันทึกของเซิร์ฟเวอร์การจัดการ (ขั้นตอนที่ 3 ในการวิเคราะห์ด้านบน) ตรวจสอบว่าโปรแกรมประมวลผลข้อความถูกต้องโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้

    1. แผนภาพการตั้งค่าโทโพโลยีล่าสุดของ Private Cloud
    2. ที่อยู่ IP ของ Edge Server ล่าสุด - ตารางการแมปชื่อโฮสต์

    หากคุณพบว่าเป็นผู้ประมวลผลข้อความที่ถูกต้อง ให้ย้ายไปที่สถานการณ์ที่ 2 : เข้าถึงผู้ประมวลผลข้อความไม่ได้

  3. ลบตัวประมวลผลข้อความเก่า (ไม่มีอยู่) โดยใช้ API การจัดการต่อไปนี้

    1. ยกเลิกการลงทะเบียนเครื่องมือประมวลผลข้อความจากสภาพแวดล้อมขององค์กร

      curl -X POST http://<management-server-host>:8080/v1/o/<orgName>/e/<envName>/servers -d "uuid={uuid}&region=<regionName>&pod=<podName}&action=remove" 
      
    2. ยกเลิกการลงทะเบียนประเภทของเซิร์ฟเวอร์:

      curl http://<management-server-host>:8080/v1/servers -X POST -d "type={message-processor}&region=<regionName>&pod=<podName>&uuid=<uuid>&action=remove"
      
    3. ลบเซิร์ฟเวอร์โดยทำดังนี้

      curl http://<management-ip>:8080/v1/servers/<uuid> -X DELETE
      
  4. ทำซ้ำขั้นตอนที่ 3 หากพบปัญหาเดียวกันในสภาพแวดล้อมอื่นๆ ในองค์กร

สถานการณ์ที่ 2: เข้าถึงผู้ประมวลผลข้อความไม่ได้

  1. เข้าสู่ระบบตัวประมวลผลข้อความแต่ละรายการโดยการระบุที่อยู่ IP/ชื่อโฮสต์ตาม UUID ที่สังเกตจากข้อความแสดงข้อผิดพลาดในบันทึกของเซิร์ฟเวอร์การจัดการ
  2. รีสตาร์ทโปรแกรมประมวลผลข้อความ

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
    

ตรวจสอบอีกครั้งว่าคุณสามารถสร้างเซสชันการติดตามได้ไหม หากยังคงพบปัญหาอยู่ ให้ไปที่ต้องรวบรวมข้อมูลการวินิจฉัย.

สาเหตุ: ปัญหาการใช้งานทรัพยากรสูง

การวินิจฉัย

  1. เข้าสู่ระบบตัวประมวลผลข้อความแต่ละโปรแกรม และตรวจสอบว่ามีการใช้งานทรัพยากรในระดับสูงหรือไม่ เช่น CPU, หน่วยความจำ หรือโหลด คุณสามารถใช้คำสั่ง top ในระบบปฏิบัติการ Unix เพื่อรับข้อมูลการใช้งานทรัพยากรของการประมวลผลข้อความ ดังนี้

    top
    
  2. ถ้าผู้ประมวลผลข้อความไม่ได้ใช้งานทรัพยากรสูง ให้ข้ามไปที่ต้องรวบรวมข้อมูลการวินิจฉัย

  3. ถ้าผู้ประมวลผลข้อความมีการใช้งาน CPU หรือหน่วยความจำสูง นั่นอาจทำให้ผู้ประมวลผลข้อความไม่ตอบกลับไปยังเซิร์ฟเวอร์การจัดการได้ทันเวลา ซึ่งจะป้องกันไม่ให้คุณสร้างเซสชันการติดตามได้ในที่สุด

    1. ถ้าตัวประมวลผลข้อความมีการใช้งาน CPU สูง ให้สร้างดัมพ์ชุดข้อความ 3 รายการทุก 30 วินาทีโดยใช้คำสั่งต่อไปนี้

      sudo <JAVA_HOME>/bin/jstack -l <pid> > <filename>
      
    2. หากผู้ประมวลผลข้อความมีการใช้งานหน่วยความจำสูง ให้สร้างฮีพดัมพ์โดยใช้คำสั่งต่อไปนี้

      sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>
      
      
    3. ย้ายไปที่ความละเอียด

ความละเอียด

  1. รีสตาร์ทตัวประมวลผลข้อความโดยใช้คำสั่งด้านล่าง วิธีนี้จะช่วยลดการใช้ CPU และหน่วยความจำ:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  2. ตรวจสอบการเรียก API และยืนยันว่าปัญหายังคงอยู่

  3. โปรดติดต่อฝ่ายสนับสนุนของ Apigee Edge และส่งดัมพ์ของเทรด ฮีปดัมพ์ และบันทึกของผู้ประมวลผลข้อความ (/opt/apigee/var/log/edge-message-processor/logs/system.log) เพื่อช่วยตรวจสอบสาเหตุของการใช้งาน CPU/หน่วยความจำสูง

สาเหตุ: พร็อกซี API ไม่ทำงานในระบบประมวลผลข้อความอย่างน้อย 1 รายการ

ในบางกรณี พร็อกซี API อาจไม่สามารถใช้งานได้กับตัวประมวลผลข้อความอย่างน้อย 1 รายการ กรณีนี้มักเกิดขึ้นเนื่องจากไม่มีการแจ้งเตือนเหตุการณ์จากเซิร์ฟเวอร์การจัดการไปยังผู้ประมวลผลข้อความในระหว่างการติดตั้งใช้งานพร็อกซี API ที่ระบุ และในกรณีนี้ คุณจะสร้างเซสชันการติดตามใน Edge UI ไม่ได้เช่นกัน

การวินิจฉัย

  1. เข้าสู่ระบบตัวประมวลผลข้อความแต่ละรายการ และตรวจสอบว่ามีการติดตั้งใช้งานพร็อกซี API ในเวอร์ชันที่เจาะจงโดยใช้คำสั่งต่อไปนี้หรือไม่

    curl -v localhost:8082/v1/runtime/organizations/<orgname>/environments/<envname>/apis/<apiname>/revisions
    

    ตัวอย่างเอาต์พุต:

    คุณจะเห็นรายการการแก้ไขเป็นเอาต์พุตของคำสั่งข้างต้น ตัวอย่างเช่น หากมีการทำให้เวอร์ชัน 12 ใช้งานได้แล้ว คุณจะเห็นผลลัพธ์ดังนี้

    [ "12" ]

  2. ถ้าการแก้ไขเฉพาะสำหรับพร็อกซี API ไม่ปรากฏเป็นเอาต์พุตของคำสั่งที่กล่าวถึงในขั้นตอนที่ 1 ข้างต้น ให้รีสตาร์ทตัวประมวลผลข้อความที่ต้องการตามที่อธิบายไว้ในการแก้ปัญหาด้านล่าง

  3. ทำซ้ำขั้นตอนที่ 1-2 สำหรับ Message Processor ทั้งหมด

  4. หากมีการใช้การแก้ไขเฉพาะสำหรับพร็อกซี API กับตัวประมวลผลข้อความทั้งหมด ก็ไม่ใช่สาเหตุของปัญหานี้ ย้ายไปที่ต้องรวบรวมข้อมูลการวินิจฉัย

ความละเอียด

  1. รีสตาร์ทตัวประมวลผลข้อความเฉพาะที่ไม่ได้ติดตั้งใช้งานการแก้ไขที่เจาะจงของพร็อกซี API

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
    

สาเหตุ: ปัญหากับ Edge UI

การวินิจฉัย

  1. ตรวจสอบบันทึก Edge UI /opt/apigee/var/log/edge-ui/application.log และ /opt/apigee/var/log/edge-ui/edge-ui.log และดูว่ามีข้อผิดพลาดใดๆ หรือไม่
  2. โปรดติดต่อทีมสนับสนุนของ Apigee Edge และแชร์ไฟล์เหล่านี้เพื่อตรวจสอบเพิ่มเติม

ต้องรวบรวมข้อมูลการวินิจฉัย

หากปัญหายังคงอยู่แม้ว่าจะทำตามคำแนะนำข้างต้นแล้ว โปรดรวบรวมข้อมูลการวินิจฉัยต่อไปนี้ โปรดติดต่อทีมสนับสนุนของ Apigee Edge โดยตรง

  1. เอาต์พุตของคำสั่ง:

    curl -v <management-server-host>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/<revision-number>/debugsessions -u <user>
    
  2. บันทึกของเซิร์ฟเวอร์การจัดการ

    /opt/apigee/var/log/edge-management-server/logs/system.log.
    
  3. บันทึกตัวประมวลผลข้อความ

    /opt/apigee/var/log/edge-message-processor/logs/system.log.
    
  4. เอาต์พุตของคำสั่ง telnet/nc จากเซิร์ฟเวอร์การจัดการไปยังผู้ประมวลผลข้อความ:

    telnet <MessageProcessor_IP> 8082
    nc -vz <MessageProcessor_IP> 8082
    
  5. เอาต์พุตของคำสั่ง netstat ด้านล่างในตัวประมวลผลข้อความ:

    netstat -an > netstat.txt
    
  6. หากพบว่ามีปัญหาเกี่ยวกับ Edge UI ให้ส่งบันทึก UI ของ Edge /opt/apigee/var/log/edge-ui/application.log และ /opt/apigee/var/log/edge-ui/edge-ui.log.

  7. รายละเอียดว่ามีการลองใช้ส่วนต่างๆ ใดใน Playbook นี้และข้อมูลเชิงลึกอื่นๆ ที่จะช่วยให้เราจัดการกับปัญหานี้ได้อย่างรวดเร็ว