Không thể tạo phiên theo dõi

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Triệu chứng

Người dùng không thể tạo phiên theo dõi trong giao diện người dùng Edge.

Thông báo lỗi

Bạn sẽ nhận được thông báo lỗi trong giao diện người dùng Edge như bên dưới:

Error creating trace session for API proxy <api proxy name>, revision <revision number>, environment <environment name>.
Failed to create DebugSession <session number> 

Dưới đây là ảnh chụp màn hình một thông báo lỗi mẫu quan sát thấy trong giao diện người dùng Edge:

Nguyên nhân có thể xảy ra

Một số nguyên nhân có thể gây ra lỗi này được liệt kê dưới đây:

Nguyên nhân Mô tả Hướng dẫn khắc phục sự cố có thể áp dụng cho
Vấn đề về kết nối mạng Lỗi giao tiếp giữa Máy chủ quản lý và Bộ xử lý thư do sự cố kết nối mạng hoặc quy tắc tường lửa. Người dùng đám mây riêng tư ở Edge
Môi trường không được tải trên Bộ xử lý thư Có lỗi xảy ra trong môi trường cụ thể (mà bạn đang cố gắng bật tính năng theo dõi) trên (các) Bộ xử lý thư.
Mục nhập của đơn vị xử lý thông báo đã lỗi thời Máy chủ quản lý đang tham chiếu đến Bộ xử lý thông báo (đã lỗi thời) không tồn tại.
Không thể truy cập vào bộ xử lý thư Bộ xử lý thư đã bị dừng hoặc không thể truy cập được.
Vấn đề về mức sử dụng tài nguyên cao (Các) Bộ xử lý thư đang sử dụng nhiều tài nguyên (CPU, Bộ nhớ hoặc Tải).
Proxy API chưa được triển khai trên một hoặc nhiều Bộ xử lý thư Có thể không triển khai Proxy API trên một hoặc nhiều Bộ xử lý thư do thiếu thông báo sự kiện trong quá trình triển khai.
Vấn đề với giao diện người dùng Edge Giao diện người dùng của Edge không tạo được phiên theo dõi do xảy ra một số lỗi.

Các bước chẩn đoán thông thường

  1. Thực thi API quản lý này:

    curl -v <management-server-host>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/<revision-number>/debugsessions -u <user>
    
  2. Nếu bạn gặp lỗi, hãy ghi lại lỗi. Chuyển đến mục Vấn đề về kết nối mạng.

  3. Nếu bạn nhận được phản hồi thành công thì tức là phiên theo dõi có thể được tạo thông qua Management API. Tuy nhiên, có thể có một sự cố xảy ra với giao diện người dùng Edge khiến phiên theo dõi không thể tạo được trong giao diện người dùng. Chuyển đến mục Vấn đề với giao diện người dùng Edge.

Nguyên nhân: Sự cố về kết nối mạng

