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

คุณกำลังดูเอกสารประกอบ 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.

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

สาเหตุ

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

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

<Protocol>HTTP</Protocol>

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

  1. ระบุนโยบาย MessageLcking ที่เกิดข้อผิดพลาด ซึ่งคุณจะเห็นข้อมูลนี้ในข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ LogToSyslog:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    
  2. ในการกำหนดค่านโยบาย MessageLcking ที่ล้มเหลว ให้ตรวจสอบว่าโปรโตคอลที่ระบุภายในองค์ประกอบ <Protocol> ถูกต้องหรือไม่ หากมีการระบุโปรโตคอลที่ไม่ถูกต้อง นั่นเป็นสาเหตุของข้อผิดพลาด

    ตัวอย่างเช่น นโยบายต่อไปนี้ระบุโปรโตคอลที่ไม่ถูกต้อง

    <?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
    Mes>sag<eLoggi>ng na<me=&quo>t;LogToSyslog"
      Syslog
        Message[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"]< Weather> requ<est >for WOEID {request<.quer>ypara<m.w}>./M<essag>e
       < Hostlog>s-01<.loggly.c>om/Ho<st
        Port51>4/Po<rt
        Protoco>lHT<TP/Prot>oco<l
        Fo>rmatM<essagetru>e</FormatMessage
    >  /Syslog
      logLevelALERT/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&quo>t<; standalone="yes"?
Mes>sag<eLoggi>ng na<me=&quo>t;LogToSyslog"
  Syslog
    Message[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"]< Weather> requ<est >for WOEID {request<.quer>ypara<m.w}>./M<essag>e
   < Hostlog>s-0<1.loggly.>com/H<ost
    Port5>14/P<ort
    Protoc>olT<CP/Prot>oco<l
    Fo>rmatM<essagetru>e</FormatMessage
>  /Syslog
  logLevelALERT/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.

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

สาเหตุ

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

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

<Port>0</Port>

การวินิจฉัย

  1. ระบุนโยบาย MessageLcking ที่เกิดข้อผิดพลาด คุณดูข้อมูลนี้ได้จากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ LogToSyslog:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    
  2. ในนโยบาย MessageLcking ที่ล้มเหลว ให้ตรวจสอบว่ามีการระบุหมายเลขพอร์ตที่ถูกต้องภายในองค์ประกอบ <Port> หรือไม่ หากไม่ได้กำหนดหมายเลขพอร์ตไว้หรือหมายเลขไม่ถูกต้อง ก็เป็นสาเหตุของข้อผิดพลาด

    ตัวอย่างเช่น นโยบายต่อไปนี้ระบุหมายเลขพอร์ตที่ไม่ถูกต้อง

    <?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
    Mes>sag<eLoggi>ng na<me=&quo>t;LogToSyslog"
      Syslog
        Message[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"]< Weather> requ<est >for WOEID {request<.quer>ypara<m.w}>.</Mess>age
     <   Hostl>ogs<-01.loggl>y.com</Host
        Por>t0/P<ort
        Protoc>olT<CP/Prot>oco<l
        Fo>rmatM<essagetru>e</FormatMessage
    >  /Syslog
      logLevelALERT/logLevel
    /MessageLogging
    

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

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

ความละเอียด

ตรวจสอบว่าได้กำหนดหมายเลขพอร์ตภายในองค์ประกอบ <Port> ของนโยบาย MessageLogging แล้ว ค่านี้ต้องเป็นจำนวนเต็มที่มากกว่า 0

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

<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
Mes>sag<eLoggi>ng na<me=&quo>t;LogToSyslog"
  Syslog
    Message[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"]< Weather> requ<est >for WOEID {request<.quer>ypara<m.w}>./M<essag>e
   < Hostlog>s-0<1.loggly.>com/H<ost
    Port5>14/P<ort
    Protoc>olT<CP/Prot>oco<l
    Fo>rmatM<essagetru>e</FormatMessage
>  /Syslog
  logLevelALERT/logLevel
/MessageLogging