Fehlerbehebung bei der Bereitstellung von Nachrichten-Logging-Richtlinien

Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.

InvalidProtocol

Fehlermeldung

Die Bereitstellung eines API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Revision 4.

Ursache

Die Bereitstellung der MessageLogging-Richtlinie kann mit diesem Fehler fehlschlagen, wenn das im <Protocol>-Element angegebene Protokoll nicht gültig ist. Gültige Protokolle sind TCP und UDP. Zum Senden von Syslog-Nachrichten über TLS/SSL wird nur TCP unterstützt.

Die Bereitstellung des API-Proxys schlägt beispielsweise mit diesem Fehler fehl, wenn Sie HTTP im Element <Protocol> der MessageLogging-Richtlinie wie unten gezeigt angeben:

<Protocol>HTTP</Protocol>

Diagnose

  1. Ermitteln Sie die MessageLogging-Richtlinie, in der der Fehler aufgetreten ist. Diese Informationen finden Sie in der Fehlermeldung. Im folgenden Fehler lautet der Richtlinienname beispielsweise LogToSyslog:.

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    
  2. Prüfen Sie in der Konfiguration der fehlgeschlagenen MessageLogging-Richtlinien, ob das im Element <Protocol> angegebene Protokoll gültig ist. Wenn ein ungültiges Protokoll angegeben ist, ist dies die Ursache des Fehlers.

    Die folgende Richtlinie gibt beispielsweise ein ungültiges Protokoll an.

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

    Da das im Element <Protocol> definierte Protokoll ungültig ist, schlägt die Bereitstellung des API-Proxys mit dem folgenden Fehler fehl:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

Lösung

Achten Sie darauf, dass das im Element <Protocol> der MessageLogging-Richtlinie definierte Protokoll gültig ist. Das Element <Protocol> unterstützt die folgenden Werte:

  • TCP
  • UDP

Um das obige Beispiel zu korrigieren, definieren Sie ein gültiges Protokoll im Element <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

Fehlermeldung

Die Bereitstellung eines API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Revision 4.

Ursache

Die Bereitstellung der MessageLogging-Richtlinie kann mit diesem Fehler fehlschlagen, wenn die Portnummer nicht im Element <Port> angegeben oder ungültig ist. Die Portnummer muss eine Ganzzahl größer als null sein.

Wenn beispielsweise das Element <Port> wie unten gezeigt deklariert wird, schlägt die Bereitstellung des API-Proxys fehl:

<Port>0</Port>

Diagnose

  1. Ermitteln Sie die MessageLogging-Richtlinie, in der der Fehler aufgetreten ist. Diese Informationen finden Sie in der Fehlermeldung. Im folgenden Fehler lautet der Richtlinienname beispielsweise LogToSyslog:.

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    
  2. In der fehlgeschlagenen MessageLogging-Richtlinie wird geprüft, ob im Element <Port> eine gültige Portnummer angegeben ist. Wenn die Portnummer nicht definiert oder ungültig ist, ist dies die Ursache des Fehlers.

    Die folgende Richtlinie gibt beispielsweise eine ungültige Portnummer an:

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

    Da die im <Port>-Element definierte Portnummer ungültig ist, schlägt die Bereitstellung des API-Proxys mit dem folgenden Fehler fehl:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

Lösung

Prüfen Sie, ob im Element <Port> der MessageLogging-Richtlinie eine Portnummer definiert ist. Sie muss eine Ganzzahl größer als null sein.

Zur Behebung des oben gezeigten Beispiels definieren Sie eine gültige Portnummer im Element <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>