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ı

Edge kullanıcı arayüzü veya Edge Management API aracılığıyla bir API proxy'sinin dağıtımı şu hata mesajıyla başarısız oluyor:

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> öğesinde belirtilen protokol geçerli değilse MessageLogging politikası dağıtımı bu hatayla başarısız olabilir. Geçerli protokoller TCP ve UDP'dir. TLS/SSL üzerinden syslog mesajları göndermek için yalnızca TCP desteklenir.

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

<Protocol>HTTP</Protocol>

Teşhis

  1. Hatayı içeren MessageLogging politikasını belirleyin. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı LogToSyslog:'dır.

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    
  2. Başarısız olan 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 politikada geçersiz bir protokol belirtiliyor.

    <?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 hatayla başarısız oluyor:

    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> öğesinde 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ı

Edge kullanıcı arayüzü veya Edge Management API aracılığıyla bir API proxy'sinin dağıtımı şu hata mesajıyla başarısız oluyor:

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

<Port> öğesinde bağlantı noktası numarası belirtilmemişse veya geçersizse MessageLogging politikası bu hatayla dağıtılamayabilir. 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. Hatayı içeren MessageLogging politikasını belirleyin. Bu bilgiyi hata mesajından edinebilirsiniz. Örneğin, aşağıdaki hatada politika adı LogToSyslog:'dır.

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    
  2. Başarısız olan 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 politikada geçersiz bir bağlantı noktası numarası belirtilmektedir:

    <?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 hatayla 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> öğesinde 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>