פתרון בעיות בשילוב

ריכזנו כאן כמה בעיות נפוצות ושלבים לפתרון בעיות בשילוב של מחבר מרכז ה-API.

נתוני המטא של ה-API לא מוצגים ב-API Hub

  • זמן הסנכרון הראשוני: יכולות לחלוף כמה שעות עד שהסנכרון הראשוני יתחיל ועד שנתוני ה-API יופיעו ב-API Hub. מומלץ להמתין כמה שעות.
  • סטטוס של מופע הפלאגין: מוודאים שמופע הפלאגין במרכז ה-API לא נמחק או השתנה.
  • מזהה שער: מוודאים שמזהה השער הנכון מוגדר בצורה תקינה בהגדרות של מחבר מרכז ה-API של Apigee Edge ל-Private Cloud.
  • בדיקת היומנים: בודקים אם יש שגיאות שמתועדות ביומני השירות של מחבר מרכזיית ה-API של Edge for Private Cloud /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log.

ה-Proxy נפרס, אבל המידע במרכז ה-API לא מדויק

  • השהיית הפצה: יכול להיות שיעברו כמה דקות עד שפרטי ה-proxy שהופעל יופצו ויופיעו במרכז ה-API.
  • בדיקת היומנים: בודקים את היומנים של מחבר מרכז ה-API של Edge for Private Cloud כדי לקבל פרטים על שרתי proxy שהועלו. כך אפשר לזהות אם העדכון של השרת הפרוקסי עובד כמו שצריך לצורך סנכרון.

הסנכרון של הארגון של המשתמש הופסק בלי שבוצעו שינויים במחבר של API Hub

  • הסטטוס של מופע הפלאגין (ב-API Hub): צריך לוודא שמופע הפלאגין המשויך ב-API Hub לא בוטל, נמחק או שונה. כל שינוי בצד של API Hub יכול להשפיע ישירות על הסנכרון ממחבר API Hub.
  • בדיקת יומנים: בודקים את היומנים של מחבר מרכז ה-API של Edge for Private Cloud כדי לראות אם יש שגיאות, אזהרות או בעיות שיכולות להצביע על שיבוש בתהליך הסנכרון. יכול להיות שהבעיה קשורה לקישוריות או לאימות במרכז ה-API.

ה-API של הסטטוס מספק דרך ישירה לראות אילו ארגונים הצטרפו ומתבצע בהם סנכרון פעיל.

פתרון בעיות על סמך יומנים

איפה מאוחסנים היומנים של מחבר ה-API Hub?

/opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

איך מקבלים מידע על הארגונים שמופעלים?

כדי לדעת אילו ארגונים מופעלים כרגע ומסונכרנים, אפשר להשתמש בממשק ה-API של הסטטוס ולבדוק את יומני המערכת.

  • פעולה: קוראים לנקודת הקצה (endpoint) של ה-API של הסטטוס.
  • הפלט הצפוי: ארגונים שהביעו הסכמה יופיעו בקטעים apiSyncStatus ו-analyticsSyncStatus בתשובת ה-API. ארגונים שמופעל בהם סנכרון מטא-נתונים יופיעו בקטע apiSyncStatus, וארגונים שמופעל בהם סנכרון בזמן ריצה יופיעו בקטע analyticsSyncStatus.
    {
     "apiSyncStatus": [
       {
         "organization": "foo",
         "phase": "Preparing", // ColdTransfer => Preparing
         "components": [
           "proxy": {
             "lastUpdated": "2025-04-16T00:56:45Z",
             "progress": {
               "totalItems": 100, // total proxies known to uapim connector
               "pendingItems": 90,  // pending proxies to upload
               "completedItems": 6, // completed proxies to upload
               "failedItems": 4 // proxies failed to upload
             }
           },
           "environment": { //environment upload status
             "lastUpdated": "2025-04-16T00:56:45Z",
             "progress": {
               "totalItems": 5, // total number of environments
               "pendingItems": 1, // pending environments to process
               "completedItems": 3, // completed environment processing
               "failedItems": 1 // failed environment processing
             }
           }]
       },
       {
         "organization": "bar",
         "phase": "Processing", // "Streaming" -> "Processing"
         "components": [
           "proxy": {
             "lastUpdated": "2025-04-16T00:56:45Z",
             "progress": {
               "totalItems": 110, // total proxies known to uapim connector
               "pendingItems": 16, // pending proxies to upload
               "completedItems": 3, // completed proxies to upload
               "failedItems": 1 // proxies failed to upload
             }
           },
           "environment": {
             "lastUpdated": "2025-04-16T00:56:45Z",
             "progress": {
               "totalItems": 5, // total number of environments
               "pendingItems": 3, // pending environments to process
               "completedItems": 1, // completed environment processing
               "failedItems": 1 // failed environment processing
             }
           }]
       },
       {
         "organization": "test",
         "phase": "Queued", // "Yet to start" -> "Queued"
         "lastUpdated": "2025-04-16T00:56:45Z"
       }
     ],
     "analyticsSyncStatus": [
       {
         "organization": "test",
         "environment": "dev",
         "failedItems": 2,
         "lastUpdated": "2025-04-16T00:56:45Z"
       },
       {
         "organization": "test",
         "environment": "prod",
         "failedItems": 4,
         "lastUpdated": "2025-04-16T00:56:45Z"
       }
     ]
    }
    
  • בדיקת יומני המערכת: כדי לקבל תצוגה מפורטת יותר ולאשר את הגדרת הסנכרון לארגונים ספציפיים, אפשר לבדוק את יומני המערכת ולחפש רשומות ספציפיות.
    • בדיקת היומנים:
      /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
    • פקודות חיפוש: משתמשים ב-grep או בכלים דומים לחיפוש ביומן כדי למצוא את השורות הבאות ביומן:
      • לסנכרון מטא-נתונים של org metadata-org:
        grep "Setup metadata sync for organization: metadata-org"  /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
      • דוגמה לקטע יומן:
        2025-07-10 08:47:09,901  main INFO  c.a.u.c.UAPIMConnectorServiceImpl - UAPIMConnectorServiceImpl.setupMetadataSync() : Setup metadata sync for organization: metadata-org
      • מחפשים את הטקסט הגדרת סנכרון מטא נתונים לארגון: ואחריו את שם הארגון.
      • לסנכרון נתונים בזמן ריצה של org runtime-org:
        grep "Setup runtime data sync for organization: runtime-org" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
      • דוגמה לקטע יומן:
        2025-07-10 08:47:09,902  main INFO  c.a.u.c.UAPIMConnectorServiceImpl - UAPIMConnectorServiceImpl.setupRuntimeSyncData() : Setup runtime data sync for organization: runtime-org
      • מחפשים את הטקסט הגדרה של סנכרון נתוני זמן ריצה לארגון: ואחריו את שם הארגון.

