Устранение ошибок при развертывании политики ведения журнала сообщений

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

InvalidProtocol

Сообщение об ошибке

Развертывание API-прокси через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой, о которой сообщается ниже:

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

Пример сообщения об ошибке

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

Пример скриншота

Причина

Развертывание политики MessageLogging может завершиться с ошибкой, если протокол, указанный в элементе <Protocol> , недействителен. Допустимые протоколы — TCP и UDP. Для отправки сообщений syslog по протоколу TLS/SSL поддерживается только TCP.

Например, развертывание API-прокси завершается с ошибкой, если в элементе <Protocol> политики MessageLogging, как показано ниже, указан протокол HTTP:

<Protocol>HTTP</Protocol>

Диагноз

  1. Определите политику MessageLogging, в которой произошла ошибка. Эту информацию можно найти в сообщении об ошибке. Например, в следующем примере имя политики — LogToSyslog:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    
  2. В конфигурации политики MessageLogging, в которой произошла ошибка, проверьте, является ли протокол, указанный в элементе <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>HTTP</Protocol>
        <FormatMessage>true</FormatMessage>
      </Syslog>
      <logLevel>ALERT</logLevel>
    </MessageLogging>
    

    Поскольку протокол, определенный в элементе <Protocol> , недействителен, развертывание API-прокси завершается с ошибкой:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

Разрешение

Убедитесь, что протокол, определенный в элементе <Protocol> политики MessageLogging, является допустимым. Элемент <Protocol> поддерживает следующие значения:

  • TCP
  • УДП

Чтобы исправить приведенный выше пример, определите допустимый протокол внутри элемента <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

Сообщение об ошибке

Развертывание API-прокси через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой, о которой сообщается ниже:

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

Пример сообщения об ошибке

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

Пример скриншота

Причина

Развертывание политики MessageLogging может завершиться с ошибкой, если номер порта не указан в элементе <Port> или если он недействителен. Номер порта должен быть целым числом больше нуля.

Например, если элемент <Port> объявлен, как показано ниже, развертывание API-прокси завершится неудачей:

<Port>0</Port>

Диагноз

  1. Определите политику MessageLogging, в которой произошла ошибка. Эту информацию можно найти в сообщении об ошибке. Например, в следующем примере имя политики — LogToSyslog:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    
  2. В случае сбоя политики MessageLogging проверьте, указан ли допустимый номер порта в элементе <Port> . Если номер порта не определен или является недопустимым, это и является причиной ошибки.

    Например, следующая политика указывает недопустимый номер порта:

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

    Поскольку номер порта, указанный в элементе <Port> , недействителен, развертывание API-прокси завершается с ошибкой:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

Разрешение

Убедитесь, что номер порта указан в элементе <Port> политики MessageLogging. Он должен быть целым числом больше нуля.

Чтобы исправить приведенный выше пример, укажите допустимый номер порта внутри элемента <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>