מעקב אחר תעבורה יוצאת באמצעות Cloud Trace

במאמר הזה מוסבר איך להגדיר מעקב אחר בקשות מבוזרות ל-Secure Web Proxy באמצעות Cloud Trace.

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

לפני שמתחילים

  1. משלימים את השלבים להגדרה הראשונית.
  2. מפעילים בפרויקט את Compute Engine API,‏ Network Services API ו-Cloud Trace API.

    gcloud services enable \
        compute.googleapis.com \
        networkservices.googleapis.com \
        cloudtrace.googleapis.com
    
  3. מוודאים שיש לכם מופע פעיל של שער Secure Web Proxy. מידע נוסף זמין במאמר בנושא פריסת מופע של Secure Web Proxy.

  4. כדי ליצור טווחי מעקב מבוזר ברמת HTTP ולהפיץ כותרות של הקשר מעקב W3C לבקשות HTTPS, צריך להפעיל בדיקת TLS בשער Secure Web Proxy.

תפקידים והרשאות

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

  • כדי ליצור, לעדכן או למחוק כללי מדיניות של טלמטריה: אדמין של שירותי רשת (roles/networkservices.admin) או אדמין של רשת מחשוב (roles/compute.networkAdmin)
  • כדי להציג ולנתח טווחים של נתוני מעקב ב Google Cloud מסוף: משתמש Cloud Trace (roles/cloudtrace.user)
  • כדי לייצא טווחים של נתוני מעקב אל Trace, צריך לוודא שלחשבונות השירות הבאים מוקצה התפקיד Cloud Trace Agent (roles/cloudtrace.agent):

    • סוכן שירות של Compute Engine: service-PROJECT_NUMBER@compute-system.
    • סוכן שירות אבטחת הרשת: service-PROJECT_NUMBER@gcp-sa-networksecurity.
    • חשבונות שירות של מכונות וירטואליות (VM) של לקוחות, אם אפליקציות לקוח יוצרות או מעבירות טווחים

סכימת ההגדרה של מדיניות הטלמטריה

כדי להגדיר מדיניות טלמטריה בקובץ YAML, משתמשים בסכימה הבאה:

    name: projects/PROJECT_ID/locations/REGION/telemetryPolicies/POLICY_NAME
    telemetryTarget:
      resources:
      - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME"
    description: "OPTIONAL_DESCRIPTION"
    tracingConfiguration:
      samplingRate: SAMPLING_RATE
      parentBasedSampling:
        enabled: true
  

בטבלה הבאה מתוארים השדות במדיניות טלמטריה:

שדה סוג תיאור
name String מזהה ייחודי של מדיניות הטלמטריה.
telemetryTarget.resources רשימת מחרוזות כתובות URL של משאבים של שערים של Secure Web Proxy שהמדיניות הזו חלה עליהם. השערים צריכים להיות באותו אזור כמו המדיניות.

פורמט: //networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME

אפשר גם להשתמש בפורמט של שם מקוצר: projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME.

description String זה שינוי אופציונלי. בשדה הזה מופיע תיאור של מדיניות הטלמטריה, שכתוב בצורה שקריאה לאנשים.
tracingConfiguration.samplingRate Float חלק מהבקשות למעקב, שצוין כמספר עשרוני בין 0.0 (0%) לבין 1.0 (100%). לדוגמה, 0.01 דוגם 1% מהבקשות.
tracingConfiguration.parentBasedSampling.enabled בוליאני מציין אם רוצים להפעיל החלטות לגבי דגימת מעקב במעלה הזרם (true או false).

הגדרת מעקב מבוזר

כדי להחיל מדיניות מעקב על שער Secure Web Proxy באמצעות Google Cloud CLI, מבצעים את הפעולות הבאות:

  1. יוצרים קובץ מדיניות YAML בשם swp-tracing-policy.yaml.

    cat <<EOF > swp-tracing-policy.yaml
    name: projects/PROJECT_ID/locations/REGION/telemetryPolicies/my-swp-tracing-policy
    telemetryTarget:
      resources:
        - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME"
    description: "Distributed tracing policy for the Secure Web Proxy gateway"
    tracingConfiguration:
      samplingRate: 0.01
      parentBasedSampling:
        enabled: true
    EOF
    

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

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud
    • REGION: האזור שבו שער Secure Web Proxy פרוס, למשל us-central1
    • GATEWAY_NAME: השם של מופע שער Secure Web Proxy
  2. מייבאים את מדיניות הטלמטריה באמצעות הפקודה gcloud beta network-services telemetry-policies import:

    gcloud beta network-services telemetry-policies import my-swp-tracing-policy \
        --source=swp-tracing-policy.yaml \
        --location=REGION
    
  3. כדי לוודא שהמדיניות חלה, משתמשים בפקודה gcloud beta network-services telemetry-policies describe:

    gcloud beta network-services telemetry-policies describe my-swp-tracing-policy \
        --location=REGION
    

צירוף או ניתוק של שערים ליעד

כדי לעדכן את הגדרת המדיניות או לצרף כמה שערים אזוריים, מבצעים את הפעולות הבאות:

  1. מעדכנים את הרשימה telemetryTarget.resources בקובץ swp-tracing-policy.yaml כך שתכלול את כל כתובות ה-URI של משאבי שער היעד.

    telemetryTarget:
      resources:
        - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/us-central1/gateways/prod-swp-uc1"
        - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/us-central1/gateways/staging-swp-uc1"
    
  2. מייבאים את מדיניות הטלמטריה המעודכנת באמצעות הפקודה gcloud beta network-services telemetry-policies import:

    gcloud beta network-services telemetry-policies import my-swp-tracing-policy \
        --source=swp-tracing-policy.yaml \
        --location=REGION
    

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

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud
    • REGION: האזור שבו שער Secure Web Proxy פרוס, למשל us-central1

צפייה בניתוח של פרטי ההעברה ב-Trace

  1. נכנסים לדף Trace Explorer במסוף Google Cloud .

    כניסה לדף Trace Explorer

  2. בוחרים את הפרויקט Google Cloud .

  3. בשדה Filter, מחפשים עקבות באמצעות מאפיינים שונים.

  4. לוחצים על נקודה כלשהי בתרשים הפיזור או בתצוגת ציר הזמן כדי לבדוק את פרטי הטווח, כמו משך כולל, זמן האחזור של עיבוד ה-proxy ופרטי ה-IP של השרת החיצוני.

הצגת קורלציה בין עקבות לבין יומנים ומדדים

‫Secure Web Proxy מספק קורלציה בין עקבות, יומנים ומדדים:

  • קורלציה בין יומנים לבין מעקב: כל רשומה ביומן של טרנזקציות ב-Proxy שנכתבת ב-Cloud Logging מכילה שדה trace בפורמט: projects/PROJECT_ID/traces/TRACE_ID.

    • ב-Logs Explorer, לוחצים על רשומת היומן ואז בוחרים באפשרות View trace details כדי לנווט ישירות ליחידה הלוגית למעקב המתאימה ב-Trace.
    • ב-Trace, לוחצים על Show logs (הצגת יומנים) בחלונית Trace Details (פרטי Trace) כדי לראות את כל יומני הטרנזקציות שמשויכים לבקשה הזו.
  • קורלציה בין מדדים: השוואה בין עליות חדות של זמן האחזור שנצפו במדדים של Cloud Monitoring, כמו networkservices.googleapis.com/https/total_latencies, לבין פירוט של טווחים במעקב כדי לזהות אם העלייה החדה בזמן האחזור התרחשה בתוך ה-proxy או בשרת המקור החיצוני.

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