Resolução de problemas de erros de implementação da política de registo de mensagens

Está a ver a documentação do Apigee e do Apigee Hybrid.
Ver documentação do Apigee Edge.

InvalidProtocol

Mensagem de erro

A implementação de um proxy de API através da IU ou da API Apigee 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.

Captura de ecrã de exemplo

Ocorreu um erro ao guardar a revisão 4.

Causa

A implementação da política MessageLogging policy pode falhar com este 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 através de TLS/SSL, apenas o TCP é suportado.

Por exemplo, a implementação do proxy de API falha com este erro se especificar HTTP no elemento <Protocol> da política MessageLogging, conforme mostrado abaixo:

<Protocol>HTTP</Protocol>

Diagnóstico

  1. Identifique a política MessageLogging onde ocorreu o erro. Pode encontrar estas informações na mensagem de erro. Por exemplo, no seguinte erro, o nome da política é LogToSyslog:

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

    Por exemplo, a seguinte política 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>
    

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

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

Resolução

Certifique-se de que o protocolo definido no elemento <Protocol> da política MessageLogging é válido. O elemento <Protocol> suporta os seguintes valores:

  • TCP
  • UDP

Para corrigir o exemplo apresentado acima, defina um protocolo 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>

InvalidPort

Mensagem de erro

A implementação de um proxy de API através da IU ou da API Apigee 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.

Captura de ecrã de exemplo

Ocorreu um erro ao guardar a revisão 4.

Causa

A implementação da política MessageLogging pode falhar com este 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 tem de ser um número inteiro superior a zero.

Por exemplo, se o elemento <Port> for declarado conforme mostrado abaixo, a implementação do proxy da API falha:

<Port>0</Port>

Diagnóstico

  1. Identifique a política MessageLogging onde ocorreu o erro. Pode encontrar estas informações na mensagem de erro. Por exemplo, no seguinte erro, o nome da política é LogToSyslog:

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

    Por exemplo, a política seguinte 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>
    

    Uma vez que o número de porta definido no elemento <Port> é inválido, a implementação do proxy de API falha com o erro:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

Resolução

Certifique-se de que é definido um número de porta no elemento <Port> da política MessageLogging. Tem de ser um número inteiro superior a zero.

Para corrigir o exemplo apresentado 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>