Chẩn đoán

  1. Kiểm tra nhật ký /opt/apigee/var/log/edge-management-server/logs/system.log của Máy chủ quản lý và xem có lỗi nào trong quá trình tạo phiên theo dõi/gỡ lỗi hay không.

    Lỗi mẫu trong Nhật ký máy chủ quản lý

    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. Lỗi mẫu ở trên cho thấy chúng tôi gặp lỗi "Kết nối bị từ chối" khi Máy chủ quản lý cố gắng kết nối với Bộ xử lý thông báo trên cổng # 8082. Do đó, Máy chủ quản lý không thể tạo phiên theo dõi.

  3. Nếu bạn không thấy lỗi nào liên quan đến kết nối mạng hoặc lỗi tương tự như lỗi hiển thị trong ví dụ trên, hãy chuyển sang mục Môi trường không tải trên Trình xử lý thông báo.

  4. Nếu bạn quan sát thấy(các) lỗi liên quan đến kết nối mạng hoặc lỗi tương tự như lỗi nêu trong ví dụ trên, hãy làm theo các bước dưới đây.

  5. Kiểm tra kết nối từ Máy chủ quản lý với Bộ xử lý thư trên cổng 8082 theo các bước sau:

    1. Nếu có thể dùng telnet, hãy dùng telnet:

      telnet <MessageProcessor_IP> 8082
      
    2. Nếu không có telnet, hãy dùng netcat để kiểm tra kết nối như sau:

      nc -vz <MessageProcessor_IP> 8082
      
    3. Nếu bạn nhận được phản hồi "Connection từ chối" (kết nối bị từ chối) hoặc "kết nối đã hết thời gian chờ", thì hãy chuyển sang bước tiếp theo.

  6. Đăng nhập vào từng Bộ xử lý thư bằng địa chỉ IP tương ứng hiển thị lỗi và thực hiện các bước sau:

    1. Kiểm tra xem Bộ xử lý thư có đang lắng nghe trên cổng 8082 hay không:

      netstat -an | grep LISTEN | grep 8082
      
    2. Nếu Bộ xử lý thông báo đang lắng nghe trên cổng 8082, thì chuyển sang bước 7.

    3. Nếu Bộ xử lý thông báo không lắng nghe trên cổng 8082, hãy khởi động lại Bộ xử lý thông báo bằng lệnh sau:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      
    4. Chờ cho đến khi Bộ xử lý thư bắt đầu hoàn toàn sử dụng lệnh này:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
      
    5. Khi Bộ xử lý thư hoạt động, hãy kiểm tra lại xem Bộ xử lý thư có đang lắng nghe trên cổng 8082 hay không.

    6. Nếu Bộ xử lý tin nhắn đang lắng nghe trên cổng 8082, thì chuyển sang bước 7.

  7. Kiểm tra xem giờ đây bạn có thể bắt đầu phiên theo dõi trong giao diện người dùng hay chưa. Nếu vấn đề không còn xuất hiện, hãy bỏ qua các bước dưới đây.

  8. Nếu Bộ xử lý thư đang chạy và đang nghe trên cổng 8082, nhưng bạn vẫn không thể kết nối từ các máy chủ khác như Máy chủ quản lý, thì có lẽ có một tường lửa đang chặn các kết nối bên ngoài.

  9. Dùng lệnh thích hợp để kiểm tra các quy tắc về tường lửa. Ví dụ: bạn có thể thực thi lệnh iptables để liệt kê tất cả quy tắc tường lửa được xác định trên hệ thống của mình:

    iptables -L -n
    
  10. Nếu không có quy tắc tường lửa nào được thiết lập cho cổng 8082, hãy chuyển sang Vấn đề về mức sử dụng tài nguyên cao.

  11. Nếu có bất kỳ quy tắc tường lửa nào được thiết lập trên cổng 8082, hãy chuyển đến phần Giải pháp ở bên dưới.

Độ phân giải

  1. Làm việc với quản trị viên mạng của bạn để cho phép lưu lượng truy cập đến/ra trên cổng 8082 từ các máy chủ bên ngoài.

Nếu vấn đề vẫn tiếp diễn, hãy chuyển đến mục Phải thu thập thông tin chẩn đoán.

Nguyên nhân: Môi trường không tải trên Bộ xử lý thư

Chẩn đoán

  1. Kiểm tra nhật ký /opt/apigee/var/log/edge-management-server/logs/system.log của Máy chủ quản lý và xem có lỗi nào trong quá trình tạo phiên theo dõi/gỡ lỗi hay không.
  2. Bạn có thể thấy thông báo lỗi như "không có phản hồi hợp lệ từ MP(s)" trong khi tạo phiên theo dõi/gỡ lỗi như được hiển thị dưới đây:

    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}
    

    Lỗi này cho biết rằng(các) Bộ xử lý thư không phản hồi lại Máy chủ quản lý vì lý do nào đó.

  3. Nếu bạn không thấy lỗi tương tự như lỗi hiển thị trong ví dụ trên, hãy chuyển đến mục Mục nhập của trình xử lý thông báo đã lỗi thời.

  4. Nếu bạn thấy lỗi tương tự như lỗi minh hoạ trong ví dụ trên, hãy làm theo các bước sau.

  5. Một trong những nguyên nhân có thể gây ra lỗi này là do môi trường mà bạn đang cố gắng tạo phiên theo dõi không được tải trên(các) Bộ xử lý thông báo.

  6. Đăng nhập vào từng Bộ xử lý thông báo và kiểm tra xem môi trường cụ thể mà bạn đang cố gắng tạo phiên theo dõi có được tải trên Bộ xử lý thông báo hay không bằng lệnh dưới đây:

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

    Kết quả ví dụ:

    Bạn sẽ thấy danh sách các môi trường thuộc tổ chức cụ thể được tải trên Bộ xử lý thông báo trong dữ liệu đầu ra của lệnh trên. Ví dụ: nếu môi trường preprodtest (kiểm thử) được tải trên Bộ xử lý thông báo, thì bạn sẽ thấy kết quả như sau:

    [ "preprod", "test" ]

  7. Nếu môi trường cụ thể, chẳng hạn như "dev", trong đó bạn đang cố gắng tạo phiên theo dõi, được liệt kê như một phần của lệnh trên, sau đó chuyển đến mục nhập trình xử lý thông báo lỗi thời.

  8. Nếu môi trường cụ thể, chẳng hạn "dev" không được liệt kê trong lệnh trên, thì hãy kiểm tra /opt/apigee/var/log/edge-message-processor/logs/system.log/opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log trên Bộ xử lý thông báo để xem có lỗi nào trong quá trình tải Môi trường không.

  9. Có nhiều lỗi khác nhau dẫn đến việc không tải được môi trường trên Bộ xử lý thư. Độ phân giải phụ thuộc vào lỗi xảy ra.

