訊息記錄政策部署錯誤疑難排解

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

InvalidProtocol

錯誤訊息

透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:

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

錯誤訊息示例

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

螢幕截圖範例

原因

如果 <Protocol> 元素中指定的通訊協定無效,MessageLogging 政策政策的部署作業可能會失敗,並顯示這項錯誤。有效的通訊協定為 TCP 和 UDP。如果是透過 TLS/SSL 傳送系統記錄訊息,僅支援 TCP。

舉例來說,如果您在 MessageLogging 政策的 <Protocol> 元素中指定 HTTP,API Proxy 部署作業就會失敗,如下所示:

<Protocol>HTTP</Protocol>

診斷

  1. 找出發生錯誤的 MessageLogging 政策。你可以在錯誤訊息中找到這項資訊。舉例來說,在下列錯誤中,政策名稱為 LogToSyslog:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    
  2. 在失敗的 MessageLogging 政策設定中,檢查 <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>HTTP</Protocol>
        <FormatMessage>true</FormatMessage>
      </Syslog>
      <logLevel>ALERT</logLevel>
    </MessageLogging>
    

    由於 <Protocol> 元素中定義的通訊協定無效,因此 API Proxy 部署作業會失敗,並出現以下錯誤:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

解析度

確保 MessageLogging 政策 <Protocol> 元素中定義的通訊協定有效。<Protocol> 元素支援下列值:

  • TCP
  • UDP

如要修正上述範例,請在 <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

錯誤訊息

透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:

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

錯誤訊息示例

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

螢幕截圖範例

原因

如果 MessageLogging 政策未指定,若未在 <Port> 元素中指定通訊埠號碼,或如果無效,則可能會失敗並發生此錯誤。通訊埠編號須為大於零的整數。

舉例來說,如果宣告 <Port> 元素如下所示,API Proxy 部署作業就會失敗:

<Port>0</Port>

診斷

  1. 找出發生錯誤的 MessageLogging 政策。你可以在錯誤訊息中找到這項資訊。舉例來說,在下列錯誤中,政策名稱為 LogToSyslog:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    
  2. 在失敗的 MessageLogging 政策中,檢查 <Port> 元素內是否已指定有效的通訊埠號碼。如果通訊埠號碼未定義或無效,表示發生錯誤。

    舉例來說,下列政策指定的通訊埠號碼無效:

    <?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>
    

    由於 <Port> 元素中定義的通訊埠號碼無效,API Proxy 部署作業就會失敗,並出現以下錯誤:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

解析度

確保在 MessageLogging 政策的 <Port> 元素中已定義通訊埠號碼。必須為大於零的整數。

如要修正上述範例,請在 <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>