Solución de problemas de errores en la implementación de políticas de registros de mensajes

Estás viendo la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.

InvalidProtocol

Mensaje de error

La implementación de un proxy de API a través de la IU o la API de Apigee falla con este mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

Se produjo un error al guardar la revisión 4.

Causa

La implementación de la política de MessageLogging puede generar este error si el protocolo especificado en el elemento <Protocol> no es válido. Los protocolos válidos son TCP y UDP. Para enviar mensajes de syslog a través de TLS y SSL, solo se admite TCP.

Por ejemplo, la implementación del proxy de API genera este error si especificas HTTP en el elemento <Protocol> de la política de MessageLogging, como se muestra a continuación:

<Protocol>HTTP</Protocol>

Diagnóstico

  1. Identifica la política de MessageLogging en la que se produjo el error. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es LogToSyslog:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    
  2. En la configuración de la política de MessageLogging con errores, comprueba si el protocolo especificado en el elemento <Protocol> es válido. Si se especifica un protocolo no válido, entonces esa es la causa del error.

    Por ejemplo, la siguiente política especifica un protocolo no vá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>
    

    Debido a que el protocolo definido en el elemento <Protocol> no es válido, la implementación del proxy de API genera el siguiente error:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

Solución

Asegúrate de que el protocolo definido dentro del elemento <Protocol> de la política de MessageLogging sea válido. El elemento <Protocol> admite los siguientes valores:

  • TCP
  • UDP

Para corregir el ejemplo anterior, define un protocolo válido dentro del 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

Mensaje de error

La implementación de un proxy de API a través de la IU o la API de Apigee falla con este mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

Se produjo un error al guardar la revisión 4.

Causa

La implementación de la política de MessageLogging puede fallar con este error si no se especifica el número de puerto en el elemento <Port> o no es válido. El número de puerto debe ser un número entero mayor que cero.

Por ejemplo, si el elemento <Port> se declara como se muestra a continuación, la implementación del proxy de API falla:

<Port>0</Port>

Diagnóstico

  1. Identifica la política de MessageLogging en la que se produjo el error. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es LogToSyslog:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    
  2. En la política de MessageLogging con errores, verifica si se especifica un número de puerto válido dentro del elemento <Port>. Si el número de puerto no está definido o no es válido, ese es el motivo del error.

    Por ejemplo, la siguiente política especifica un número de puerto no vá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>
    

    Debido a que el número de puerto definido dentro del elemento <Port> no es válido, la implementación del proxy de API genera el siguiente error:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

Solución

Asegúrate de que un número de puerto se defina en el elemento <Port> de la política de MessageLogging. Debe ser un número entero mayor que cero.

Para corregir el ejemplo anterior, define un número de puerto válido dentro del 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>