שימוש ביומני Cloud DNS כדי לעקוב אחרי שיעורי הכישלון של DNS

אתם יכולים להפעיל יומני שאילתות של Cloud DNS בפרויקט Compute Engine ולהשתמש ביומנים האלה כדי לעקוב אחרי שיעורי הכשל של DNS פנימי ולהשוות אותם לפני ואחרי המעבר ל-DNS פנימי אזורי. רשומות יומן מתעדות פענוח DNS מוצלח ומתי DNS פנימי לא מצליח לפתור שם דומיין נתון.

סקירה כללית

כדי להשתמש ביומני שאילתות של Cloud DNS כדי לעקוב אחרי שיעורי הכשל של DNS פנימי, צריך לבצע את השלבים הבאים:

  1. מקבלים את השם של רשת הענן הווירטואלי הפרטי (VPC) שמכילה את המכונות הווירטואליות שרוצים לנטר.
  2. בעזרת שמות רשתות ה-VPC, מריצים פקודה ב-Google Cloud CLI כדי להפעיל את הרישום ביומן של שאילתות DNS.
  3. מריצים שאילתות ב-Logs Explorer כדי להציג באופן חזותי את שיעורי ההצלחה והכישלון ולחקור אותם.

מידע על התמחור של רישום ביומן של שאילתות Cloud DNS

כשמפעילים את רישום שאילתות ה-DNS ב-Cloud DNS, נוצרות כמות גדולה של יומנים, שרבים מהם לא קשורים ל-DNS פנימי. לכן, יכול להיות שתחויבו על השימוש בתכונה הזו. באופן כללי, ה-50 GiB הראשונים של אחסון יומנים בכל פרויקט לחודש הם בחינם. כל תוספת של 50 GiB עולה 0.50 USD.

מידע נוסף על התמחור זמין במאמר סיכום התמחור של Cloud Logging.

קבלת השמות של רשתות הענן הווירטואלי הפרטי (VPC)

כדי לתעד נתוני שאילתות DNS, צריך להפעיל את הרישום ביומן עבור רשת ה-VPC שבה נעשה שימוש במופע החישוב. לעתים קרובות, בפרויקט Google Cloud יש כמה רשתות VPC. אפשר להשתמש בפקודה של ה-CLI של gcloud כדי לרשום את רשתות ה-VPC שבהן נעשה שימוש במופעי המחשוב שרוצים לנטר.

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. אופציונלי: משתמשים בתיבה Filter כדי להגביל את מספר המקרים שמוצגים.

  3. לוחצים על שם המכונה שרוצים לבדוק.

  4. בקטע Networking, מתחת לNetwork interfaces, אפשר לראות את ממשקי הרשת (NIC) שנוצרו עבור המכונה, את הרשת ואת רשת המשנה שמשויכות לכל NIC, ואת כתובות ה-IP שהוקצו להם.

gcloud

  • כדי לראות את רשתות ה-VPC שבהן משתמשות כל מכונות החישוב בפרויקט, משתמשים בפקודה gcloud compute instances list. אפשר להוסיף לפקודה את האפשרות --format כדי להגביל את המידע שמוחזר לשדות ספציפיים ולשנות את אופן ההצגה שלו. למשל:

    gcloud compute instances list \
      --format="flattened(name,networkInterfaces[].name, \
        networkInterfaces[].network.basename(), \
        networkInterfaces[].stackType, networkInterfaces[].nicType)"
    

    הפלט אמור להיראות כך:

    name:                           test-gvnic
    networkInterfaces[0].name:      nic0
    networkInterfaces[0].network:   default
    networkInterfaces[0].nicType:   GVNIC
    networkInterfaces[0].stackType: IPV4_ONLY
    ---
    name:                           test-multinic
    networkInterfaces[0].name:      nic0
    networkInterfaces[0].network:   default
    networkInterfaces[0].nicType:   GVNIC
    networkInterfaces[0].stackType: IPV4_ONLY
    networkInterfaces[1].name:      nic0.14
    networkInterfaces[1].network:   net0
    networkInterfaces[1].stackType: IPV4_ONLY
    networkInterfaces[2].name:      nic1
    networkInterfaces[2].network:   prod-ipv6
    networkInterfaces[2].nicType:   GVNIC
    networkInterfaces[2].stackType: IPV4_IPV6
    
  • כדי לראות את ממשקי הרשת (NIC) של מכונת Compute ספציפית ואת רשתות ה-VPC שהוקצו לה, משתמשים בפקודה gcloud compute instances describe. אפשר להוסיף לפקודה את האפשרות --format כדי להגביל את המידע שמוחזר לשדות ספציפיים ולשנות את אופן ההצגה שלו. למשל:

    gcloud compute instances describe INSTANCE_NAME --zone=ZONE \
      --format="flattened(name,networkInterfaces[].name, \
      networkInterfaces[].network.basename(), \
      networkInterfaces[].stackType, networkInterfaces[].nicType)"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • INSTANCE_NAME: השם של המכונה שרוצים להציג
    • ZONE: האזור של המכונה שרוצים להציג

    הפלט אמור להיראות כך:

    name:                           test-instance
    networkInterfaces[0].name:      nic0
    networkInterfaces[0].network:   default
    networkInterfaces[0].nicType:   GVNIC
    networkInterfaces[0].stackType: IPV4_ONLY
    networkInterfaces[1].name:      nic1
    networkInterfaces[1].network:   prod-ipv6
    networkInterfaces[1].nicType:   GVNIC
    networkInterfaces[1].stackType: IPV4_IPV6
    networkInterfaces[1].name:      nic1.2
    networkInterfaces[1].network:   alt-ipv6-net
    networkInterfaces[1].nicType:   GVNIC
    networkInterfaces[1].stackType: IPV4_IPV6
    networkInterfaces[1].parentNicName: nic1
    

