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

כרגע מוצג התיעוד של 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 בלבד.

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

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

רזולוציה

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

הודעת השגיאה

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

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

רזולוציה

צריך לוודא שמספר יציאה מוגדר בתוך הרכיב <Port> של מדיניות 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>TCP</Protocol>
    <FormatMessage>true</FormatMessage>
  </Syslog>
  <logLevel>ALERT</logLevel>
</MessageLogging>