שגיאה של זמן קצוב לתפוגה

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

תיאור הבעיה

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

הודעות שגיאה

Click to change deployment status. 
The revision is deployed and traffic can flow, but flow may be impaired. 
Error: Call timed out; either server is down or server is not reachable

סיבות אפשריות

הסיבות הטיפוסיות לבעיה הזו הן:

הסיבה פרטים עבור
בעיה בקישוריות הרשת כשל תקשורת בין שרת הניהול לבין מעבד ההודעות עקב רשת בעיות בקישוריות או כללי חומת אש. משתמשי Cloud פרטי בלבד
חבילה גדולה של שרת Proxy ל-API אם חבילת ה-proxy ל-API גדולה בטווח, יכול להיות שייקח למעבד ההודעות זמן רב לפעול. גודל, דבר שמוביל לתפוגת הזמן הקצוב לתפוגה של RPC. משתמשים בענן פרטי וציבורי

בעיה בקישוריות הרשת

הערה: רק משתמשי Edge בענן הפרטי יכולים לבצע את השלבים הבאים. אם נמצאים ב-Edge Public Cloud, צריך לפנות לתמיכה של Apigee Edge.

אבחון

  1. מוצאים את סטטוס הפריסה של ה-API הספציפי שבו מוצגת השגיאה באמצעות הפקודה הבאה: קריאה ל-API לניהול:
    curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
    

    פלט לדוגמה שמציג את השגיאה:

    { 
                    "error": "Call timed out; either server is down or server is not reachable", 
                    "status": "error", 
                    "type": [ 
                    "message-processor" 
                    ], 
                    "uUID": "ebbc1078-cbde-4a00-a7db-66a3c1b2b748" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "message-processor" 
                    ], 
                    "uUID": "204e2b7e-52f7-46d9-b458-20f9bfb51e6d" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "router" 
                    ], 
                    "uUID": "967e63c6-ee95-47c0-9608-f4a32638fb1e" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "router" 
                    ], 
                    "state" : "error"
                    } 
    

    הפלט לדוגמה שלמעלה מראה שהשגיאה התרחשה באחד ממעבדי ההודעות. עם מזהה ייחודי אוניברסלי (UUID) 'ebbc1078-cbde-4a00-a7db-66a3c1b2b748'.

  2. על סמך פלט סטטוס הפריסה של שרת ה-proxy ל-API, יש להתחבר לכל אחת מההודעות מעבדים עם ה-UUID התואם שהציג את השגיאה, ומבצעים את השלבים הבאים:
    1. בודקים אם מעבד ההודעות מאזין ביציאה 4528:
      netstat -an | grep LISTEN | grep 4528
      

      אם מעבד ההודעות לא מאזין ביציאה 4528, יש להפעיל מחדש את ההודעה מעבד:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      
    2. בדיקה חוזרת של סטטוס הפריסה של שרת ה-proxy ל-API באמצעות הקריאה ל-API לניהול שמוצגת בשלב 1 שלמעלה. אם אין שגיאות, זה סימן שהבעיה נפתרה.
  3. אם הבעיה נמשכת, כדאי לבדוק את הקישוריות משרת הניהול להודעה מעבד ביציאה 4528 לפי השלבים הבאים:
    1. אם telnet זמין, משתמשים ב-telnet:
      telnet <MessageProcessor_IP> 4528
      
    2. אם telnet לא זמין, משתמשים ב-netcat כדי לבדוק את הקישוריות באופן הבא:
      nc -vz <MessageProcessor_IP> 4528
      
    3. אם מופיעה התשובה "החיבור נדחה" או 'תם פרק הזמן שהוקצב להתחברות', ואז בצוות תפעול הרשת.
  4. בדיקת הקישוריות ממעבד ההודעות לשרת הניהול ביציאה 4526 באמצעות השלבים הבאים:
    1. אם telnet זמין, משתמשים ב-telnet:
      telnet <management-server-IP> 4526
      
    2. אם telnet לא זמין, משתמשים ב-netcat כדי לבדוק את הקישוריות באופן הבא:
      nc -vz <management-server-IP> 4526 
      
    3. אם מופיעה התשובה "החיבור נדחה" או 'תם פרק הזמן שהוקצב להתחברות', בצוות תפעול הרשת.
  5. תוכלו לעבוד עם צוות תפעול הרשת ולבצע את הפעולות הבאות:
    1. מוודאים שפרוטוקול RPC מותר גם בשרת הניהול וגם בהודעה מעבד.
    2. הסרה של הגבלות חומת אש או כללי אבטחה שהוגדרו בין שרתי הניהול ומעבדי הודעות כדי לאפשר קישוריות ליציאה 4526 בשרת הניהול, קישוריות משרת הניהול למעבדי הודעות ביציאה 4528.
  6. בודקים שוב את סטטוס הפריסה (לפי שלב 1 למעלה). אם לא מופיעות שגיאות, הוא מציין שהשגיאה נפתרה.
  7. אם הבעיה נמשכת, בודקים אם יש בעיית רשת במעבד ההודעות. אם יש בעיה ברשת, הפעלה מחדש של מעבד ההודעות הספציפי שמציג את שגיאת הזמן הקצוב לתפוגה (בהתאם פלט סטטוס הפריסה) עשוי לפתור את הבעיה:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  8. אם הבעיה ממשיכה, יש לבדוק את היומנים של שרת הניהול בכתובת: (/opt/apigee/var/log/edge-management-server/logs/system.log).

    שגיאה מסוג 'תם הזמן הקצוב לשיחה' לדוגמה ביומן של שרת הניהול

    2016-05-17 09:29:56,448 org:myorg env:prod qtp281969267-360792 ERROR DISTRIBUTION - RemoteServicesConfigEventHandler.configureServers() : exception for server with uuid e1381db7-d83b-4752-ae04-2de33f07e555 : cause = RPC Error 504: Call timed out communication error = true 
            com.apigee.rpc.RPCException: Call timed out 
            at com.apigee.rpc.impl.AbstractCallerImpl.handleTimeout(AbstractCallerImpl.java:64) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.handleTimeout(RPCMachineImpl.java:483) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.access$000(RPCMachineImpl.java:402) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall$1.run(RPCMachineImpl.java:437) ~[rpc-1.0.0.jar:na] 
            at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:532) ~[netty-all-4.0.0.CR1.jar:na] 
            at io.netty.util.HashedWheelTimer$Worker.notifyExpiredTimeouts(HashedWheelTimer.java:430) ~[netty-all-4.0.0.CR1.jar:na] 
            at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:371) ~[netty-all-4.0.0.CR1.jar:na] 
            at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_79] 
            
    

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

