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

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

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.

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

Cause

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

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

<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
  • UDP

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