הפעלת רישום ביומן של שאילתות Cloud DNS

רישום ביומן של Cloud DNS עוקב אחרי שאילתות ששרתי שמות פותרים עבור רשתות ה-VPC, וגם אחרי שאילתות מישות חיצונית ישירות לאזור ציבורי.

שאילתות שנרשמות ביומן יכולות להגיע ממכונות של Compute Engine, מקונטיינרים של Google Kubernetes Engine באותה רשת VPC, מאזורי Peering או מלקוחות מקומיים שמשתמשים בהעברת DNS נכנסת. יכול להיות שבסופו של דבר השאילתות ייפתרו על ידי אזורי DNS פרטיים, אזורי DNS להעברה, שרתי שמות חלופיים, אזורי DNS פנימיים או אזורי DNS חיצוניים. Google Cloud

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

כדי להפעיל את רישום ה-DNS ביומן, מבצעים אחת מהפעולות הבאות:

  • כדי ליצור מדיניות DNS חדשה עם רישום ביומן, מפעילים את הפקודה gcloud dns policies create.

    gcloud dns policies create POLICY_NAME \
        --networks=NETWORK_NAMES \
        --enable-logging \
        --description="Enable DNS query logging for NETWORK_NAMES"
    
  • אם ברשת כבר יש מדיניות DNS, מריצים את הפקודה gcloud dns policies update כדי לעדכן את מדיניות הרישום הקיימת.

    gcloud dns policies update POLICY_NAME \
       --networks=NETWORK_NAMES \
       --enable-logging \
    

מחליפים את מה שכתוב בשדות הבאים:

  • POLICY_NAME: השם של מדיניות ה-DNS
  • NETWORK_NAMES: רשימה מופרדת בפסיקים של שמות רשתות

הוראות מפורטות ליצירה ולהפעלה של מדיניות DNS לרישום ביומן זמינות במאמר שימוש ברישום ביומן של Cloud DNS.

שימוש ב-Logs Explorer כדי להציג את היומנים ולהמחיש את שיעורי הכשל של DNS

אחרי שמפעילים את רישום ה-DNS, מתחילים להצטבר יומנים בפרויקט בכלי Logs Explorer. כדי לראות את היומנים האלה, משתמשים במסוף Google Cloud ועוברים לדף Logs Explorer.

כניסה לדף Logs Explorer

מעקב אחרי שגיאות ברזולוציית שמות DNS

כדי לבודד כשלים בדומיין שלא קיים, משתמשים בקוד התגובה NXDOMAIN. הכשלים האלה מתרחשים כש-DNS פנימי לא מצליח לפתור שם דומיין נתון.

  1. בתיבת השאילתה בדף המסוף Logs Explorer, מזינים את הטקסט הבא:

    resource.type="dns_query"
    jsonPayload.queryType="A"
    jsonPayload.queryName=~"\.internal\.$"
    jsonPayload.responseCode = "NXDOMAIN"
    
  2. לוחצים על Run query.

מעקב אחרי שאילתות של זיהוי שמות שהושלמו בהצלחה

משתמשים בקוד התגובה NOERROR כדי לבודד את פענוח ה-DNS שבוצע בהצלחה.

  1. בתיבת השאילתה בדף המסוף Logs Explorer, מזינים את הטקסט הבא:

    resource.type="dns_query"
    jsonPayload.queryType="A"
    jsonPayload.queryName=~"\.internal\.$"
    jsonPayload.responseCode = "NOERROR"
    
  2. לוחצים על Run query.

הגדרת מסגרת זמן לניתוח

אפשר להשתמש בבורר טווח הזמן של היומנים כדי לשנות את מסגרת הזמן של היומנים המנותחים. בורר זה נמצא בפינה השמאלית העליונה של חלון Logs Explorer.

כדי להשוות בצורה יעילה בין שיעורי השגיאות לשיעורי ההצלחה, צריך להפעיל יומני שאילתות DNS לפני המעבר לשימוש ב-DNS אזורי. ‫Google ממליצה להפעיל את הרישום ביומן של שאילתות DNS לפחות 24 שעות לפני המיגרציה, כדי ליצור נתונים בסיסיים לפני המיגרציה.

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

ניתוח והשוואה של שיעורי פענוח שמות DNS

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

  • מספר הרשומות ביומן: לכל שאילתה ולכל תקופת זמן, ב-Logs Explorer מוצג מספר הרשומות ביומן שנמצאו. עלייה משמעותית במספרים של NXDOMAIN אחרי ההעברה בשמות DNS שפוענחו בעבר (היה להם NOERROR) עשויה להצביע על בעיה.

  • היסטוגרמה: ממשק Logs Explorer כולל היסטוגרמה. כשמריצים את השאילתות, בהיסטוגרמה מוצגת התדירות של רשומות היומן התואמות בטווח הזמן שנבחר. האפשרות הזו שימושית להצגת נתונים חזותיים של:

    • שיעור בסיסי של NXDOMAIN רשומות ביומן לפני ההעברה.
    • כל עלייה פתאומית ברשומות ביומן NXDOMAIN מיד אחרי ההעברה.
    • שינויים בשיעור של רשומות היומן NOERROR.

    כדי לראות את ההיסטוגרמה, לוחצים על העדפות, ואז על תצוגה ואז על הצגת ציר הזמן.

המאמרים הבאים