Khắc phục sự cố khi triển khai chính sách Ghi nhật ký thư

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

InvalidProtocol

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

Error Saving Revision revision_number
Invalid Protocol: invalid_protocol for Syslog handler in policy policy_name.

Ví dụ về thông báo lỗi

Error Saving Revision 4
Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.

Ảnh chụp màn hình mẫu

Nguyên nhân

Bạn có thể không triển khai được chính sách MessageLogging với lỗi này nếu giao thức được chỉ định trong phần tử <Protocol> không hợp lệ. Các giao thức hợp lệ là TCP và UDP. Để gửi thông báo nhật ký hệ thống qua TLS/SSL, chỉ có TCP được hỗ trợ.

Ví dụ: việc triển khai Proxy API không thành công với lỗi này nếu bạn chỉ định HTTP trong phần tử <Protocol> của Chính sách ghi nhật ký tin nhắn như minh hoạ dưới đây:

<Protocol>HTTP</Protocol>

Chẩn đoán

  1. Xác định chính sách MessageLogging đã xảy ra lỗi. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách sẽ là LogToSyslog:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    
  2. Trong phần kiểm tra cấu hình chính sách MessageLogging không thành công, liệu giao thức được chỉ định trong phần tử <Protocol> có hợp lệ hay không. Nếu bạn chỉ định một giao thức không hợp lệ, thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: chính sách sau đây chỉ định một giao thức không hợp lệ.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <MessageLogging name="LogToSyslog">
      <Syslog>
        <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
        <Host>logs-01.loggly.com</Host>
        <Port>514</Port>
        <Protocol>HTTP</Protocol>
        <FormatMessage>true</FormatMessage>
      </Syslog>
      <logLevel>ALERT</logLevel>
    </MessageLogging>
    

    Vì giao thức được xác định trong phần tử <Protocol> không hợp lệ nên việc triển khai Proxy API không thành công kèm theo lỗi:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

Độ phân giải

Đảm bảo rằng giao thức được xác định trong phần tử <Protocol> của chính sách MessageLogging là hợp lệ. <Protocol> hỗ trợ các giá trị sau:

  • TCP
  • UDP

Để sửa ví dụ nêu trên, hãy xác định một giao thức hợp lệ trong phần tử <Protocol>:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageLogging name="LogToSyslog">
  <Syslog>
    <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
    <Host>logs-01.loggly.com</Host>
    <Port>514</Port>
    <Protocol>TCP</Protocol>
    <FormatMessage>true</FormatMessage>
  </Syslog>
  <logLevel>ALERT</logLevel>
</MessageLogging>

InvalidPort

Thông báo lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

Error Saving Revision revision_number
Invalid Port: 0 for Syslog handler in policy policy_name.

Ví dụ về thông báo lỗi

Error Saving Revision 4
Invalid Port: 0 for Syslog handler in policy LogToSyslog.

Ảnh chụp màn hình mẫu

Nguyên nhân

Bạn có thể không triển khai được Chính sách MessageLogging với lỗi này nếu số cổng không được chỉ định trong phần tử <Port> hoặc nếu số cổng không hợp lệ. Số cổng phải là một số nguyên lớn hơn 0.

Ví dụ: nếu phần tử <Port> được khai báo như hình dưới đây, thì việc triển khai proxy API sẽ không thành công:

<Port>0</Port>

Chẩn đoán

  1. Xác định chính sách MessageLogging đã xảy ra lỗi. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách sẽ là LogToSyslog:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    
  2. Trong phần kiểm tra chính sách MessageLogging không thành công, liệu số cổng hợp lệ có được chỉ định trong phần tử <Port> hay không. Nếu số cổng không được xác định hoặc không hợp lệ, thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: chính sách sau đây chỉ định số cổng không hợp lệ:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <MessageLogging name="LogToSyslog">
      <Syslog>
        <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
        <Host>logs-01.loggly.com</Host>
        <Port>0</Port>
        <Protocol>TCP</Protocol>
        <FormatMessage>true</FormatMessage>
      </Syslog>
      <logLevel>ALERT</logLevel>
    </MessageLogging>
    

    Vì số cổng được xác định trong phần tử <Port> không hợp lệ, nên việc triển khai Proxy API không thành công kèm theo lỗi:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

Độ phân giải

Đảm bảo xác định số cổng trong phần tử <Port> của chính sách MessageLogging. Giá trị này phải là một số nguyên lớn hơn 0.

Để sửa ví dụ nêu trên, hãy xác định số cổng hợp lệ trong phần tử <Protocol>.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageLogging name="LogToSyslog">
  <Syslog>
    <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
    <Host>logs-01.loggly.com</Host>
    <Port>514</Port>
    <Protocol>TCP</Protocol>
    <FormatMessage>true</FormatMessage>
  </Syslog>
  <logLevel>ALERT</logLevel>
</MessageLogging>