איך אפשר לקבל מיומנים מידע על כל (הארגונים,הסביבות) שלא הצליחו להפעיל אותם?

כדי לקבל מידע על ארגונים שההפעלה שלהם נכשלה, אפשר לבדוק את יומני המערכת ולחפש רשומות שגיאה ספציפיות.

  • בדיקת היומנים: /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
  • פקודות חיפוש: משתמשים ב-grep או בכלי חיפוש יומנים דומים כדי למצוא שורות יומן שמציינות שגיאה במהלך עדכון סטטוס סנכרון המטא-נתונים.
    • לעדכוני סטטוס של סנכרון מטא-נתונים שנכשלו עבור org/env failed-org/failed-env:
      grep "Error while updating metadata sync status for org: failed-org" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
    • דוגמה לקטע יומן:
      2025-07-15 10:30:15,123 main ERROR c.a.u.c.UAPIMConnectorServiceImpl - UAPIMConnectorServiceImpl.updateMetadataSyncStatus() : Error while updating metadata sync status for org: failed-org
    • מחפשים את הטקסט Error while updating metadata sync status for org/env: ואחריו את הארגון והסביבה (לדוגמה, failed-org/failed-env).

איך אפשר לקבל סיכום של שינוי סטטוס ההעברה של הארגון מתוך היומנים?

