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

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

InvalidProtocol

הודעת השגיאה

פריסת proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:

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.

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

שגיאה בשמירת הגרסה 4.

הסיבה

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

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

<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>
    

    הפריסה של ה-API Proxy נכשלת עם השגיאה: כי הפרוטוקול שהוגדר באלמנט <Protocol> לא תקין.

    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 דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:

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.

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

שגיאה בשמירת הגרסה 4.

מטרה

פריסת המדיניות 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>