Message Logging politika dağıtımı hatası sorunlarını giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

InvalidProtocol

Hata mesajı

Bir API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si üzerinden dağıtılması şu hata mesajıyla başarısız olur:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

<Protocol> öğesi içinde belirtilen protokol geçerli değilse MessageLogging politikası politikasının dağıtımı bu hatayla başarısız olabilir. Geçerli protokoller TCP ve UDP'dir. TLS/SSL üzerinden sistem günlüğü mesajları göndermek için yalnızca TCP desteklenir.

Örneğin, MessageLogging Politikası'nın <Protocol> öğesinde HTTP'yi aşağıda gösterildiği gibi belirtirseniz API Proxy'sinin dağıtımı bu hatayla başarısız olur:

<Protocol>HTTP</Protocol>

Teşhis

  1. Hatanın oluştuğu MessageLogging politikasını belirleyin. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı LogToSyslog: şeklindedir.

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    
  2. Başarısız MessageLogging politika yapılandırmasında, <Protocol> öğesinde belirtilen protokolün geçerli olup olmadığını kontrol edin. Geçersiz bir protokol belirtilmişse hatanın nedeni budur.

    Örneğin, aşağıdaki politika geçersiz bir protokol belirtiyor.

    <?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> öğesinde tanımlanan protokol geçersiz olduğundan API Proxy'sinin dağıtımı şu hatayı vererek başarısız olur:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

Çözünürlük

MessageLogging politikasının <Protocol> öğesinde tanımlanan protokolün geçerli olduğundan emin olun. <Protocol> öğesi aşağıdaki değerleri destekler:

  • TCP
  • UDP

Yukarıda gösterilen örneği düzeltmek için <Protocol> öğesi içinde geçerli bir protokol tanımlayın:

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

Hata mesajı

Bir API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si üzerinden dağıtılması şu hata mesajıyla başarısız olur:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

Bağlantı noktası numarası <Port> öğesinde belirtilmemişse veya numara geçerli değilse MessageLogging politikasının dağıtımı bu hatayla başarısız olabilir. Bağlantı noktası numarası sıfırdan büyük bir tam sayı olmalıdır.

Örneğin, <Port> öğesi aşağıda gösterildiği gibi tanımlanırsa API proxy'sinin dağıtımı başarısız olur:

<Port>0</Port>

Teşhis

  1. Hatanın oluştuğu MessageLogging politikasını belirleyin. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı LogToSyslog: şeklindedir.

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    
  2. Başarısız MessageLogging politikasında, <Port> öğesinde geçerli bir bağlantı noktası numarasının belirtilip belirtilmediğini kontrol edin. Bağlantı noktası numarası tanımlanmamışsa veya geçersizse hatanın nedeni budur.

    Örneğin, aşağıdaki politika geçersiz bir bağlantı noktası numarası belirtiyor:

    <?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> öğesinde tanımlanan bağlantı noktası numarası geçersiz olduğundan API Proxy'sinin dağıtımı şu hatayı vererek başarısız olur:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

Çözünürlük

MessageLogging politikasının <Port> öğesinde bir bağlantı noktası numarasının tanımlandığından emin olun. Sıfırdan büyük bir tam sayı olmalıdır.

Yukarıda gösterilen örneği düzeltmek için <Protocol> öğesi içinde geçerli bir bağlantı noktası numarası tanımlayın.

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