כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של
Apigee X. מידע
תיאור הבעיה
נתוני Analytics חסרים בממשק המשתמש של Edge בגלל ששרת ה-Qpidd לא מעביר הודעות ניתוח נתונים ל-PostgreSQL. ב-Edge, הרכיב edge-qpid-server
תואם לשרת ה-Qpidd.
ב-Qpidd יש שני תורים לכל קבוצת ניתוח נתונים:
ax-q-axgroup001-consumer-group-001
התור הזה מכיל הודעות ניתוח שנשלחו מהמעבדים ומהנתבים. מכאן ההודעות נשלפות על ידי ה-
edge-qpid-server
שמנתח את ההודעות ומוסיף אותן ל-PostgreSQL. לאחר שההודעות יעובדו בהצלחה הן יוסרו מהתור.ax-q-axgroup001-consumer-group-001-dl
תור זה הוא תור המכתבים המתים. היא משמשת כיעד להודעות ש
edge-qpid-server
לא הצליח לעבד ולכן אינך רוצה לקבל אותן יותר. השדה הזה בדרך כלל מאוכלס כשחורגים ממספר ההעברות המקסימלי, או אם PostgreSQL דחה הזנה של נתונים חדשים עקב שגיאות בזמן הריצה.
הודעת שגיאה
שורש הבעיה יכול להיות בגלל שגיאות זמן ריצה שונות מהרכיב edge-qpid-server
. בדרך כלל אם ב-edge-qpid-server
מתקבלת שגיאת זמן ריצה מ-PostgreSQL, תור האותיות המתות נוצר אם הוא לא קיים, ואז נשלחת ההודעה הבאה לשם:
yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.
סיבות אפשריות
סיבה | התיאור | הוראות לפתרון בעיות הרלוונטיות |
---|---|---|
הודעות תקועות בתור של אותיות לא פעילות ב-qpidd | ל-edge-qpid-server לא הייתה אפשרות להבין הודעות שנקראו מהמתווך Qpidd, או שלא הייתה לו אפשרות לשמור הודעות ב-PostgreSQL.
|
משתמשי ענן פרטי של Edge |
שלבים נפוצים לאבחון
מריצים את הפקודה הבאה כדי להציג את הנתונים הסטטיסטיים של תור Qpidd:
qpid-stat -q
הפלט מחזיר את קבוצת התורים שרשומים אצל המתווך. אם אוכלסו הודעות בתור שמסתיים בתור "-dl", פירוש הדבר שיש הודעות שנתקעו בתור של האות המתה.
Queues queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind ======================================================================================================================== ax-q-axgroup-001-consumer-group-001 Y 0 185 185 0 13.8m 13.8m 6 2 ax-q-axgroup-001-consumer-group-001-dl Y 0 70 70 0 3.9m 3.9m 0 2
הסיבה: הודעות תקועות בתור האותות הלא פעילה של qpidd
אבחון
התנאי הזה יכול להתרחש במקרים הבאים:
- שדרוג בוצע בעבר, ובמהלך הזמן הזה PostgreSQL היה מושבת.
- הפסקה זמנית בשירות של PostgreSQL עקב בעיות ברשת.
edge-qpid-server
ניסה לשלוח הודעה ל-PostgreSQL אבל ה-PostgreSQL החזיר שגיאת זמן ריצה.
רזולוציה
רושמים את שמות התורים בשלבים הנפוצים לאבחון בעיות. לדוגמה:
ax-q-axgroup-001-consumer-group-001
ax-q-axgroup-001-consumer-group-001-dl
מריצים את הפקודה
qpid-tool
כדי להזין הנחיהqpid
אינטראקטיבית:qpid-tool
הפקודה הזו מחזירה את הפקודה הבאה:
Management Tool for QPID qpid:
מריצים את הפקודה
list broker
כדי לקבל רשימה של המתווכים הפעילים:list broker
הפקודה הזו מחזירה את הפקודה הבאה:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
כאשר העמודה
ID
מציינת את המזהה של המתווך.חשוב לשים לב למזהה של המתווך. בדוגמה הבאה הוא 125.
מריצים את הפקודה הבאה כדי להעביר את ההודעות מתור האותיות המתות בחזרה לתור בפועל:
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}
הפקודה הזו מחזירה את הפקודה הבאה:
OK (0) - {}
אם אין פלט אז לא צריך לעשות כלום, כי אין כוונה להעביר הודעות. אם האפשרות
OK(0)
לא מופיעה, יש לפנות לתמיכה של Apigee Edge.יוצאים מהטרמינל של qpid-tool.
quit
ממתינים 5 דקות ואז מפעילים שוב את שלבי האבחון מהשלבים הנפוצים לאבחון. ודאו שההודעות שבתור בפועל מעובדות ושהמספר של ההודעות המתות נותר 0.
אם הבעיה נמשכת, יש לעבור לקטע הבא.
יש לאסוף פרטי אבחון
אם הבעיה נמשכת גם אחרי שביצעתם את ההוראות שלמעלה, יש לאסוף את פרטי האבחון הבאים. אפשר לפנות אליהם ולשתף אותם עם התמיכה של Apigee Edge:
- יומני Qpidd:
/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
- יומני Postgresql:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
- יומני שרת Edge-qpid:
/opt/apigee/var/log/edge-qpid-server/logs/system.log
- יומני שרת Edge-postgres:
/opt/apigee/var/log/edge-postgres-server/logs/system.log
נתונים סטטיסטיים של תור Qpidd:
qpid-stat -q
קבוצת Analytics שהוחזרה על-ידי פקודת ה-Curl הבאה:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax