בדף הזה מוסבר על טכניקות לחקירה ולניפוי באגים של שאילתות ש-AlloyDB ל-PostgreSQL שולח למכונת מאגר לקריאה:
- הצגת רשימה מפורטת של הצמתים שמרכיבים את מאגר הקריאה, כולל כתובות ה-IP שלהם.
- חיבור ישירות לצומת, למטרות ניפוי באגים.
- בדיקת יומנים של AlloyDB כדי לקבוע איזה צומת ספציפי מטפל בשאילתה שנשלחת למאגר לקריאה.
- שאילתה ביומנים לגבי כל הפעילות האחרונה מצומת נתון של מאגר לקריאה.
- הצגת Google Cloud מדדים שמשויכים לצומת של מאגר לקריאה.
השימוש המשולב בטכניקות האלה מאפשר לכם גישה לאבחון ולניפוי באגים במאגרי הקריאה. לדוגמה, אם אחד ממאגרי הקריאה של האשכול משתמש בכמות חריגה של CPU בזמן עיבוד שאילתה שפועלת לאורך זמן, הטכניקות האלה מאפשרות לכם לקבוע איזה צומת מטפל בשאילתה הזו, ואז להתחבר ישירות לצומת הזה כדי לבדוק או להפסיק את השאילתה.
הצגת פרטים של צמתים בבריכת קריאה
בשימוש רגיל ב-AlloyDB, לא צריך לדעת את הזהויות או הכתובות של הצמתים שמרכיבים את מאגרי הקריאה. עם זאת, כשצריך, אפשר לראות רשימה של הצמתים של מופע מאגר קריאה. כל צומת ברשימה כולל את המידע הבא, שימושי לאבחון ולניפוי באגים בהמשך:
מחרוזת המזהה של הצומת, Google Cloud שמשמשת לביצוע שאילתות ביומן לגבי הפעילות האחרונה של הצומת.
כתובת ה-IP של הצומת בענן הווירטואלי הפרטי (VPC) של האשכול, שבה אפשר להשתמש כדי להתחבר ישירות לשרת PostgreSQL של הצומת הזה.
כדי לראות את מחרוזות המזהים הפנימיים ואת כתובות ה-IP של הצמתים במאגר לקריאה, צריך לפעול לפי ההוראות הספציפיות ל-gcloud במאמר איך צופים בפרטי מכונה, אבל להוסיף ארגומנט נוסף בשורת הפקודה: --view=FULL
gcloud
gcloud alloydb instances describe READ_POOL_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--view=FULLמחליפים את מה שכתוב בשדות הבאים:
- READ_POOL_ID: המזהה של מאגר הקריאה.
- REGION_ID: מזהה האזור של המכונה.
- CLUSTER_ID: המזהה של האשכול של המכונה.
- PROJECT_ID: מזהה הפרויקט של המופע.
הפלט כולל קטע שכותרתו nodes, שדומה לזה:
nodes:
- id: READ_POOL_INSTANCE_ID-edd4f6ed-hcfh
ip: 10.90.80.57
state: HEALTHY
zoneId: us-central1-b
- id: READ_POOL_INSTANCE_ID-edd4f6ed-ldbm
ip: 10.90.80.56
state: HEALTHY
zoneId: us-central1-cהשדות id ו-ip של כל רשומה רלוונטיים במיוחד לטכניקות האחרות שמתוארות בדף הזה:
בשדה
ipמוצגת כתובת ה-IP של הצומת ב-VPC של האשכול.השדה
idמכיל את מחרוזת המזהה המלאה של הצומת Google Cloud . רק ארבעת התווים האחרונים של המחרוזת הזו מופיעים ברשומות ביומן של צומת.לדוגמה, כדי למצוא רשומות ביומן שקשורות לצומת הראשון מבין שני הצמתים בפלט לדוגמה הקודם, מריצים שאילתה ביומנים באמצעות מחרוזת המזהה
hcfh.
חיבור ישירות לצומת
אחרי שמגלים את כתובת ה-IP של הצומת, אפשר להתחבר ישירות לשרת PostgreSQL שלו. לדוגמה, כדי להשתמש ב-psql כדי להתחבר למכונה וירטואלית ב-VPC של האשכול, פועלים לפי ההוראות במאמר הפעלת לקוח psql. כשעושים זאת, מציינים את כתובת ה-IP של הצומת ולא את כתובת ה-IP של מופע מאגר הקריאה:
psql -h NODE_IP_ADDRESS -U USERNAMEחיפוש פעילות של צומת ביומנים
AlloyDB כולל מזהי צמתים ברשומות ביומן לגבי שאילתות שמטופלות על ידי מאגרי קריאה. באופן כללי, אפשר להשתמש במזהים שמתגלים בשתי דרכים:
- קובעים את כתובת ה-IP של הצומת כדי שתוכלו להתחבר אליו.
- מריצים שאילתות נוספות ביומן כדי לקבל מידע נוסף על הפעילות האחרונה של הצומת.
איך קובעים איזה צומת מטפל בשאילתה ידועה
אם אתם יודעים שמאגר קריאה מסוים מעבד שאילתה שפועלת במשך זמן רב, כלי Log Explorer יכול לעזור לכם לקבוע את המזהה של הצומת הספציפי שמטפל בשאילתה הזו.
שימו לב: הטכניקה הזו פועלת רק במופעים של מאגר קריאה שבהם התוסף pgAudit מופעל.
עוברים אל Logs Explorer:
בבונה השאילתות, מוסיפים את
resource.labels.instance_id="READ_POOL_ID"לשדה של עורך השאילתות, ומחליפים את READ_POOL_ID בשם של מופע מאגר הקריאה.מוסיפים את הצהרת ה-SQL שבודקים, כולה או חלקה, לשדה של עורך השאילתות. לדוגמה:
select id from MyTable. הקלט הזה לא תלוי באותיות רישיות.לוחצים על Run query.
אפשר להשתמש באמצעי הבקרה של Log Explorer כדי לשנות את השאילתה ולהריץ אותה מחדש לפי הצורך, כדי לסנן את התוצאות ולצמצם אותן לתוצאות הרלוונטיות ביותר.
לוחצים על רשומה ביומן ברשימת התוצאות כדי להרחיב את התצוגה שלה.
לוחצים על השדה
labelsבתצוגה המורחבת של הרשומה.שימו לב לערך
NODE_IDבקטעlabels.
התוצאה היא מזהה בן ארבעה תווים של הצומת שמטפל בשאילתה.
התחברות לצומת שמוזכר ברשומה ביומן
כדי להתחבר ישירות לשרת PostgreSQL של צומת מסוים על סמך הפעילות שנרשמה שלו, פועלים לפי השלבים הבאים:
שימו לב למחרוזת המזהה של הצומת שנרשמה ביומן, שמורכבת מארבעה תווים. אפשר למצוא את המזהה הזה בשדה
NODE_IDברשומה ביומן.מציגים את הצמתים של מאגר הקריאה.
ברשימה הזו, מחפשים צומת עם מחרוזת המזהה שמסתיימת בארבעת התווים שרשמתם בשלב הראשון. יכול להיות שאף אחד מהצמתים שמופיעים ברשימה לא תואם.
אם נמצא צומת תואם, משתמשים בכתובת ה-IP התואמת שלו כדי להתחבר לשרת PostgreSQL של הצומת הזה.
אחרת, אם לאף אחד מהצמתים במאגר הקריאה שמופיעים בשלב הקודם אין מזהים שתואמים לצומת שנרשם ביומן, מאגר הקריאה הוציא את הצומת הזה משימוש בזמן שחלף מאז רשומת היומן המקורית. זוהי התנהגות רגילה של מאגרי קריאה ב-AlloyDB, כפי שמתואר בהערה לגבי ארעיות של צמתים. במקרה כזה, אי אפשר ליצור חיבור ישיר לצומת הזה.
אחרי שמתחברים לשרת PostgreSQL של הצומת, אפשר להשתמש בטכניקות ניטור סטנדרטיות של PostgreSQL, כמו pg_stat_activity, כדי לבדוק את התהליכים הנוכחיים של הצומת ולשנות אותם לפי הצורך.
הצגת עוד רשומות ביומן לגבי צומת
כדי לראות פעילות עדכנית יותר שמתועדת לגבי צומת עם מזהה ספציפי:
עוברים אל Logs Explorer:
מוסיפים את
labels.NODE_ID=NODE_IDאל כלי השאילתות של Logs Explorer, ומחליפים את NODE_ID במחרוזת המזהה של הצומת, שמורכבת מארבעה תווים.לוחצים על Run Query (הפעלת שאילתה) כדי לראות את כל הפעילות מהצומת הזה בחלון הזמן שנבחר, או משנים את השאילתה כדי לסנן אותה עוד יותר.
חוזרים על השלב הקודם לפי הצורך כדי למקד את החיפוש.
מעקב אחרי מדדים של צומת
אפשר לראות מדדים שקשורים לצמתים ספציפיים בלוח הבקרה של תובנות המערכת ב-AlloyDB. מידע נוסף על מדדי הצמתים הזמינים מופיע במאמר הפניה למדדים של תובנות המערכת.
כדי לדעת אילו מזהי צמתים משויכים למופע מסוים של מאגר קריאה, אפשר לעיין במאמר הצגת פרטים של צמתים במאגר קריאה.
מאמרי העזרה המלאים בנושא המדדים האלה ומדדים אחרים של AlloyDB זמינים במאמר alloydb בקטע 'מדדים שלGoogle Cloud '.
הערה לגבי ארעיות של צמתים
אפשר להתחבר בבטחה לצומת לצורך בדיקה זמנית או ניפוי באגים, אבל אפליקציות שמשתמשות במאגרי קריאה צריכות תמיד להתחבר למאגרים האלה ברמת המופע, באמצעות כתובת ה-IP שהאשכול שלה מציג ברשימת המופעים.
מערכת AlloyDB מתייחסת לצמתים של מאגרי קריאה כאל משאבים זמניים שניתנים להחלפה. השירות משנה את רשימת הצמתים של מאגר קריאה בתדירות גבוהה ככל שנדרש, כדי לשמור על איזון העומסים ועל היענות של מופע מאגר הקריאה. אפליקציה שמתחברת ישירות לצומת של מאגר קריאה, ולא למופע של מאגר קריאה, עלולה להתנתק באופן פתאומי ממסד הנתונים בכל פעם שמערכת AlloyDB מעדכנת את רשימת הצמתים של המופע.
תמיד כדאי לאפשר לאפליקציות להתחבר למאגרי הקריאה ברמת המופע, ולאפשר ל-AlloyDB לבצע את העבודה של ניתוב יעיל של השאילתות לצמתים המתאימים.