การแก้ปัญหาข้อผิดพลาดในการทำให้นโยบายการบันทึกข้อความใช้งานได้

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
ข้อมูล

InvalidProtocol

ข้อความแสดงข้อผิดพลาด

การติดตั้งใช้งานพร็อกซี API ผ่าน Edge UI หรือ 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.

ตัวอย่างภาพหน้าจอ

สาเหตุ

การทำให้นโยบาย MessageLogging ใช้งานได้อาจล้มเหลวโดยมีข้อผิดพลาดนี้ หากโปรโตคอลที่ระบุภายในองค์ประกอบ <Protocol> ไม่ถูกต้อง โปรโตคอลที่ถูกต้องคือ TCP และ UDP สำหรับการส่งข้อความ syslog ผ่าน TLS/SSL จะรองรับเฉพาะ TCP

เช่น การทำให้พร็อกซี API ใช้งานได้ไม่สำเร็จเพราะเป็นข้อผิดพลาดนี้ หากคุณระบุ HTTP ในองค์ประกอบ <Protocol> ของนโยบาย MessageLogging ดังที่แสดงด้านล่าง

<Protocol>HTTP</Protocol>

การวิเคราะห์

  1. ระบุนโยบาย MessageLoking ที่เกิดข้อผิดพลาด โดยคุณจะดูข้อมูลนี้ได้ในข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ 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> ของนโยบาย MessageLในเร็วๆ นี้ถูกต้อง องค์ประกอบ <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 UI หรือ 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.

ตัวอย่างภาพหน้าจอ

สาเหตุ

การทำให้นโยบาย MessageLaging ใช้งานได้อาจล้มเหลวโดยมีข้อผิดพลาดนี้ หากไม่ได้ระบุหมายเลขพอร์ตภายในองค์ประกอบ <Port> หรือไม่ถูกต้อง หมายเลขพอร์ตต้องเป็นจำนวนเต็มที่มากกว่า 0

ตัวอย่างเช่น หากมีการประกาศองค์ประกอบ <Port> ตามที่แสดงด้านล่าง จะทำให้พร็อกซี API ใช้งานได้ไม่สำเร็จ

<Port>0</Port>

การวินิจฉัย

  1. ระบุนโยบาย MessageLoking ที่เกิดข้อผิดพลาด คุณดูข้อมูลนี้ได้จากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ 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 ซึ่งต้องเป็นจำนวนเต็มที่มากกว่า 0

หากต้องการแก้ไขตัวอย่างที่แสดงข้างต้น ให้กำหนดหมายเลขพอร์ตที่ถูกต้องภายในองค์ประกอบ <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>