Yêu cầu API không được ghi lại trong giao diện người dùng Edge

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

Hình ảnh sau đây cho thấy các yêu cầu API không được ghi lại trong giao diện người dùng Edge khi phiên theo dõi bắt đầu:

Thông báo lỗi

Sẽ không có thông báo lỗi nào hiển thị trong giao diện người dùng Edge khi sự cố này xảy ra.

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

Bảng sau đây cho thấy các nguyên nhân có thể dẫn đến việc không ghi nhận được các yêu cầu API trong công cụ Theo dõi giao diện người dùng của Edge:

Nguyên nhân Mô tả Hướng dẫn khắc phục sự cố có thể áp dụng cho
Các yêu cầu không được Trình xử lý thư xử lý Các yêu cầu API phải được Bộ xử lý tin nhắn thành phần của Edge xử lý để ghi lại dấu vết. Nếu một yêu cầu API không kết nối được với Apigee Edge, thì sẽ không đạt được điểm truy cập đến Edge (tức là bộ định tuyến) hoặc bị lỗi trước khi được Bộ xử lý thông báo xử lý thì không thể ghi lại dấu vết. Người dùng đám mây công khai và riêng tư ở Edge
Không tìm thấy proxy API trong cây phân loại Bộ xử lý thư Apigee sử dụng định nghĩa Quy tắc định tuyến có tên là Cây phân loại để gửi yêu cầu dựa trên tên máy chủ, đường dẫn cơ sở, bản sửa đổi và môi trường của yêu cầu gửi đến. Nếu proxy API có liên quan bị xoá vì lý do nào đó khỏi Cây phân loại, thì các giao dịch Theo dõi có thể sẽ không được điền. Người dùng đám mây riêng tư ở Edge

Nguyên nhân: Yêu cầu không được Trình xử lý thư xử lý

Chẩn đoán

Để ghi lại yêu cầu API trong một phiên Theo dõi, yêu cầu API phải do Bộ xử lý thông báo thành phần của Edge xử lý. Có một số lý do khiến yêu cầu API có thể không được ghi lại trong giao dịch Theo dõi.

Ví dụ: Nếu một yêu cầu API không kết nối được với Apigee Edge, thì sẽ không gửi được tại điểm truy cập đến Edge (tức là bộ định tuyến) hoặc bị lỗi trước khi được Bộ xử lý thông báo xử lý thì không thể ghi lại dấu vết. Mỗi trường hợp trong số này được trình bày chi tiết hơn bên dưới.

Trường hợp 1: Các yêu cầu không tiếp cận được với Apigee Edge

  • Nguyên nhân

    Trong trường hợp này, lỗi có thể là do sự cố phân giải DNS hoặc sự cố kết nối mạng. Nếu có, bạn có thể thấy lỗi sau đây khi chạy lệnh này:

    curl https://hostName:port/apiProxyBasePath/requestPath
    
    curl: (6) Could not resolve host: hostName
    
  • Độ phân giải

    Bạn có thể xác minh cấu hình DNS bằng lệnh sau đây:

    dig hostName

    Bạn có thể xác minh kết nối mạng bằng lệnh sau:

    telnet hostName port

Trường hợp 2: Yêu cầu không thành công trên bộ định tuyến Apigee Edge

  • Nguyên nhân

    Trong trường hợp này, lỗi có thể do lỗi bắt tay TLS/SSL. Nếu có, bạn có thể thấy một trong các lỗi sau:

    Received fatal alert: handshake_failure
    
    HTTP/1.1 400 Bad Request
    

    Bạn cũng có thể thấy lỗi chứng chỉ SSL.

  • Độ phân giải

    Hãy tham khảo các cẩm nang sau để khắc phục và giải quyết những vấn đề này:

    Lỗi bắt tay TLS/SSL

    Yêu cầu 400 không hợp lệ – Lỗi chứng chỉ SSL

Trường hợp 3: Công cụ xử lý thư không xử lý được yêu cầu

  • Nguyên nhân

    Trong trường hợp này, Bộ xử lý thư Apigee không thể tìm thấy Proxy API cho đường dẫn và máy chủ ảo được chỉ định. Do đó, bạn có thể thấy một trong các lỗi sau:

    HTTP/1.1 404 Not Found
    
    {
      "fault":{
        "faultstring":"Unable to identify proxy for host: default and url: \/apiProxyBasePath/requestPath",
        "detail":{
          "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"
        }
      }
    }
    
    
  • Độ phân giải

    Hãy tham khảo cẩm nang này để khắc phục sự cố và giải quyết vấn đề: 404 Không thể xác định proxy cho máy chủ lưu trữ.

