מוצג המסמך של 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>
אבחון
מזהים את מדיניות MessageLogging שבה אירעה השגיאה. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא
LogToSyslog:
.Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
בהגדרה של מדיניות 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>
אבחון
מזהים את מדיניות MessageLogging שבה אירעה השגיאה. אפשר למצוא את המידע הזה בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא
LogToSyslog:
.Invalid Port: 0 for Syslog handler in policy LogToSyslog.
במדיניות של 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>