Rozwiązywanie problemów związanych z błędem wdrożenia zasady logowania wiadomości

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

InvalidProtocol

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

Przyczyna

Wdrożenie zasady MessageLogging może się nie powieść z powodu tego błędu, jeśli protokół określony w elemencie <Protocol> jest nieprawidłowy. Prawidłowe protokoły to TCP i UDP. W przypadku wysyłania komunikatów syslog przez TLS/SSL obsługiwany jest tylko protokół TCP.

Na przykład wdrożenie serwera proxy interfejsu API nie powiedzie się, jeśli określisz protokół HTTP w elemencie <Protocol> zasady MessageLogging, jak pokazano poniżej:

<Protocol>HTTP</Protocol>

Diagnoza

  1. Zidentyfikuj zasadę MessageLogging, w której wystąpił błąd. Informacje te znajdziesz w komunikacie o błędzie. Na przykład w poniższym błędzie nazwa zasady to LogToSyslog:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    
  2. W błędnej konfiguracji zasady MessageLogging sprawdź, czy protokół określony w elemencie <Protocol> jest prawidłowy. Jeśli określono nieprawidłowy protokół, to jest przyczyną błędu.

    Na przykład poniższe zasady określają nieprawidłowy protokół.

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

    Ponieważ protokół zdefiniowany w elemencie <Protocol> jest nieprawidłowy, podczas wdrażania serwera proxy interfejsu API występuje błąd:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

Rozdzielczość

Sprawdź, czy protokół zdefiniowany w elemencie <Protocol> zasady MessageLogging jest prawidłowy. Element <Protocol> obsługuje te wartości:

  • TCP
  • UDP

Aby poprawić przykład opisany powyżej, zdefiniuj prawidłowy protokół w elemencie <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

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

Przyczyna

Wdrożenie zasady MessageLogging może się nie powieść z tym błędem, jeśli numer portu nie został określony w elemencie <Port> lub jest nieprawidłowy. Numer portu musi być liczbą całkowitą większą od zera.

Jeśli na przykład element <Port> został zadeklarowany w sposób pokazany poniżej, wdrożenie serwera proxy interfejsu API nie powiedzie się:

<Port>0</Port>

Diagnostyka

  1. Zidentyfikuj zasadę MessageLogging, w której wystąpił błąd. Informacje te znajdziesz w komunikacie o błędzie. Na przykład w poniższym błędzie nazwa zasady to LogToSyslog:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    
  2. W nieudanej zasadzie MessageLogging sprawdź, czy w elemencie <Port> podano prawidłowy numer portu. Jeśli numer portu nie jest zdefiniowany lub jest nieprawidłowy, to jest przyczyną błędu.

    Na przykład ta zasada określa nieprawidłowy numer portu:

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

    Ponieważ numer portu zdefiniowany w elemencie <Port> jest nieprawidłowy, wdrożenie serwera proxy interfejsu API nie powiodło się i występuje błąd:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

Rozdzielczość

Sprawdź, czy numer portu jest zdefiniowany w elemencie <Port> zasady MessageLogging. Musi to być liczba całkowita większa od zera.

Aby poprawić powyższy przykład, zdefiniuj prawidłowy numer portu w elemencie <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>