Nguyên nhân: Không tìm thấy proxy API trong cây phân loại

Chẩn đoán

Nếu một Trình xử lý thông báo không tìm thấy proxy API trong Cây phân loại, thì mọi yêu cầu API gửi đến proxy cụ thể đó sẽ không hiển thị trong các phiên Theo dõi trên giao diện người dùng Edge.

Hãy thực hiện theo các bước bên dưới để xác định xem đây có phải là trường hợp này không:

  1. Đăng nhập vào từng Bộ xử lý thông báo và kiểm tra xem bản sửa đổi cụ thể của API đã yêu cầu có được triển khai trong môi trường thích hợp của Bộ xử lý thông báo bằng lệnh sau đây hay không:

    curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
    

    Kết quả ví dụ:

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

    [ "12" ]
    

    Trừ phi gặp lỗi HTTP 404 không liên tục, bạn có thể thấy rằng bản sửa đổi cụ thể đã được triển khai.

  2. Đọc Cây phân loại và kiểm tra sự tồn tại của tên proxy API bằng lệnh sau đây:

    curl -i http://localhost:8082/v1/classification/tree | grep apiName
    
  3. Lặp lại Bước 1 và 2 cho từng Trình xử lý thư. Nếu tên proxy API đã cho bị thiếu trong Cây phân loại của bất kỳ Trình xử lý thông báo nào thì hãy làm theo giải pháp được đưa ra dưới đây.

Độ phân giải

Vui lòng làm theo các bước dưới đây để giải quyết vấn đề này. Hãy nhớ thực hiện mọi biện pháp phòng ngừa cần thiết để tránh tình trạng ngừng sản xuất có thể xảy ra do khởi động lại Bộ xử lý thư khi đang gặp phải tình trạng tải yêu cầu cao.

  1. Đăng nhập vào từng máy chủ của Trình xử lý thông báo bị thiếu proxy API cụ thể trong Cây phân loại rồi dùng lệnh bên dưới để khởi động lại Bộ xử lý thông báo:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  2. Sau khi khởi động lại, hãy sử dụng lệnh bên dưới để đợi cho đến khi ứng dụng hoạt động:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready
    
  3. Sau khi Trình xử lý thông báo đã sẵn sàng, hãy xác minh xem proxy API có thể sử dụng hay không bằng lệnh sau đây:

    curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
    

    Kết quả ví dụ:

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

    [ "12" ]
    

    Trừ phi gặp lỗi HTTP 404 không liên tục, bạn có thể thấy rằng bản sửa đổi cụ thể đã được triển khai.

  4. Đọc Cây phân loại và xác minh sự tồn tại của tên proxy API bằng lệnh sau đây:

    curl -i http://localhost:8082/v1/classification/tree | grep apiName
    

    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.

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

Nếu vấn đề vẫn tiếp diễn sau khi làm theo hướng dẫn ở trên, vui lòng thu thập và chia sẻ thông tin chẩn đoán sau đây với Nhóm hỗ trợ Apigee:

Loại Thông tin chẩn đoán Loại    Command
Kết quả của lệnh theo dõi phiên
curl -v management-server-host:8080/v1/runtime/organizations/orgName/environments/envName/apis/apiProxyName/revisions/revisionNumber/debugsessions -u user
Nhật ký máy chủ quản lý
/opt/apigee/var/log/edge-management-server/logs/system.log
Nhật ký Người xử lý thư
/opt/apigee/var/log/edge-message-processor/logs/system.log
Dữ liệu đầu ra của các lệnh telnet/netcat từ Máy chủ quản lý đến Trình xử lý thư
telnet MessageProcessor_IP 8082
nc -vz MessageProcessor_IP 8082
Kết quả của lệnh netstat trên(các) Bộ xử lý thông báo
netstat -an > netstat.txt
Các bản sửa đổi danh sách đầu ra được triển khai cho Proxy API cụ thể trên tất cả(các) Trình xử lý thông báo
curl -v http://localhost:8082/v1/runtime/organizations/orgName/environments/envName/apis/apiName/revisions
Đầu ra của Cây phân loại trên tất cả(các) Trình xử lý thông báo
curl -i http://localhost:8082/v1/classification/tree