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

คุณกำลังดูเอกสารประกอบ 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 สร้างเซสชันการติดตามไม่ได้เนื่องจากมีข้อผิดพลาดบางอย่าง

ขั้นตอนการวินิจฉัยทั่วไป

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

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

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

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

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

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

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

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

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

      netstat -an | grep LISTEN | grep 8082
      
    2. หาก Message Processor กำลังฟังอยู่บนพอร์ต 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. เมื่อ Message Processor ทำงานแล้ว ให้ตรวจสอบอีกครั้งว่า Message Processor กำลังฟังข้อมูลบนพอร์ต 8082 หรือไม่

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

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

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

  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
    

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

    คุณจะเห็นรายการสภาพแวดล้อมที่เป็นขององค์กรเฉพาะซึ่งโหลดบน Message Processor ในเอาต์พุตของคำสั่งด้านบน เช่น หากมีการโหลดสภาพแวดล้อม 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-3 ข้อที่อาจทำให้เกิดปัญหานี้และอธิบายวิธีแก้ไขปัญหานี้

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

    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 ไม่ทำงานใน Message Processor อย่างน้อย 1 รายการ

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

การวินิจฉัย

  1. ลงชื่อเข้าใช้ Message Processor แต่ละตัวและตรวจสอบว่ามีการปรับใช้การแก้ไขที่ระบุของพร็อกซี 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 ใช้งานได้กับ Message Processor ทั้งหมด นี่จะไม่เป็นสาเหตุของปัญหานี้ ย้ายไปที่ต้องรวบรวมข้อมูลการวินิจฉัย

ความละเอียด

  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 ให้ส่งบันทึก Edge UI /opt/apigee/var/log/edge-ui/application.log และ /opt/apigee/var/log/edge-ui/edge-ui.log.

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