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

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

InvalidProtocol

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

इस गड़बड़ी के मैसेज से Edge यूज़र इंटरफ़ेस (यूआई) या 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

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

उदाहरण के लिए, अगर आप 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> एलिमेंट के साथ ये वैल्यू इस्तेमाल की जा सकती हैं:

  • 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

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

इस गड़बड़ी के मैसेज से Edge यूज़र इंटरफ़ेस (यूआई) या 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.

स्क्रीनशॉट का उदाहरण

वजह

अगर <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>