Résolution des erreurs de déploiement de la règle MessageLogging

Vous consultez la documentation d'Apigee X.
Consultez la documentation d'Apigee Edge.

InvalidProtocol

Message d'erreur

Le déploiement d'un proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue et renvoie le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors de l'enregistrement de la révision 4.

Cause

Le déploiement de la règle MessageLogging peut échouer et renvoyer cette erreur si le protocole spécifié dans l'élément <Protocol> n'est pas valide. Les protocoles valides sont TCP et UDP. Pour l'envoi de messages syslog via TLS/SSL, seul TCP est accepté.

Par exemple, le déploiement du proxy d'API échoue avec cette erreur si vous spécifiez HTTP dans l'élément <Protocol> de la règle MessageLogging, comme indiqué ci-dessous :

<Protocol>HTTP</Protocol>

Diagnostic

  1. Identifiez la règle MessageLogging où l'erreur s'est produite. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est LogToSyslog: :

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    
  2. Lors de la vérification de la configuration de la règle MessageLogging défaillante, vérifiez si le protocole spécifié dans l'élément <Protocol> est valide. Si un protocole invalide est spécifié, il s'agit de la cause de l'erreur.

    Par exemple, la règle suivante spécifie un protocole invalide.

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

    Comme le protocole défini dans l'élément <Protocol> est invalide, le déploiement du proxy d'API échoue et renvoie l'erreur suivante :

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

Solution

Assurez-vous que le protocole défini dans l'élément <Protocol> de la règle MessageLogging est valide. L'élément <Protocol> accepte les valeurs suivantes :

  • TCP
  • UDP

Pour corriger l'exemple ci-dessus, définissez un protocole valide dans l'élément <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

Message d'erreur

Le déploiement d'un proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue et renvoie le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors de l&#39;enregistrement de la révision 4.

Cause

Le déploiement de la règle MessageLogging peut échouer et renvoyer cette erreur si le numéro de port n'est pas spécifié dans l'élément <Port> ou s'il n'est pas valide. Le numéro de port doit être un entier supérieur à zéro.

Par exemple, si l'élément <Port> est déclaré comme indiqué ci-dessous, le déploiement du proxy d'API échoue :

<Port>0</Port>

Diagnostic

  1. Identifiez la règle MessageLogging où l'erreur s'est produite. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est LogToSyslog: :

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    
  2. Dans la règle défaillante, vérifiez si un numéro de port valide est spécifié dans l'élément <Port>. Si le numéro de port n'est pas défini ou est invalide, il s'agit de la cause de l'erreur.

    Par exemple, la règle suivante spécifie un numéro de port invalide :

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

    Comme le numéro de port défini dans l'élément <Port> est invalide, le déploiement du proxy d'API échoue avec l'erreur suivante :

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

Solution

Assurez-vous qu'un numéro de port est défini dans l'élément <Port> de la règle MessageLogging. La valeur doit être un nombre entier supérieur à zéro.

Pour corriger l'exemple présenté ci-dessus, définissez un numéro de port valide dans l'élément <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>