פתרון בעיות שקשורות לשגיאות בפריסה של מדיניות הרישום ביומן

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

InvalidProtocol

הודעת שגיאה

הפריסה של שרת proxy ל-API דרך ממשק המשתמש של 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.

צילום מסך לדוגמה

הסיבה

הפריסה של מדיניות מדיניות MessageLogging עלולה להיכשל עם השגיאה הזו, אם הפרוטוקול שצוין ברכיב <Protocol> אינו חוקי. הפרוטוקולים החוקיים הם TCP ו-UDP. לשליחת הודעות Syslog באמצעות TLS/SSL, יש תמיכה רק ב-TCP.

לדוגמה, הפריסה של שרת ה-proxy ל-API נכשלת עם השגיאה הזו אם מציינים HTTP ברכיב <Protocol> של מדיניות MessageLogging באופן הבא:

<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&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> אינו חוקי, הפריסה של שרת ה-proxy ל-API נכשלה ומוצגת השגיאה:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

רזולוציה

חשוב לוודא שהפרוטוקול שהוגדר ברכיב <Protocol> של מדיניות MessageLogging תקין. <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

הודעת שגיאה

הפריסה של שרת proxy ל-API דרך ממשק המשתמש של 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.

צילום מסך לדוגמה

סיבה

הפריסה של מדיניות MessageLogging עלולה להיכשל עם השגיאה הזו אם מספר היציאה לא צוין ברכיב <Port> או אם הוא אינו חוקי. מספר היציאה חייב להיות מספר שלם שגדול מאפס.

לדוגמה, אם הוצהר על הרכיב <Port> כמו שמוצג בהמשך, הפריסה של שרת ה-proxy ל-API נכשלת:

<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&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> לא תקין, ולכן הפריסה של שרת ה-proxy ל-API נכשלה ומוצגת השגיאה:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

רזולוציה

יש לוודא שמספר יציאה מוגדר ברכיב <Port> של מדיניות MessageLogging. הערך צריך להיות מספר שלם שגדול מאפס.

כדי לתקן את הדוגמה שלמעלה, צריך להגדיר מספר יציאה חוקי בתוך הרכיב <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