כדי לקבל סיכום של מועד העדכון של מצב ההעברה של סנכרון (ארגון, סביבה), אפשר לבדוק את יומני המערכת ולחפש רשומות ספציפיות.

  • בדיקת היומנים: /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
  • פקודות חיפוש אפשר להשתמש ב-grep או בכלי חיפוש דומים ביומן כדי למצוא שורות ביומן שמציינות עדכון של סטטוס ההעברה של ארגון וסביבה.
    • לעדכוני סטטוס של העברה:
      grep "Transfer status is updated for org" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
    • דוגמה לקטע יומן:
      2025-07-15 18:35:01,789 main INFO c.a.u.c.UAPIMConnectorServiceImpl - UAPIMConnectorServiceImpl.updateTransferStatus() : Transfer status is updated for org: org1 to BULK_TRANSFER
      2025-07-10 08:47:11,364  main INFO  c.a.u.m.UAPIMMetadataServiceImpl - UAPIMMetadataServiceImpl.updateEnvironmentStatus() : Transfer status is updated for org: org1 to STREAMING
    • מחפשים את הטקסט המדויק 'סטטוס ההעברה עודכן עבור org/env' ואחריו את הארגון והסביבה הספציפיים (לדוגמה, org1/prod) ואת המצב.
  • איך אפשר לראות תוצאות של שרתי proxy ספציפיים?

    כדי לראות רשומות ביומן שקשורות לאיסוף ולהעלאה של נתוני פרוטו של שרתים ספציפיים, אפשר לחפש שורות ספציפיות ביומן.

    • מיקום קובץ היומן: /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
    • פקודות חיפוש: אפשר להשתמש ב-grep או בכלי חיפוש דומים ביומן כדי למצוא שורות ביומן שמציינות את ההעלאה של נתוני פרוטו שנאספו עבור ארגון ושרת proxy ספציפיים.
      • תרחיש הצלחה: פרוטוקול ה-proxy מועלה אל API Hub. במקרה הזה, מחפשים את הטקסט 'uploaded collect proto for org: {}, proxy: {},' grep "uploaded collect proto for org: your-org-name, proxy: your-proxy-name, with messageId:" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log
      • מחליפים את -org-name בשם הארגון בפועל ואת your-proxy-name בשם השרת בפועל שמעניין אתכם. קטע יומן לדוגמה:
        2025-07-10 08:47:11,362 main DEBUG c.a.u.m.UAPIMMetadataServiceImpl - UAPIMMetadataServiceImpl.generateCollectProto() : uploaded collect proto for org: org1, proxy: proxy1, with messageId: message_ids: "15569268426032329"

        מחפשים את הטקסט "uploaded collect proto for org: " ואחריו את שם הארגון, ואז ", proxy: " ואחריו את שם ה-proxy.

      • תרחיש של כשל: ההעלאה של פרוטוקול ה-proxy אל API Hub נכשלה. במקרה כזה, מחפשים את הטקסט Failed to publish collect proto for org: {}, proxy: {}," grep "Failed to publish collect proto for org: your-org-name, proxy: your-proxy-name, " /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

        מחליפים את your-org-name בשם הארגון האמיתי ואת your-proxy-name בשם השרת הפרוקסי האמיתי שמעניין אתכם.

        קטע יומן לדוגמה:
        2025-07-10 08:47:11,362 main DEBUG c.a.u.m.UAPIMMetadataServiceImpl - UAPIMMetadataServiceImpl.generateCollectProto() : Failed to publish collect proto for org: org1, proxy: proxy1

        מחפשים את הטקסט 'failed to publish collect proto for org: ' ואחריו את שם הארגון, ואז ', proxy: ' ואחריו את שם ה-proxy.

    זמן ריצה/ניתוח נתונים

    הפרסום של ההקלטה ב-NFS נכשל

    הסיבה: השימוש ב-NFS גבוה מ-75%.

    כדי לאמת: grep "Diskspace usage is at more than 75% of the allocated MaxDiskSpace at" /opt/apigee/var/log/edge-message-processor/logs/system.log

    הסיבה: הסנכרון בזמן הריצה של המחבר במרכז ה-API לא מופעל או שההגדרה שלו לא תקינה

    כדאי לבדוק את הדברים הבאים ב-/opt/apigee/customer/application/message-processor.properties: conf_message-processor-communication_uapim.enabled.environments=

    מוודאים שהארגון והסביבה הנכונים מופיעים ברשימה.

    conf_message-processor-communication_uapim.runtime.data.path=

    מוודאים שהיא מפנה לנתיב ה-NFS הנכון.

    איך בודקים שהנתונים פורסמו בהצלחה ב-NFS

    הרשומות מאוחסנות בנתיב NFS ספציפי, למשל ‎/the/nfs/staging.

    אתם יכולים לבדוק ישירות את התוכן של הספרייה הזו כדי לראות אם נוצרו בה קבצים חדשים. הנוכחות של הקבצים מצביעה על פרסום מוצלח ב-NFS.

    קובץ נתונים נמחק ללא עיבוד

    הסיבה: שם הקובץ לא הכיל מידע תקף על הארגון או הסביבה.

    יומן לבדיקה: grep "Skipped and Deleted file" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

    הקובץ נמחק כי חסרה הגדרה של הארגון

    הסיבה: לא נמצאה הגדרה ספציפית לארגון.

    יומן לבדיקה: grep "Deleted file .* due to missing org config" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

    הקובץ נמחק בגלל סביבה לא תקינה

    הגורם: הסביבה שנותחה משם הקובץ לא קיימת בהגדרת הארגון.

    יומן לבדיקה: grep "Deleted file .* due to invalid env" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

    העלאת הקובץ ל-Pub/Sub נכשלה

    הסיבה: לא הייתה אפשרות ליצור את בעל התוכן הדיגיטלי (למשל, חשבון שירות או נושא שהוגדרו בצורה שגויה).

    Log to Check: grep "Failed to create publisher for org" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

    העלאה חלקית – חלק מהרשומות נכשלו

    הסיבה: חלק מהרשומות בקובץ לא פורסמו.

    Log to Check: grep "was not completely published" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log

    הקובץ עבר עיבוד מלא ונמחק

    יומן לבדיקה: grep "File .* completely published to topic" /opt/apigee/var/log/edge-uapim-connector/edge-uapim-connector.log