כדי לחקור שאילתות שמנותבות על ידי 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 של הצומת כדי להתחבר אליו.
- מבצעים שאילתות נוספות ביומן כדי לקבל מידע נוסף על הפעילות האחרונה של הצומת.
לזהות איזה צומת מטפל בשאילתה ידועה
אם אתם יודעים שמאגר קריאה מסוים מעבד שאילתה שפועלת במשך זמן רב, אתם יכולים להשתמש ב-Logs Explorer כדי לזהות את המזהה של הצומת הספציפי שמטפל בשאילתה הזו.
שימו לב שהשיטה הזו פועלת רק במכונות של מאגר קריאה שהתוסף pgAudit מופעל בהן.
נכנסים לדף Logs Explorer:
בכלי ליצירת שאילתות, מוסיפים את
resource.labels.instance_id="READ_POOL_ID"לשדה של עורך השאילתות, ומחליפים את READ_POOL_ID בשם של המכונה של מאגר הקריאה.מוסיפים את הצהרת ה-SQL שרוצים לבדוק, במלואה או בחלקה, לשדה של עורך השאילתות. לדוגמה:
select id from MyTable. הקלט הזה לא תלוי אותיות רישיות.לוחצים על Run query.
משתמשים באמצעי הבקרה של Logs 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 במחרוזת המזהה של הצומת, שמורכבת מ-4 תווים.לוחצים על Run Query כדי לראות את כל הפעילות מהצומת הזה בחלון הזמן שנבחר, או משנים את השאילתה כדי לסנן אותה עוד יותר.
חוזרים על השלב הקודם לפי הצורך כדי לצמצם את החיפוש.
מעקב אחרי מדדי הצומת
אתם יכולים לראות מדדים שמשויכים לצמתים ספציפיים במרכז הבקרה של תובנות המערכת של AlloyDB. למידע נוסף על מדדי הצמתים הזמינים, עיינו בחומר העזר בנושא מדדי System Insights.
כדי לדעת אילו מזהי צמתים משויכים למכונה מסוימת של מאגר קריאה, קראו את המאמר הצגת פרטים של צמתים במאגר קריאה.
לרשימה המלאה של המדדים האלה ומדדים אחרים של AlloyDB, קראו את מאמרי העזרה alloydb בקטע "מדדיGoogle Cloud ".
הערה לגבי ארעיות צמתים
אפשר להתחבר לצומת באופן בטוח למטרות חקירה או ניפוי באגים זמניות, אבל אפליקציות שמשתמשות במאגרי קריאה צריכות תמיד להתחבר למאגרים האלה ברמת המכונה, באמצעות כתובת ה-IP שהאשכול שלה מציג ברשימת המכונות שלו.
ב-AlloyDB, הצמתים של מאגרי הקריאה נחשבים למשאבים זמניים שניתן להחליף ביניהם. השירות משנה את רשימת הצמתים של מאגר הקריאה בתדירות הנדרשת כדי לשמור על איזון העומסים ועל מהירות התגובה של המכונה של מאגר הקריאה. אם אפליקציה מתחברת ישירות לצומת של מאגר קריאה, ולא למכונה של מאגר קריאה, היא עלולה להתנתק באופן פתאומי ממסד הנתונים בכל פעם ש-AlloyDB מעדכן את רשימת הצמתים של המכונה.
תמיד כדאי לאפשר לאפליקציות להתחבר למאגרי הקריאה ברמת המכונה, ולתת ל-AlloyDB לנתב את השאילתות ביעילות לצמתים המתאימים.