मैसेज लॉग करने की नीति के डिप्लॉयमेंट से जुड़ी गड़बड़ी ठीक करना

Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं.
info

पर क्लिक करें.

InvalidProtocol

गड़बड़ी का मैसेज

Edge यूज़र इंटरफ़ेस (यूआई) या Edge Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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

अगर <Protocol> एलिमेंट में दिया गया प्रोटोकॉल मान्य नहीं है, तो इस गड़बड़ी की वजह से MessageLogging नीति को लागू नहीं किया जा सकता. मान्य प्रोटोकॉल, टीसीपी और यूडीपी हैं. टीएलएस/एसएसएल पर सिसलॉग मैसेज भेजने के लिए, सिर्फ़ टीसीपी का इस्तेमाल किया जा सकता है.

उदाहरण के लिए, अगर MessageLogging नीति के <Protocol> एलिमेंट में एचटीटीपी तय किया जाता है, तो एपीआई प्रॉक्सी को डिप्लॉय करने में यह गड़बड़ी होती है. इसे यहां दिखाया गया है:

<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> एलिमेंट में तय किया गया प्रोटोकॉल अमान्य है. इसलिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सका. गड़बड़ी का मैसेज यह है:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

रिज़ॉल्यूशन

पक्का करें कि MessageLogging नीति के <Protocol> एलिमेंट में तय किया गया प्रोटोकॉल मान्य हो. <Protocol> एलिमेंट के लिए, ये वैल्यू इस्तेमाल की जा सकती हैं:

  • टीसीपी
  • यूडीपी

ऊपर दिए गए उदाहरण को ठीक करने के लिए, <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

गड़बड़ी का मैसेज

Edge यूज़र इंटरफ़ेस (यूआई) या Edge Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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.

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

वजह

अगर <Port> एलिमेंट में पोर्ट नंबर नहीं दिया गया है या वह मान्य नहीं है, तो इस गड़बड़ी की वजह से MessageLogging नीति लागू नहीं हो सकती. पोर्ट नंबर, शून्य से बड़ा कोई पूर्णांक होना चाहिए.

उदाहरण के लिए, अगर <Port> एलिमेंट को नीचे दिए गए तरीके से तय किया जाता है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकेगा:

<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> एलिमेंट में तय किया गया पोर्ट नंबर अमान्य है. इसलिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सका. गड़बड़ी का मैसेज यह है:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

रिज़ॉल्यूशन

पक्का करें कि MessageLogging नीति के <Port> एलिमेंट में पोर्ट नंबर तय किया गया हो. यह संख्या शून्य से बड़ा कोई पूर्णांक होनी चाहिए.

ऊपर दिए गए उदाहरण को ठीक करने के लिए, <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>