Message Logging ポリシーのデプロイエラーのトラブルシューティング

InvalidProtocol

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。

    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 経由で Syslog メッセージを送信する場合、使用できるのは TCP だけです。

たとえば、次のように、MessageLogging ポリシーの <Protocol> 要素に HTTP を指定すると、このエラーが発生して API プロキシのデプロイに失敗します。

<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 プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。

    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 管理 API を使用した API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。

    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.
    

スクリーンショットの例

原因

<Port> 要素にポート番号が指定されていると、このエラーが発生し、MessageLogging ポリシーのデプロイに失敗する場合があります。ポート番号は 1 以上の整数にする必要があります。

たとえば、<Port> 要素が次のように宣言されていると、API プロキシのデプロイに失敗します。

<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 プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
        

解決策

MessageLogging ポリシーの <Port> 要素にポート番号を定義します。1 以上の整数を指定する必要があります。

上の例を修正するには、<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>