Độ phân giải

Môi trường có thể không tải được trên Trình xử lý thư vì nhiều lý do. Phần này minh hoạ một số lý do có thể dẫn đến vấn đề này và giải thích cách giải quyết.

  1. Nếu bạn thấy một trong các lỗi sau trong nhật ký Trình xử lý thư, thì nguyên nhân là do có sự cố xảy ra với các chứng chỉ/khoá đã được thêm vào kho khoá/tin cậy được chỉ định trong môi trường được chỉ định.

    Lỗi #1: java.security.KeyStoreException: Không thể ghi đè chứng chỉ của riêng

    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
    

    Lỗi #2: java.security.KeyStoreException: Không thể ghi đè khoá bí mật

    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. Lấy thông tin chi tiết về kho khoá/truststore được chỉ định trong thông báo lỗi hiển thị ở bước trước bằng cách sử dụng lệnh gọi API quản lý sau:

    curl -v "http://<management-IPaddress>:8080/v1/organizations/<org-name>/environments/<env-name>/keystores/myTruststore" -u <user>
    

    Kết quả ví dụ:

    { 
    "certs": [ 
    "mycert", 
    "mycert-new" 
    ], 
    "keys": [ 
    "mycert" 
    ], 
    "name": "myTruststore" 
    }
    
  3. Kết quả ví dụ cho thấy có hai chứng chỉ và một khoá trong kho tin cậy myTruststore. Truststore thường không chứa khoá. Nếu có, bạn nên có một chứng chỉ và một khoá duy nhất.

  4. Dùng API sau đây để xem thông tin chi tiết về 2 chứng chỉ này:

    curl -s http://<management-IPaddress>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/keystores/<keystore-name>/certs/<cert-name>
    
  5. Kiểm tra ngày hết hạn của từng chứng chỉ và xác định chứng chỉ đã hết hạn/cũ.

  6. Xoá chứng chỉ đã hết hạn hoặc không mong muốn khỏi kho lưu trữ tin cậy "myTruststore".

Nếu vấn đề vẫn tiếp diễn hoặc nếu bạn thấy lỗi nào khác ngoài những lỗi nêu trong Bước 1 ở trên, hãy chuyển đến mục Phải thu thập thông tin chẩn đoán.

Nguyên nhân: Các mục nhập của trình xử lý thư cũ HOẶC Không truy cập được bộ xử lý thư

Chẩn đoán

  1. Nếu giao diện người dùng Edge mất nhiều thời gian và không tạo được phiên theo dõi, thì sau đây là một số nguyên nhân có thể xảy ra:
    1. Máy chủ quản lý có thể đề cập đến Đơn vị xử lý thông báo (đã lỗi thời) không tồn tại
    2. (Các) Bộ xử lý thư đã bị dừng hoặc không thể truy cập được
    3. Bộ xử lý thông báo đang chạy với mức sử dụng bộ nhớ/CPU cao
  2. Kiểm tra nhật ký của Máy chủ quản lý /opt/apigee/var/log/edge-management-server/logs/system.log và xem có lỗi nào trong quá trình tạo phiên theo dõi/gỡ lỗi hay không.
  3. Bạn có thể thấy thông báo lỗi như "máy chủ <UUID> không cập nhật hoặc truy cập được" trong quá trình tạo phiên theo dõi/gỡ lỗi như hiển thị bên dưới:

    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
    

    Điều này có thể xảy ra sau một lỗi khác "Kết nối đã hết thời gian chờ" sau một thời gian ngắn nữa, như minh hoạ dưới đây:

    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. 2 lỗi này có thể xảy ra do(các) Bộ xử lý thư cụ thể:

    1. Đã lỗi thời (không còn tồn tại)
    2. Bị gián đoạn/không truy cập được vì lý do nào đó
  5. Vui lòng thực hiện theo giải pháp thích hợp tuỳ theo tình huống gặp phải.

