Solução de problemas de erro na implantação da política de registros de mensagens

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

InvalidProtocol

Mensagem de erro

A implantação de um proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Causa

A implantação da política MessageLogging poderá falhar com esse erro se o protocolo especificado no elemento <Protocol> não for válido. Os protocolos válidos são TCP e UDP. Para enviar mensagens syslog por TLS/SSL, apenas TCP é aceito.

Por exemplo, a implantação do proxy de API falhará com esse erro se você especificar HTTP no elemento <Protocol> da política MessageLogging, conforme mostrado abaixo:

<Protocol>HTTP</Protocol>

Diagnóstico

  1. Identifique a política MessageLogging em que o erro ocorreu. Você encontra essas informações na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é LogToSyslog:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    
  2. Na falha da configuração da política MessageLogging verifique se o protocolo especificado no elemento <Protocol> é válido. Se houver um protocolo inválido especificado, essa é a causa do erro.

    Por exemplo, a política a seguir especifica um protocolo inválido.

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

    Como o protocolo definido no elemento <Protocol> é inválido, a implantação do proxy de API falha com o erro:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

Resolução

Verifique se o protocolo definido no elemento <Protocol> da política MessageLogging é válido. O elemento <Protocol> é compatível com os seguintes valores:

  • TCP
  • UDP

Para corrigir o exemplo mostrado acima, defina um protocolo válido dentro do elemento <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

Mensagem de erro

A implantação de um proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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

Exemplo de captura de tela

Causa

A implantação da política MessageLogging poderá falhar com esse erro se o número da porta não for especificado no elemento <Port> ou se não for válido. O número da porta precisa ser um número inteiro maior que zero.

Por exemplo, se o elemento <Port> for declarado como mostrado abaixo, a implantação do proxy de API falhará:

<Port>0</Port>

Diagnóstico

  1. Identifique a política MessageLogging em que o erro ocorreu. Você encontra essas informações na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é LogToSyslog:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    
  2. Na política do MessageLogging com falha, verifique se um número de porta válido está especificado no elemento <Port>. Se o número da porta não for definido ou for inválido, essa é a causa do erro.

    Por exemplo, a política a seguir especifica um número de porta inválido:

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

    Como o número da porta definido no elemento <Port> é inválido, a implantação do proxy da API falha com o erro:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

Resolução

Verifique se um número de porta está definido no elemento <Port> da política MessageLogging. Precisa ser um número inteiro maior do que zero.

Para corrigir o exemplo mostrado acima, defina um número de porta válido no elemento <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>