רזולוציה

הערה: רק משתמשי Edge בענן הפרטי יכולים לבצע את השלבים הבאים. אם נמצאים ב-Edge Public Cloud, צריך לפנות לתמיכה של Apigee Edge.

  1. כדי להאריך את הזמן הקצוב לתפוגה של RPC:
    1. יצירת הקובץ /opt/apigee/customer/application/management-server.properties ההנהלה במחשב, אם הוא עדיין לא קיים.
    2. מוסיפים את השורה הבאה לקובץ:
      conf_cluster_rpc.connect.timeout=<time in seconds>
      

      ערך ברירת המחדל של הזמן הקצוב לתפוגת RPC הוא 10, ומומלץ להעלות אותו ל-40 שניות. הגדירו אותה כך:

      conf_cluster_rpc.connect.timeout=40
      
    3. יש לוודא שהקובץ הזה נמצא בבעלות של apigee:
      chown apigee:apigee /opt/apigee/customer/application/management-server.properties
      
    4. מפעילים מחדש את שרת הניהול:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
      
    5. אם יש לכם יותר משרת ניהול אחד, צריך לחזור על השלבים שלמעלה בכל שרתי ניהול.
    6. פורסים את שרת ה-proxy ל-API בממשק המשתמש של Edge או באמצעות הקריאה ל-Edge management API. אם שרת ה-proxy ל-API נפרס ללא בעיות, סימן שהבעיה נפתרה.
  2. אם הבעיה נמשכת, כדאי לאסוף את פקודת tcpdump משרת הניהול ומעבד ההודעות. הפעלת ה-tcpdump פקודה בכל אחד מהשרתים ולאחר מכן ליזום את הפריסה של ה-API ל-Proxy מממשק המשתמש או באמצעות ה-Management API:
    1. מריצים את פקודת ה-tcpdump הבאה משרת הניהול:
      tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
      
    2. מריצים את פקודת tcpdump הבאה ממעבד ההודעות:
      tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
      
    3. כדי לקבל עזרה בנושא יש לפנות לתמיכה של Apigee Edge לנתח את ה-tcpdumps ולנסות לפתור את הבעיה לעומק.

גדול חבילת API Proxy

אבחון

  1. בדיקת הגודל של חבילת ה-Proxy ל-API שעבורה מוצגת שגיאת הפריסה שנמדד.
  2. אם הגודל גדול במידה סבירה (10MB ומעלה), סביר מאוד להניח שההודעה יכול להיות שייקח למעבד עוד זמן כדי להפעיל את ה-Proxy ל-API.
  3. אם גודל חבילת ה-Proxy ל-API גדול מ- 15MB, ממשיכים אל חבילת ה-proxy ל-API גדולה מ-15MB.

רזולוציה

הערה: רק משתמשי Edge בענן הפרטי יכולים לבצע את השלבים הבאים. אם נמצאים ב-Edge Public Cloud, צריך לפנות לתמיכה של Apigee Edge.

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

  1. יצירת הקובץ /opt/apigee/customer/application/management-server.properties במחשב של שרת הניהול, אם הוא עדיין לא קיים.
  2. מוסיפים את השורה הבאה לקובץ הזה:
    conf_cluster_rpc.connect.timeout=<time in seconds>
    

    ערך ברירת המחדל של הזמן הקצוב לתפוגת RPC הוא 10, ומומלץ להגדיל אותו ל-40 שניות. הגדירו אותה כך:

    conf_cluster_rpc.connect.timeout=40
    
  3. יש לוודא שהקובץ הזה נמצא בבעלות של apigee:
    chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    
  4. מפעילים מחדש את שרת הניהול:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    
  5. אם יש לכם יותר משרת ניהול אחד, צריך לחזור על השלבים שלמעלה בכל חשבונות הניהול. שרתים.

אם הבעיה נמשכת, יש לפנות אל התמיכה של Apigee Edge כדי סיוע נוסף.