Độ phân giải

Trường hợp 1: (Các) Trình xử lý thông báo đã lỗi thời (không tồn tại)

  1. Xem danh sách Đơn vị xử lý thư bằng cách sử dụng API quản lý bên dưới:

    curl -u <sysadmin> "http://<management-server-host>:8080/v1/servers?pod=<podName>&regions=<regionName>"
    
  2. Ghi lại địa chỉ IP hoặc tên máy chủ tương ứng với (các) UUID của Bộ xử lý thông báo được đề cập trong thông báo lỗi trong nhật ký Máy chủ quản lý (bước #3 trong phần Chẩn đoán ở trên). Hãy xác minh xem đây có phải là Trình xử lý thư hợp lệ hay không bằng một trong các cách sau:

    1. Sơ đồ thiết lập cấu trúc liên kết đám mây riêng tư mới nhất
    2. Địa chỉ IP mới nhất của máy chủ Edge – Bảng liên kết tên máy chủ

    Nếu bạn thấy các bộ xử lý này là Đơn vị xử lý tin nhắn hợp lệ, hãy chuyển sang Trường hợp 2 : Không thể kết nối với người xử lý tin nhắn.

  3. Xoá Bộ xử lý thông báo cũ (không tồn tại) bằng cách sử dụng các API quản lý dưới đây:

    1. Huỷ đăng ký Bộ xử lý thông báo khỏi các môi trường của tổ chức:

      curl -X POST http://<management-server-host>:8080/v1/o/<orgName>/e/<envName>/servers -d "uuid={uuid}&region=<regionName>&pod=<podName}&action=remove" 
      
    2. Huỷ đăng ký loại máy chủ:

      curl http://<management-server-host>:8080/v1/servers -X POST -d "type={message-processor}&region=<regionName>&pod=<podName>&uuid=<uuid>&action=remove"
      
    3. Xoá máy chủ:

      curl http://<management-ip>:8080/v1/servers/<uuid> -X DELETE
      
  4. Lặp lại Bước 3 nếu bạn gặp cùng một sự cố trong bất kỳ môi trường nào khác trong tổ chức của mình.

Trường hợp 2: Không thể truy cập vào(các) bộ xử lý thông báo

  1. Đăng nhập vào từng Bộ xử lý thư bằng cách xác định địa chỉ IP/Tên máy chủ lưu trữ dựa trên các mã nhận dạng duy nhất(UUID) quan sát được ở thông báo lỗi trong nhật ký Máy chủ quản lý.
  2. Khởi động lại Bộ xử lý thư:

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

Kiểm tra lại xem bạn có thể tạo phiên theo dõi hay không. Nếu vấn đề vẫn tiếp diễn, hãy chuyển đến trang Phải thu thập thông tin chẩn đoán.

Nguyên nhân: Vấn đề về mức sử dụng tài nguyên cao

Chẩn đoán

  1. Đăng nhập vào từng Bộ xử lý thư và kiểm tra xem tài nguyên nào có mức sử dụng cao hay không, chẳng hạn như CPU, Bộ nhớ hoặc Tải. Bạn có thể dùng lệnh top trên các hệ điều hành dựa trên Unix để nhận thông tin về mức sử dụng tài nguyên của quy trình Trình xử lý thư:

    top
    
  2. Nếu(các) Đơn vị xử lý thư không sử dụng nhiều tài nguyên, hãy chuyển sang mục Phải thu thập thông tin chẩn đoán.

  3. Nếu(các) Bộ xử lý thư đang gặp phải tình trạng sử dụng CPU hoặc bộ nhớ cao, thì điều đó có thể khiến Bộ xử lý thư không phản hồi lại Máy chủ quản lý kịp thời. Điều này rốt cuộc sẽ khiến bạn không thể tạo phiên theo dõi.

    1. Nếu bất kỳ Trình xử lý thư nào đang gặp phải vấn đề mức sử dụng CPU cao, hãy tạo 3 tệp kết xuất luồng mỗi 30 giây bằng lệnh sau:

      sudo <JAVA_HOME>/bin/jstack -l <pid> > <filename>
      
    2. Nếu có Trình xử lý tin nhắn có mức sử dụng Bộ nhớ cao, hãy tạo một tệp báo lỗi (heap dump) bằng lệnh sau:

      sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>
      
      
    3. Chuyển đến phần Độ phân giải.

Độ phân giải

  1. Khởi động lại Bộ xử lý thư bằng lệnh dưới đây. Thao tác này sẽ giảm mức sử dụng CPU và bộ nhớ:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  2. Theo dõi các lệnh gọi API và xác nhận xem vấn đề còn tồn tại hay không.

  3. Liên hệ với Nhóm hỗ trợ Apigee và cung cấp tệp kết xuất luồng, tệp báo lỗi và nhật ký Trình xử lý thư (/opt/apigee/var/log/edge-message-processor/logs/system.log) để giúp họ điều tra nguyên nhân dẫn đến mức sử dụng CPU/bộ nhớ cao.

Nguyên nhân: Proxy API chưa được triển khai trên một hoặc nhiều Bộ xử lý thư

Trong một số ít trường hợp, Proxy API có thể không được triển khai trên một hoặc nhiều Bộ xử lý thư. Điều này chủ yếu xảy ra do thiếu thông báo sự kiện từ Máy chủ quản lý cho Bộ xử lý thư trong quá trình triển khai Proxy API cụ thể. Trong trường hợp này, bạn sẽ không thể tạo phiên theo dõi trong giao diện người dùng Edge.

Chẩn đoán

  1. Đăng nhập vào từng Bộ xử lý thư và kiểm tra xem bản sửa đổi cụ thể của Proxy API có được triển khai hay không bằng lệnh sau:

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

    Kết quả ví dụ:

    Bạn sẽ thấy danh sách các bản sửa đổi dưới dạng kết quả của lệnh trên. Ví dụ: nếu bản sửa đổi 12 được triển khai, thì bạn sẽ thấy kết quả như sau:

    [ "12" ]

  2. Nếu bản sửa đổi cụ thể của Proxy API không xuất hiện dưới dạng kết quả của lệnh nêu trong Bước #1 ở trên, hãy khởi động lại Bộ xử lý thông báo cụ thể như giải thích trong phần Giải pháp dưới đây.

  3. Lặp lại các bước từ 1 đến 2 cho tất cả các Bộ xử lý thư.

  4. Nếu bản sửa đổi cụ thể của Proxy API được triển khai trên tất cả Bộ xử lý thư thì đây không phải là nguyên nhân của sự cố này. Chuyển đến mục Phải thu thập thông tin chẩn đoán.

Độ phân giải

  1. Khởi động lại(các) Bộ xử lý thư cụ thể chưa triển khai bản sửa đổi cụ thể của Proxy API:

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

Nguyên nhân: Vấn đề với giao diện người dùng Edge

Chẩn đoán

  1. Hãy kiểm tra nhật ký giao diện người dùng Edge /opt/apigee/var/log/edge-ui/application.log/opt/apigee/var/log/edge-ui/edge-ui.log và xem có lỗi nào không.
  2. Hãy liên hệ với Nhóm hỗ trợ Apigee rồi chia sẻ các tệp này để tìm hiểu thêm.

Phải thu thập thông tin chẩn đoán

Nếu sự cố vẫn tiếp diễn sau khi đã làm theo các hướng dẫn ở trên, hãy thu thập các thông tin chẩn đoán sau. Hãy liên hệ và chia sẻ thông tin với Nhóm hỗ trợ Apigee:

  1. Kết quả của lệnh:

    curl -v <management-server-host>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/apis/<apiproxy-name>/revisions/<revision-number>/debugsessions -u <user>
    
  2. Nhật ký máy chủ quản lý

    /opt/apigee/var/log/edge-management-server/logs/system.log.
    
  3. Nhật ký Trình xử lý thư

    /opt/apigee/var/log/edge-message-processor/logs/system.log.
    
  4. Đầu ra của lệnh telnet/nc từ Máy chủ quản lý đến Bộ xử lý thông báo:

    telnet <MessageProcessor_IP> 8082
    nc -vz <MessageProcessor_IP> 8082
    
  5. Kết quả của lệnh netstat dưới đây trên(các) Bộ xử lý thông báo:

    netstat -an > netstat.txt
    
  6. Nếu chúng tôi phát hiện thấy có vấn đề với giao diện người dùng Edge, hãy cung cấp nhật ký giao diện người dùng Edge /opt/apigee/var/log/edge-ui/application.log/opt/apigee/var/log/edge-ui/edge-ui.log.

  7. Thông tin chi tiết về những phần đã được thử trong Cẩm nang này và mọi thông tin chi tiết khác sẽ giúp chúng tôi nhanh chóng giải quyết vấn đề này.