רישום ביומן ומעקב אחרי מאזן עומסים חיצוני אזורי של אפליקציות (ALB)

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

רישום ביומן

אתם יכולים להפעיל, להשבית ולראות יומנים של שירות קצה עורפי של מאזן עומסים חיצוני של אפליקציות.

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

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

דגימה ואיסוף של יומנים

מתבצעת דגימה של הבקשות והתגובות התואמות שמטופלות על ידי מכונות וירטואליות (VM) בעורף של מאזן העומסים. לאחר מכן, המערכת מעבדת את הבקשות האלה עם הדגימה כדי ליצור יומנים. אתם קובעים את החלק היחסי של הבקשות שמוצגות כרשומות ביומן לפי השדה logConfig.sampleRate. אם הערך של logConfig.sampleRate הוא 1.0 (100%), המשמעות היא שהיומנים נוצרים עבור כל הבקשות ונכתבים ב-Cloud Logging.

שדות אופציונליים

רשומות ביומן מכילות שדות חובה ושדות אופציונליים. בקטע What is logged (מה נרשם ביומן) מפורטים השדות האופציונליים ושדות החובה. כל שדות החובה תמיד כלולים. אתם יכולים לבחור אילו שדות אופציונליים להשאיר.

  • אם בוחרים באפשרות include all optional, כל השדות האופציונליים בפורמט של רשומת היומן נכללים ביומנים. כשנוספים שדות חדשים אופציונליים לפורמט הרשומה, היומנים כוללים אוטומטית את השדות החדשים.

  • אם בוחרים באפשרות exclude all optional (החרגת כל השדות האופציונליים), כל השדות האופציונליים מושמטים.

  • אם בוחרים באפשרות מותאם אישית, אפשר לציין את השדות האופציונליים שרוצים לכלול, כמו tls.protocol,tls.cipher,orca_load_report.cpu_utilization,orca_load_report.mem_utilization.

מידע על התאמה אישית של שדות אופציונליים זמין במאמר בנושא הפעלת רישום ביומן בשירות חדש של קצה עורפי.

הפעלת רישום ביומן בשירות חדש לקצה העורפי

המסוף

  1. נכנסים לדף Load Balancing במסוף Google Cloud .

    כניסה לדף Load balancing

  2. לוחצים על השם של מאזן העומסים.

  3. לוחצים על עריכה.

  4. לוחצים על Backend Configuration (הגדרת ה-Backend).

  5. בוחרים באפשרות יצירת שירות עורפי.

  6. ממלאים את שדות החובה של שירות ה-Backend.

  7. בקטע Logging, מסמנים את התיבה Enable logging.

  8. מגדירים שבר Sample rate. אפשר להגדיר מספר בין 0.0 ל-1.0, כאשר 0.0 אומר שלא מתבצעת רישום של בקשות ו-1.0 אומר שמתבצע רישום של 100% מהבקשות. ערך ברירת המחדל הוא 1.0.

  9. אופציונלי: כדי לכלול את כל השדות האופציונליים ביומנים, בקטע Optional fields (שדות אופציונליים), לוחצים על Include all optional fields (כלול את כל השדות האופציונליים).

  10. כדי לסיים את העריכה של שירות ה-Backend, לוחצים על עדכון.

  11. כדי לסיים את העריכה של מאזן העומסים, לוחצים על Update (עדכון).

gcloud

יוצרים שירות backend ומפעילים את הרישום ביומן באמצעות הפקודה gcloud compute backend-services create.

gcloud compute backend-services create BACKEND_SERVICE \
    --region=REGION \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

איפה

  • --region מציין שהשירות לקצה העורפי הוא אזורי. השדה הזה משמש לשירותי בק-אנד שמשמשים עם מאזני עומסים חיצוניים אזוריים של אפליקציות (ALB).
  • --enable-logging מאפשר רישום ביומן עבור שירות הקצה העורפי הזה.
  • --logging-sample-rate מאפשר לציין ערך מ-0.0 עד 1.0, כאשר 0.0 אומר שלא מתבצעת רישום של בקשות ו-1.0 אומר שמתבצע רישום של 100% מהבקשות. השדה הזה רלוונטי רק עם הפרמטר --enable-logging. הפעלת הרישום ביומן אבל הגדרת קצב הדגימה ל-0.0 שווה להשבתת הרישום ביומן. ערך ברירת המחדל הוא 1.0.
  • --logging-optional מאפשרת לכם לציין את השדות האופציונליים שאתם רוצים לכלול ביומנים:

    • INCLUDE_ALL_OPTIONAL כדי לכלול את כל השדות האופציונליים.

    • EXCLUDE_ALL_OPTIONAL (ברירת מחדל) כדי לא לכלול את כל השדות האופציונליים.

    • CUSTOM כדי לכלול רשימה מותאמת אישית של שדות אופציונליים שצוינו ב-OPTIONAL_FIELDS.

  • --logging-optional-fields: רשימה מופרדת בפסיקים של שדות אופציונליים שרוצים לכלול ביומנים.

    לדוגמה, אפשר להגדיר את tls.protocol,tls.cipher רק אם LOGGING_OPTIONAL_MODE מוגדר לערך CUSTOM. אם אתם משתמשים במדדים מותאמים אישית ורוצים לרשום ביומן רכיבים של דוח הטעינה של ORCA, צריך להגדיר את LOGGING_OPTIONAL_MODE ל-CUSTOM ולציין אילו רכיבים צריך לרשום ביומן בשדה OPTIONAL_FIELDS. לדוגמה, orca_load_report.cpu_utilization,orca_load_report.mem_utilization.

הפעלת רישום ביומן בשירות קיים לקצה העורפי

המסוף

  1. נכנסים לדף Load Balancing במסוף Google Cloud .

    כניסה לדף Load balancing

  2. לוחצים על השם של מאזן העומסים.

  3. לוחצים על עריכה.

  4. לוחצים על Backend Configuration (הגדרת ה-Backend).

  5. לוחצים על עריכה לצד שירות ה-Backend.

  6. בקטע Logging, מסמנים את התיבה Enable logging.

  7. בשדה שיעור הדגימה, מגדירים את הסתברות הדגימה. אפשר להגדיר מספר מ-0.0 עד 1.0, כאשר 0.0 אומר שלא מתבצעת רישום של בקשות ו-1.0 אומר שמתבצע רישום של 100% מהבקשות. ערך ברירת המחדל הוא 1.0.

  8. אופציונלי: כדי לכלול את כל השדות האופציונליים ביומנים, בקטע Optional fields (שדות אופציונליים), לוחצים על Include all optional fields (כלול את כל השדות האופציונליים).

  9. כדי לסיים את העריכה של שירות ה-Backend, לוחצים על עדכון.

  10. כדי לסיים את העריכה של מאזן העומסים, לוחצים על Update (עדכון).

gcloud

מפעילים רישום ביומן בשירות קצה עורפי קיים באמצעות הפקודה gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

איפה

  • --region מציין שהשירות לקצה העורפי הוא אזורי. השדה הזה משמש לשירותי בק-אנד שמשמשים עם מאזני עומסים חיצוניים אזוריים של אפליקציות (ALB).
  • --enable-logging מאפשר רישום ביומן עבור שירות הקצה העורפי הזה.
  • --logging-sample-rate מאפשר לציין ערך מ-0.0 עד 1.0, כאשר 0.0 אומר שלא מתבצעת רישום של בקשות ו-1.0 אומר שמתבצע רישום של 100% מהבקשות. הפרמטר הזה רלוונטי רק עם הפרמטר --enable-logging. הפעלת הרישום ביומן אבל הגדרת קצב הדגימה ל-0.0 שווה להשבתת הרישום ביומן. ערך ברירת המחדל הוא 1.0.
  • --logging-optional מאפשר לכם לציין את השדות האופציונליים שאתם רוצים לכלול ביומנים.

    • INCLUDE_ALL_OPTIONAL כדי לכלול את כל השדות האופציונליים.

    • EXCLUDE_ALL_OPTIONAL (ברירת מחדל) כדי להחריג את כל השדות האופציונליים.

    • CUSTOM כדי לכלול רשימה מותאמת אישית של שדות אופציונליים שצוינו ב-OPTIONAL_FIELDS.

  • --logging-optional-fields: רשימה מופרדת בפסיקים של שדות אופציונליים שרוצים לכלול ביומנים.

    לדוגמה, tls.protocol,tls.cipher. אפשר להגדיר את ההגדרה הזו רק אם ההגדרה של LOGGING_OPTIONAL_MODE היא CUSTOM. אם אתם משתמשים במדדים מותאמים אישית ורוצים לרשום ביומן רכיבים של דוח הטעינה של ORCA, צריך להגדיר את LOGGING_OPTIONAL_MODE ל-CUSTOM ולציין אילו רכיבים צריך לרשום ביומן בשדה OPTIONAL_FIELDS. לדוגמה, orca_load_report.cpu_utilization,orca_load_report.mem_utilization.

השבתה או שינוי של רישום ביומן בשירות קיים של קצה עורפי

המסוף

  1. נכנסים לדף Load Balancing במסוף Google Cloud .

    כניסה לדף Load balancing

  2. לוחצים על השם של מאזן העומסים.

  3. לוחצים על עריכה.

  4. לוחצים על Backend Configuration (הגדרת ה-Backend).

  5. לוחצים על עריכה לצד שירות ה-Backend.

  6. כדי להשבית את הרישום ביומן לחלוטין, בקטע Logging, מבטלים את הסימון בתיבה Enable logging.

  7. אם לא משביתים את הרישום ביומן, אפשר להגדיר שבר אחר של שיעור הדגימה. אפשר להגדיר מספר מ-0.0 עד 1.0, כאשר 0.0 אומר שלא מתבצעת רישום של בקשות ו-1.0 אומר שמתבצע רישום של 100% מהבקשות. ערך ברירת המחדל הוא 1.0. לדוגמה, 0.2 אומר ש-20% מהבקשות שנדגמו יוצרות יומנים.

  8. כדי לסיים את העריכה של שירות ה-Backend, לוחצים על עדכון.

  9. כדי לסיים את העריכה של מאזן העומסים, לוחצים על Update (עדכון).

‫gcloud: מצב אזורי

משביתים את הרישום ביומן בשירות עורפי באמצעות הפקודה gcloud compute backend-services update.

השבתה מלאה של רישום ביומן

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --no-enable-logging

איפה

  • --region מציין שהשירות לקצה העורפי הוא אזורי. השדה הזה משמש לשירותי בק-אנד שמשמשים עם מאזני עומסים חיצוניים אזוריים של אפליקציות (ALB).
  • --no-enable-logging משבית את הרישום ביומן עבור שירות הקצה העורפי הזה.

הפעלת שדות אופציונליים ביומן בשירות קיים של קצה עורפי

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

איפה

  • --logging-sample-rate מאפשר לציין ערך מ-0.0 עד 1.0, כאשר 0.0 אומר שלא מתבצעת רישום של בקשות ו-1.0 אומר שמתבצע רישום של 100% מהבקשות. הפרמטר הזה רלוונטי רק עם הפרמטר --enable-logging. הפעלת הרישום ביומן אבל הגדרת קצב הדגימה ל-0.0 שווה להשבתת הרישום ביומן. ערך ברירת המחדל הוא 1.0.
  • --logging-optional מאפשרת לכם לציין את השדות האופציונליים שאתם רוצים לכלול ביומנים:

    • INCLUDE_ALL_OPTIONAL כדי לכלול את כל השדות האופציונליים.

    • EXCLUDE_ALL_OPTIONAL (ברירת מחדל) כדי לא לכלול את כל השדות האופציונליים.

    • CUSTOM כדי לכלול רשימה מותאמת אישית של שדות אופציונליים שצוינו ב-OPTIONAL_FIELDS.

  • --logging-optional-fields: רשימה מופרדת בפסיקים של שדות אופציונליים שרוצים לכלול ביומנים.

    לדוגמה, אפשר להגדיר את tls.protocol,tls.cipher רק אם LOGGING_OPTIONAL_MODE מוגדר לערך CUSTOM.

    אם אתם משתמשים במדדים מותאמים אישית ורוצים לרשום ביומן רכיבים של דוח הטעינה של ORCA, צריך להגדיר את LOGGING_OPTIONAL_MODE ל-CUSTOM ולציין אילו רכיבים צריך לרשום ביומן בשדה OPTIONAL_FIELDS. לדוגמה, orca_load_report.cpu_utilization,orca_load_report.mem_utilization.

עדכון מצב אופציונלי של רישום ביומן מ-CUSTOM למצבים אחרים

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=

איפה

  • --logging-optional מאפשרת לכם לציין את השדות האופציונליים שאתם רוצים לכלול ביומנים:

    • INCLUDE_ALL_OPTIONAL כדי לכלול את כל השדות האופציונליים.

    • EXCLUDE_ALL_OPTIONAL (ברירת מחדל) כדי לא לכלול את כל השדות האופציונליים.

  • צריך להגדיר את --logging-optional-fields באופן מפורש כמו שמוצג כדי לנקות את השדות הקיימים של CUSTOM. ה-API לא מאפשר לשלב מצב שאינו CUSTOM עם שדות CUSTOM.

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

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --logging-sample-rate=VALUE

צפייה ביומנים

יומני HTTP(S) עוברים אינדוקס קודם על ידי כלל העברה ואז על ידי מיפוי כתובות URL.

כדי לראות את היומנים, עוברים לדף Logs Explorer:

כניסה לדף Logs Explorer

  • כדי לראות את כל היומנים, בתפריט המסנן Resource, בוחרים באפשרות Regional External Application Load Balancer Rule > All network_name > All region.
  • כדי לראות את היומנים של כלל העברה אחד, בוחרים שם של כלל העברה אחד.

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

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

קידוד UTF-8 חל על שדות היומן. תווים שאינם תווים בפורמט UTF-8 מוחלפים בסימני שאלה. במאזני עומסים חיצוניים אזוריים של אפליקציות (ALB), אפשר לייצא מדדים שמבוססים על יומנים באמצעות יומני משאבים (resource.type="http_external_regional_lb_rule").

מה נרשם ביומן

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

רשומות ביומן מכילות שדות אופציונליים שמוסיפים מידע נוסף על תעבורת ה-HTTP(S). אפשר להשמיט שדות אופציונליים כדי לחסוך בעלויות האחסון.

חלק מהשדות ביומן הם בפורמט של כמה שדות, עם יותר מפריט נתונים אחד בשדה נתון. לדוגמה, השדה tls הוא בפורמט TlsInfo, שמכיל את פרוטוקול ה-TLS ואת הצופן של ה-TLS בשדה אחד. השדות האלה, שמורכבים מכמה שדות, מתוארים בטבלה הבאה של פורמט הרשומה.

שדה פורמט השדה סוג השדה: חובה או אופציונלי תיאור
severity
insertID
timestamp
logName
LogEntry חובה השדות הכלליים כפי שמתואר ברשומה ביומן.
httpRequest HttpRequest חובה פרוטוקול נפוץ לרישום בקשות HTTP.
resource MonitoredResource חובה

MonitoredResource הוא סוג המשאב שמשויך לרשומה ביומן.

MonitoredResourceDescriptor מתאר את הסכימה של אובייקט MonitoredResource באמצעות שם סוג וקבוצה של תוויות. מידע נוסף זמין במאמר תוויות משאבים.

jsonPayload אובייקט (פורמט Struct) חובה המטען הייעודי (payload) של הרשומה ביומן, שמוצג כאובייקט JSON. אובייקט ה-JSON כולל את השדות הבאים:
  • proxyStatus
  • tls
  • backendTargetProjectNumber
  • mtls
  • authzPolicyInfo
  • backendNetworkName
  • orca_load_report
מחרוזת חובה

השדה proxyStatus מכיל מחרוזת שמציינת למה מאזן העומסים החיצוני האזורי של האפליקציות החזיר את הערך HttpRequest.status.

השדה לא מתועד אם הערך הוא מחרוזת ריקה. זה יכול לקרות אם ה-proxy או ה-backend לא מחזירים קוד סטטוס, או אם קוד הסטטוס שמוחזר הוא לא 0, 4xx או 5xx.

השדה proxyStatus מורכב משני חלקים:

AuthzPolicyInfo חובה בשדה authzPolicyInfo מאוחסן מידע על התוצאה של מדיניות ההרשאות. המידע הזה זמין רק למאזני עומסים חיצוניים אזוריים של אפליקציות שבהם מופעלת מדיניות הרשאות. מידע נוסף זמין במאמר בנושא מה נרשם ביומן לגבי מדיניות הרשאות.
TlsInfo אופציונלי

השדה tls מכיל את השדה TlsInfo שמציין את מטא-נתוני ה-TLS של החיבור בין הלקוח למאזן העומסים. השדה הזה זמין רק אם הלקוח משתמש בהצפנת TLS/SSL.

משתמשים בפרמטר --logging-optional-fields כדי לציין אילו רכיבים צריך לתעד:

  • tls.protocol
  • tls.cipher

אי אפשר להגדיר את --logging-optional-fields ל-tls כדי לציין את כל הרכיבים.

MtlsInfo אופציונלי

השדה mtls מכיל את הערך MtlsInfo שמציין את מטא-נתוני ה-mTLS של החיבור בין הלקוח למאזן העומסים. השדה הזה זמין רק אם מאזן העומסים משתמש ב-TLS הדדי (mTLS) בחזית.

מחרוזת חובה בשדה backendNetworkName מציינים את רשת ה-VPC של ה-Backend.
OrcaLoadReport אופציונלי

השדה orcaLoadReport מכיל חלק מהאלמנטים של דוח הטעינה של ORCA שמוחזר על ידי ה-backend, או את כולם. השדה הזה מופיע רק אם ה-backend מחזיר דוח עומס של ORCA והגדרתם את מאזן העומסים כך שיתעד את דוח העומס של ORCA.

משתמשים בפרמטר --logging-optional-fields כדי לציין אילו מהרכיבים הבאים של דוח העומס של ORCA צריכים להיכלל ביומן:

  • orca_load_report.cpu_utilization
  • orca_load_report.mem_utilization
  • orca_load_report.request_cost
  • orca_load_report.utilization
  • orca_load_report.rps_fractional
  • orca_load_report.eps
  • orca_load_report.named_metrics
  • orca_load_report.application_utilization

אפשר גם להגדיר את --logging-optional-fields לערך orca_load_report כדי לציין שצריך לרשום ביומן את כל הרכיבים.

פורמט השדה TlsInfo

שדה פורמט השדה סוג השדה: חובה או אופציונלי תיאור
protocol מחרוזת אופציונלי פרוטוקול TLS שהלקוחות משתמשים בו כדי ליצור חיבור עם מאזן העומסים. הערכים האפשריים הם TLSv1,‏ TLSv1.1,‏ TLSv1.2,‏ TLSv1.3 או QUIC. הערך הזה מוגדר כ-NULL אם הלקוח לא משתמש בהצפנת TLS/SSL.
cipher מחרוזת אופציונלי צופן TLS שבו הלקוחות משתמשים כדי ליצור חיבור למאזן העומסים. הערך הזה מוגדר ל-NULL אם הלקוח לא משתמש ב-HTTP(S) או אם הלקוח לא משתמש בהצפנת TLS/SSL.

פורמט השדה MtlsInfo

שדה פורמט השדה סוג השדה: חובה או אופציונלי תיאור
clientCertPresent bool אופציונלי

true אם הלקוח סיפק אישור במהלך לחיצת היד של TLS, אחרת false.

clientCertChainVerified bool אופציונלי

true אם שרשרת אישורי הלקוח מאומתת מול TrustStore שהוגדר; אחרת, false.

clientCertError מחרוזת אופציונלי

מחרוזות מוגדרות מראש שמייצגות את תנאי השגיאה. מידע נוסף על מחרוזות השגיאה זמין במאמר בנושא מצב אימות לקוח.

clientCertSha256Fingerprint מחרוזת אופציונלי

טביעת אצבע מסוג SHA-256 של אישור הלקוח בקידוד Base64.

clientCertSerialNumber מחרוזת אופציונלי

המספר הסידורי של אישור הלקוח. אם המספר הסידורי ארוך מ-50 בייטים, המחרוזת client_cert_serial_number_exceeded_size_limit מתווספת ל- client_cert_error, והמספר הסידורי מוגדר כמחרוזת ריקה.

clientCertValidStartTime מחרוזת אופציונלי

חותמת זמן (בפורמט מחרוזת תאריך RFC 3339) שלפניו אישור הלקוח לא תקף. לדוגמה, 2022-07-01T18:05:09+00:00.

clientCertValidEndTime מחרוזת אופציונלי

חותמת זמן (בפורמט מחרוזת תאריך RFC 3339) שאחריה אישור הלקוח לא תקף. לדוגמה, 2022-07-01T18:05:09+00:00.

clientCertSpiffeId מחרוזת אופציונלי

SPIFFE ID מהשדה של שם הנושא החלופי (SAN). אם הערך לא תקין או שהוא גדול מ-2,048 בייט, מזהה ה-SPIFFE מוגדר כמחרוזת ריקה.

אם מזהה ה-SPIFFE ארוך מ-2048 בייט, המחרוזת client_cert_spiffe_id_exceeded_size_limit מתווספת ל- client_cert_error.

clientCertUriSans מחרוזת אופציונלי

רשימה מופרדת בפסיקים בקידוד Base64 של תוספי ה-SAN מסוג URI. התוספים של SAN מחולצים מאישור הלקוח. מזהה ה-SPIFFE לא נכלל בשדה client_cert_uri_sans.

אם השדה client_cert_uri_sans ארוך מ-512 בייטים, המחרוזת client_cert_uri_sans_exceeded_size_limit מתווספת ל-client_cert_error, והרשימה שמופרדת בפסיקים מוגדרת כמחרוזת ריקה.

clientCertDnsnameSans מחרוזת אופציונלי

רשימה מופרדת בפסיקים של תוספי SAN בקידוד Base64 מהסוג DNSName. תוספי ה-SAN מחולצים מאישור הלקוח.

אם השדה client_cert_dnsname_sans ארוך מ-512 בייט, המחרוזת client_cert_dnsname_sans_exceeded_size_limit מתווספת ל-client_cert_error, והרשימה שמופרדת בפסיקים מוגדרת כמחרוזת ריקה.

clientCertIssuerDn מחרוזת אופציונלי

השדה המלא של הרשות המנפיקה מהאישור בקידוד Base64.

אם השדה client_cert_issuer_dn ארוך מ-512 בייטים, המחרוזת client_cert_issuer_dn_exceeded_size_limit מתווספת ל-client_cert_error, והשדה client_cert_issuer_dn מוגדר כמחרוזת ריקה.

clientCertSubjectDn מחרוזת אופציונלי

השדה 'נושא' המלא מהאישור בקידוד Base64.

אם השדה client_cert_subject_dn ארוך מ-512 בייטים, המחרוזת client_cert_subject_dn_exceeded_size_limit מתווספת ל-client_cert_error, והשדה client_cert_subject_dn מוגדר כמחרוזת ריקה.

clientCertLeaf מחרוזת אופציונלי

אישור העלה של הלקוח לחיבור mTLS שנוצר כשהאישור עבר אימות. הקידוד של האישור תואם ל-RFC 9440: אישור DER בינארי מקודד באמצעות Base64 (ללא מעברי שורה, רווחים או תווים אחרים מחוץ לאלפבית Base64) ומוגבל באמצעות נקודתיים משני הצדדים.

אם הערך של client_cert_leaf גדול מ-16 KB ללא קידוד, המחרוזת client_cert_validated_leaf_exceeded_size_limit מתווספת ל-client_cert_error, והערך של client_cert_leaf מוגדר כמחרוזת ריקה.

clientCertChain מחרוזת אופציונלי

רשימת האישורים המופרדת בפסיקים, בסדר TLS רגיל, של שרשרת אישורי הלקוח לחיבור mTLS שנוצר, שבו אישור הלקוח עבר אימות, לא כולל אישור העלה. הקידוד של האישור תואם ל-RFC 9440.

אם הגודל המשולב של client_cert_leaf ושל client_cert_chain לפני קידוד Base64 חורג מ-16 KB, המחרוזת client_cert_validated_chain_exceeded_size_limit מתווספת ל-client_cert_error, והערך של client_cert_chain מוגדר כמחרוזת ריקה.

תוויות משאבים

בטבלה הבאה מפורטות תוויות המשאבים של resource.type="http_external_regional_lb_rule".

שדה סוג תיאור
backend_name מחרוזת השם של קבוצת המופעים או של ה-NEG בעורף. עם זאת, התווית ריקה עבור חיבור TLS שנכשל.
backend_scope מחרוזת ההיקף של ה-backend (שם אזור או שם אזור משנה). יכול להיות UNKNOWN בכל מקרה שבו backend_name לא ידוע.
backend_scope_type מחרוזת ההיקף של הקצה העורפי (REGION/ZONE). יכול להיות UNKNOWN אם backend_name לא ידוע.
backend_target_name מחרוזת השם של ה-backend שנבחר לטפל בבקשה, על סמך כלל הנתיב של מיפוי כתובות ה-URL או כלל המסלול שתואם לבקשה.
backend_target_type מחרוזת סוג היעד לקצה העורפי. יכול להיות BACKEND_SERVICE, או שהערך UNKNOWN מוחזר אם לא הוקצה קצה עורפי.
backend_type מחרוזת סוג קבוצת הבק-אנד. יכול להיות INSTANCE_GROUP,‏ NETWORK_ENDPOINT_GROUP או UNKNOWN אם לא הוקצה קצה עורפי.
forwarding_rule_name מחרוזת השם של אובייקט כלל ההעברה.
matched_url_path_rule מחרוזת כלל הנתיב או כלל המסלול של מפת כתובות ה-URL שהוגדרו כחלק ממפתח מפת כתובות ה-URL. אפשר להשתמש בערכים UNMATCHED או UNKNOWN כערכי ברירת מחדל.
  • UNMATCHED מתייחס לבקשה שלא תואמת לאף כלל של נתיב URL, ולכן היא משתמשת בכלל הנתיב שמוגדר כברירת מחדל.
  • UNKNOWN מציין שגיאה פנימית או חיבור TLS שנכשל.
network_name מחרוזת השם של רשת ה-VPC של מאזן העומסים.
project_id מחרוזת המזהה של Google Cloud הפרויקט שמשויך למשאב הזה.
region מחרוזת האזור שבו מוגדר מאזן העומסים.
target_proxy_name מחרוזת השם של אובייקט ה-proxy של היעד שאליו מתייחס כלל ההעברה.
url_map_name מחרוזת השם של אובייקט מיפוי כתובות ה-URL שהוגדר לבחירת שירות קצה עורפי. במקרה של חיבור TLS שנכשל, השדה url_map_name ריק.

שדה הסטטוס proxyStatus

השדה proxyStatus מכיל מחרוזת שמציינת למה מאזן העומסים החזיר שגיאה או יומן מידע. יש שני חלקים בשדה proxyStatusproxyStatus status ו-proxyStatus details. בקטע הזה מתוארות המחרוזות שנתמכות בשדה proxyStatus status.

שדה proxyStatus רלוונטי למאזני העומסים הבאים:

  • מאזן עומסים חיצוני אזורי של אפליקציות (ALB)
  • מאזן עומסים פנימי של אפליקציות (ALB) שפועל בכמה אזורים
  • מאזן עומסים פנימי אזורי של אפליקציות (ALB)
הסטטוס של proxyStatus תיאור קודי תגובה נפוצים שמופיעים יחד
destination_unavailable מאזן העומסים מחשיב את הקצה העורפי כלא זמין. לדוגמה, ניסיונות אחרונים לתקשר עם השרת העורפי נכשלו, או שבדיקת תקינות הסתיימה בכישלון. 500, 503
connection_timeout הניסיון של מאזן העומסים לפתוח חיבור לקצה העורפי הסתיים בטיימאאוט. 504
connection_terminated

החיבור של מאזן העומסים לשרת העורפי הסתיים לפני שהתקבלה תגובה מלאה.

הערך proxyStatus status מוחזר בכל אחד מהתרחישים הבאים:

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

0, 502, 503
connection_refused החיבור של מאזן העומסים לקצה העורפי נדחה. 502, 503
connection_limit_reached

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

הערך proxyStatus status מוחזר באחד מהתרחישים הבאים:

  • אם אחד מהעורפים נמצא במצב תחזוקה, אי אפשר לנתב את התנועה לעורף.
  • אם הבקשה מוגבלת מקומית.
  • ‫Envoy מטפל בתנאי שגיאה כמו חוסר זיכרון.
502, 503
destination_not_found מאזן העומסים לא יכול לקבוע את ה-backend המתאים לשימוש בבקשה הזו. לדוגמה, יכול להיות שהקצה העורפי לא מוגדר. 500, 404
dns_error מאזן העומסים נתקל בשגיאת DNS כשניסה למצוא כתובת IP עבור שם המארח של ה-Backend. 502, 503
proxy_configuration_error מאזן העומסים נתקל בשגיאת הגדרה פנימית. 500
proxy_internal_error מאזן העומסים נתקל בשגיאה פנימית. 0, 500, 502
proxy_restart הפרוקסי שמנהל את החיבור עובר הפעלה מחדש מתוזמנת. זהו יומן מידע. 0
proxy_internal_response מאזן העומסים יצר את התגובה בלי לנסות להתחבר לקצה העורפי. כל קוד סטטוס בהתאם לסוג הבעיה. לדוגמה, קוד הסטטוס 410 מציין שהקצה העורפי לא זמין בגלל איחור בתשלום.
http_response_timeout מאזן העומסים הגיע למגבלת הזמן הקצוב לתפוגה של שירות קצה עורפי שהוגדרה, בזמן ההמתנה לתגובה המלאה מהקצה העורפי. 504, 408
http_request_error מאזן העומסים נתקל בשגיאת HTTP מסוג ‎4xx, שמצביעה על בעיות בבקשת הלקוח. 400, 403, 405, 406, 408, 411, 413, 414, 415, 416, 417 או 429
http_protocol_error מאזן העומסים נתקל בשגיאת פרוטוקול HTTP במהלך התקשורת עם העורף. 502
tls_protocol_error מאזן העומסים נתקל בשגיאת TLS במהלך לחיצת היד של TLS. 0
tls_certificate_error מאזן העומסים נתקל בשגיאה בזמן האימות של האישור שהוצג על ידי השרת או על ידי הלקוח כשה-mTLS מופעל. 0
tls_alert_received מאזן העומסים נתקל בהתראה קריטית של TLS במהלך לחיצת היד של TLS. 0

שדה הפרטים של proxyStatus

השדה proxyStatus מכיל מחרוזת שמציינת למה מאזן העומסים החזיר שגיאה או יומן מידע. יש שני חלקים בשדה proxyStatusproxyStatus status ו-proxyStatus details. השדה proxyStatus details הוא אופציונלי ומוצג רק אם יש מידע נוסף. בקטע הזה מתוארות המחרוזות שנתמכות בשדה proxyStatus details.

השדה proxyStatus details רלוונטי למאזני העומסים הבאים:

  • מאזן עומסים חיצוני אזורי של אפליקציות (ALB)
  • מאזן עומסים פנימי אזורי של אפליקציות (ALB)
  • מאזן עומסים פנימי של אפליקציות (ALB) שפועל בכמה אזורים
פרטים על proxyStatus תיאור קודי סטטוס נפוצים של תגובות
client_disconnected_before_any_response החיבור ללקוח נותק לפני שמאזן העומסים שלח תגובה כלשהי. 0
backend_connection_closed הקצה העורפי סגר באופן לא צפוי את החיבור שלו למאזן העומסים. זה יכול לקרות אם מאזן העומסים שולח תנועה לישות אחרת, כמו אפליקציה של צד שלישי עם פסק זמן של TCP קצר יותר מ-10 דקות (600 שניות) של מאזן העומסים. 502
failed_to_connect_to_backend מאזן העומסים לא הצליח להתחבר לקצה העורפי. הכשל הזה כולל פסק זמן במהלך שלב החיבור. 503
failed_to_pick_backend מאזן העומסים לא הצליח לבחור קצה עורפי תקין לטיפול בבקשה. 502
response_sent_by_backend בקשת ה-HTTP הועברה בהצלחה לשרת העורפי, והתגובה הוחזרה מהשרת העורפי. קוד מצב ה-HTTP מוגדר על ידי התוכנה שפועלת בקצה העורפי.
client_timed_out

החיבור בין מאזן העומסים ללקוח חרג מהזמן הקצוב לתפוגה של מצב המתנה.

מידע נוסף על מאזן עומסים חיצוני אזורי של אפליקציות זמין במאמר בנושא פסק זמן של הודעת keep-alive ב-HTTP של הלקוח. מידע נוסף על מאזן עומסים פנימי של אפליקציות זמין במאמר בנושא זמן קצוב לתפוגה של חיבור HTTP פעיל של לקוח.
0, 408
backend_timeout

פג הזמן הקצוב של ה-Backend בזמן יצירת התשובה.

502
http_protocol_error_from_backend_response התגובה מהקצה העורפי מכילה שגיאה בפרוטוקול HTTP. 501, 502
http_protocol_error_from_request הבקשה של הלקוח מכילה שגיאה בפרוטוקול HTTP. 400, 503
http_version_not_supported אין תמיכה בגרסה של פרוטוקול ה-HTTP. נתמכות רק גרסאות HTTP 1.1 ו-2.0. 400
handled_by_identity_aware_proxy התשובה הזו נוצרה על ידי שרת proxy לאימות זהויות (IAP) במהלך אימות הזהות של הלקוח לפני מתן גישה. 200, 302, 400, 401, 403, 500, 502
invalid_request_headers

הכותרות של בקשת ה-HTTP שהתקבלה מלקוח מכילות לפחות תו אחד שלא מותר לפי מפרט HTTP רלוונטי.

לדוגמה, שמות של שדות בכותרת שכוללים מרכאות כפולות (") או תווים מחוץ לטווח ASCII הרגיל (כלומר, כל בייט >= 0x80) הם לא תקינים.

למידע נוסף:

400, 404
ip_detection_failed לא הצלחנו לזהות את כתובת ה-IP המקורית. כל קוד סטטוס אפשרי, בהתאם לאופי הכשל. הערך צריך להיות בין 400 ל-599.
request_body_too_large גודל גוף בקשת ה-HTTP חרג מהאורך המקסימלי שנתמך על ידי מאזן העומסים. 413, 507
request_header_timeout הבקשה נכשלה כי חלף הזמן הקצוב לתפוגה של כותרת הבקשה, כי מאזן העומסים לא קיבל את הבקשה המלאה תוך 5 שניות. 408, 504
denied_by_security_policy מאזן העומסים דחה את הבקשה הזו בגלל מדיניות אבטחה של Google Cloud Armor. 403
throttled_by_security_policy הבקשה נחסמה על ידי כלל הגבלת קצב העברת הנתונים של Cloud Armor. 429
client_cert_chain_invalid_eku לאישור הלקוח או למוציא שלו אין שימוש מורחב במפתח שכולל clientAuth. מידע נוסף זמין במאמר שגיאות שנרשמו ביומן לגבי חיבורים סגורים. 0
client_cert_chain_max_name_constraints_exceeded באישור ביניים שסופק לצורך אימות היו יותר מ-10 מגבלות שם. מידע נוסף זמין במאמר שגיאות שנרשמו ביומן עבור חיבורים סגורים. 0
client_cert_invalid_rsa_key_size גודל מפתח ה-RSA של אישור עלים או אישור ביניים של לקוח לא היה תקין. מידע נוסף זמין במאמר שגיאות שמתועדות ביומן עבור חיבורים סגורים. 0
client_cert_not_provided הלקוח לא סיפק את האישור המבוקש במהלך הלחיצת יד. מידע נוסף זמין במאמר שגיאות שמתועדות ביומן עבור חיבורים סגורים. 0
client_cert_pki_too_large ב-PKI שבו רוצים להשתמש לאימות יש יותר משלושה אישורים ביניים עם אותו Subject וSubject Public Key Info. מידע נוסף זמין במאמר שגיאות שמתועדות ביומן עבור חיבורים סגורים. 0
client_cert_unsupported_elliptic_curve_key אישור לקוח או אישור ביניים משתמשים בעקומה אליפטית שלא נתמכת. מידע נוסף זמין במאמר שגיאות שמתועדות ביומן עבור חיבורים סגורים. 0
client_cert_unsupported_key_algorithm אישור לקוח או אישור ביניים משתמש באלגוריתם שאינו RSA או ECDSA. מידע נוסף זמין במאמר שגיאות שמתועדות ביומן עבור חיבורים סגורים. 0
client_cert_validation_failed אימות אישור הלקוח נכשל ב-TrustConfig. מידע נוסף זמין במאמר שגיאות שמתועדות ביומן עבור חיבורים סגורים. 0
client_cert_validation_not_performed הגדרתם TLS הדדי בלי להגדיר TrustConfig. מידע נוסף זמין במאמר שגיאות שמתועדות ביומן עבור חיבורים סגורים. 0
client_cert_validation_search_limit_exceeded הגעתם למגבלת העומק או למגבלת האיטרציה במהלך הניסיון לאמת את שרשרת האישורים. מידע נוסף זמין במאמר שגיאות שמתועדות ביומן עבור חיבורים סגורים. 0
client_cert_validation_timed_out חריגה ממגבלת הזמן (200 אלפיות השנייה) במהלך אימות שרשרת האישורים. מידע נוסף זמין במאמר שגיאות שמתועדות ביומן עבור חיבורים סגורים. 0
tls_version_not_supported גרסת פרוטוקול ה-TLS מזוהה אבל לא נתמכת. השגיאה גורמת לסגירת חיבור ה-TLS. 0
unknown_psk_identity השרתים שולחים את השגיאה הזו כשנדרש ביסוס מפתח PSK, אבל הלקוח לא מספק זהות PSK מקובלת. השגיאה גורמת לסגירת חיבור ה-TLS. 0
no_application_protocol נשלח על ידי שרתים כשהלקוח מפרסם רק פרוטוקולים שהשרת לא תומך בהם באמצעות התוסף application_layer_protocol_negotiation. TLS application-layer protocol negotiation extension השגיאה גורמת לסגירת חיבור ה-TLS. 0
no_certificate לא נמצא אישור. השגיאה גורמת לסגירת חיבור ה-TLS. 0
bad_certificate האישור לא תקף או שהוא מכיל חתימות שלא ניתן לאמת. השגיאה גורמת לסגירת חיבור ה-TLS. 0
unsupported_certificate האישור הוא מסוג לא נתמך. השגיאה גורמת לסגירת חיבור TLS. 0
certificate_revoked האישור בוטל על ידי מי שחתם עליו. השגיאה גורמת לסגירת חיבור TLS. 0
certificate_expired התוקף של האישור פג או שהוא לא תקין. השגיאה גורמת לסגירה של חיבור TLS. 0
certificate_unknown אירעו כמה בעיות לא מוגדרות במהלך עיבוד האישור, ולכן הוא לא קביל. השגיאה גורמת לסגירת חיבור ה-TLS. 0
unknown_ca התקבלה שרשרת אישורים תקפה או שרשרת חלקית, אבל אי אפשר לקבל את האישור כי לא ניתן לאתר את אישור ה-CA או להתאים אותו לעוגן מהימן ידוע. השגיאה גורמת לסגירת חיבור TLS. 0
unexpected_message הודעה לא הולמת, כמו הודעת לחיצת יד שגויה או נתונים של אפליקציה שהתקבלו לפני הזמן. השגיאה גורמת לסגירת חיבור ה-TLS. 0
bad_record_mac מתקבל רשומה שלא ניתן לבטל את ההגנה שלה. השגיאה גורמת לסגירת חיבור TLS. 0
record_overflow התקבלה רשומת TLSCiphertext שאורכה גדול מ-214+256 בייטים, או שרשומה פוענחה לרשומת TLSPlaintext שאורכה גדול מ-214 בייטים (או ממגבלה אחרת שנקבעה). השגיאה גורמת לסגירת חיבור TLS. 0
handshake_failure לא ניתן לנהל משא ומתן על קבוצה מקובלת של פרמטרי אבטחה בהתחשב באפשרויות הזמינות. השגיאה גורמת לסגירת חיבור ה-TLS. 0
illegal_parameter שדה בהעברת הנתונים היה שגוי או לא עקבי עם שדות אחרים. השגיאה גורמת לסגירת חיבור ה-TLS. 0
access_denied התקבל אישור או PSK תקינים, אבל כשבקרת הגישה הופעלה, הלקוח לא המשיך במשא ומתן. השגיאה גורמת לסגירת חיבור ה-TLS. 0
decode_error לא ניתן לפענח הודעה כי חלק מהשדות חורגים מהטווח שצוין, או שאורך ההודעה שגוי. השגיאה גורמת לסגירת חיבור ה-TLS. 0
decrypt_error פעולה קריפטוגרפית של לחיצת יד (לא שכבת רשומה) נכשלה, כולל אימות חתימה או אימות הודעה שהסתיימה או קובץ PSK binder בצורה שגויה. השגיאה גורמת לסגירת חיבור ה-TLS. 0
insufficient_security המשא ומתן נכשל ספציפית כי השרת דורש פרמטרים מאובטחים יותר מאלה שהלקוח תומך בהם. השגיאה גורמת לסגירת חיבור ה-TLS. 0
inappropriate_fallback נשלח על ידי שרת בתגובה לניסיון חוזר לא חוקי של חיבור מלקוח. השגיאה גורמת לסגירת חיבור ה-TLS. 0
user_cancelled המשתמש ביטל את הלחיצת יד מסיבה כלשהי שלא קשורה לכשל בפרוטוקול. השגיאה גורמת לסגירת חיבור ה-TLS. 0
missing_extension נשלח על ידי נקודות קצה שמקבלות הודעת לחיצת יד שלא מכילה תוסף שחובה לשלוח עבור גרסת ה-TLS המוצעת או פרמטרים אחרים שנקבעו. השגיאה גורמת לסגירת חיבור ה-TLS. 0
unsupported_extension נשלח מנקודות קצה שמקבלות הודעת לחיצת יד שמכילה תוסף שאסור לכלול בהודעת לחיצת היד הנתונה, או כוללת תוספים ב-ServerHello או ב-Certificate שלא הוצעו קודם ב-ClientHello או ב-CertificateRequest המתאימים. השגיאה גורמת לסגירת חיבור ה-TLS. 0
unrecognized_name נשלח על ידי שרתים כשלא קיים שרת שאפשר לזהות לפי השם שסופק על ידי הלקוח באמצעות התוסף server_name. הגדרות של תוספי TLS 0
bad_certificate_status_response הודעה שנשלחת על ידי לקוחות כשהשרת מספק תגובת OCSP לא תקפה או לא מקובלת באמצעות התוסף status_request. הגדרות של תוספי TLS השגיאה גורמת לסגירת חיבור ה-TLS. 0
load_balancer_configured_resource_limits_reached מאזן העומסים הגיע למגבלות המשאבים שהוגדרו, כמו המספר המקסימלי של חיבורים. 0

רשומות ביומן של חיבור TLS שנכשל

אם חיבור ה-TLS בין הלקוח לבין מאזן העומסים נכשל לפני שנבחר קצה עורפי, השגיאות נרשמות ברשומות היומן. אתם יכולים להגדיר את שירותי ה-Backend עם שיעורי דגימה שונים של יומנים. כשחיבור TLS נכשל, קצב הדגימה של יומן החיבורים של TLS שנכשלו הוא קצב הדגימה הגבוה ביותר לכל שירות עורפי. לדוגמה, אם הגדרתם שני שירותי בק-אנד עם שיעור דגימה של יומן הרישום של 0.3 ו-0.5, שיעור הדגימה של יומן הרישום של חיבור TLS שנכשל הוא 0.5.

כדי לזהות חיבורי TLS שנכשלו, צריך לבדוק את הפרטים הבאים ברשומת היומן:

  • הסוג של proxyStatus error הוא tls_alert_received, tls_certificate_error, tls_protocol_error, או connection_terminated.
  • אין מידע על השרת.

בדוגמה הבאה מוצגת רשומה ביומן של TLS שנכשל עם השדה proxyStatus error:

   json_payload:    {
   @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
   proxyStatus: "error="tls_alert_received"; details="server_to_client: handshake_failure""
   log_name: "projects/529254013417/logs/mockservice.googleapis.com%20name"
   }
   http_request {
    latency {
      nanos: 12412000
    }
    protocol: "HTTP/1.0"
    remote_ip: "127.0.0.2"
   }
  resource {
    type: "mock_internal_http_lb_rule"
    labels {
      backend_name: ""
      backend_scope: ""
      backend_scope_type: "UNKNOWN"
      backend_target_name: ""
      backend_target_type: "UNKNOWN"
      backend_type: "UNKNOWN"
      forwarding_rule_name: "l7-ilb-https-forwarding-rule-dev"
      matched_url_path_rule: "UNKNOWN"
      network_name: "lb-network"
      region: "REGION"
      target_proxy_name: "l7-ilb-https-proxy-dev"
      url_map_name: ""
    }
  }
  timestamp: "2023-08-15T16:49:30.850785Z"
  

יומני בקשות של מדיניות הרשאות

אובייקט authz_info במטען הייעודי (payload) של JSON של רשומת יומן מאזן העומסים מכיל מידע על מדיניות ההרשאות. אתם יכולים להגדיר מדדים מבוססי-יומן לנתוני תנועה שאושרו או נדחו על ידי המדיניות הזו. פרטים נוספים על יומן הרישום של מדיניות ההרשאות

שדה סוג תיאור
authz_info.policies[] אובייקט רשימת המדיניות שתואמת לבקשה.
authz_info.policies[].name מחרוזת השם של מדיניות ההרשאות שתואמת לבקשה.

השם ריק מהסיבות הבאות:

  • אף מדיניות ALLOW לא תואמת לבקשה, והבקשה נדחית.
  • אף מדיניות DENY לא תואמת לבקשה, והבקשה מותרת.
authz_info.policies[].result enum התוצאה יכולה להיות ALLOWED או DENIED.
authz_info.policies[].details מחרוזת הפרטים כוללים את המידע הבא:
  • allowed_as_no_deny_policies_matched_request
  • denied_as_no_allow_policies_matched_request
  • denied_by_authz_extension
  • denied_by_cloud_iap
authz_info.overall_result enum התוצאה יכולה להיות ALLOWED או DENIED.

רישום ביומן של שער Google Tag למפרסמים

אם אתם משתמשים בשער Google Tag עם מאזן עומסים גלובלי חיצוני של אפליקציות, אתם יכולים להשתמש ב-Cloud Logging וב-Cloud Monitoring כדי לאמת את ההגדרה ולאבחן בעיות. ההגדרה מנוהלת באמצעות Google Ads, אבל עיבוד הבקשות והחדרת Google Tag שמתבצעים על ידי השער מתועדים ברישום ביומן ובמעקב אחרי מאזן עומסים גלובלי חיצוני של אפליקציות (ALB). מידע נוסף זמין במאמר רישום נתונים ביומן ומעקב אחרי הביצועים של מאזן עומסים גלובלי חיצוני של אפליקציות (ALB).

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

    כניסה לדף Logs Explorer

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

    • מעקב אחרי שינויים בתוכן. כששער Google Tag מוסיף תגי Google לתגובות ה-HTML של האתר, התוספות של Google Tag נרשמות ביומני מאזן העומסים. כדי לוודא שהחדרת התגים האלה בוצעה בהצלחה, בודקים את מטען ה-JSON של היומן. בקשות שהתגובות שלהן ב-HTML שונו על ידי השער מכילות אובייקט serviceExtensionInfo במטען הייעודי (payload) של JSON, כאשר השדות extension ו-resource מסתיימים ב--google-tag-gateway.

      jsonPayload.serviceExtensionInfo.extension=~ "google-tag-gateway$"
      
    • עוקבים אחרי ניתוב נתוני המדידה. אחרי פריסת Google Tag באתר, אפשר לזהות את הבקשות של נתיב המדידה ביומני איזון העומסים של האפליקציה החיצונית. לשם כך, מסננים את הרשומות שבהן backend_service_name מתחיל ב-google-tag-gateway-.

      resource.backend_service_name=~ "^google-tag-gateway-"
      

מידע על פתרון בעיות בשערי Google Tag זמין במאמר בנושא פתרון בעיות בהחדרת הקוד של שער Google Tag.

אינטראקציה עם היומנים

אפשר לקיים אינטראקציה עם היומנים של מאזן העומסים החיצוני של האפליקציות באמצעות Cloud Logging API. ‫Logging API מספק דרכים לסנן באופן אינטראקטיבי יומנים שבהם מוגדרים שדות ספציפיים. הוא מייצא את היומנים התואמים ל-Cloud Logging, ל-Cloud Storage, ל-BigQuery או ל-Pub/Sub. מידע נוסף על Logging API זמין במאמר סקירה כללית על Logging API.

מעקב

מאזן העומסים מייצא נתוני מעקב אל Monitoring.

אפשר להשתמש במדדי מעקב כדי:

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

בנוסף למרכזי הבקרה המוגדרים מראש ב-Monitoring, אפשר ליצור מרכזי בקרה בהתאמה אישית, להגדיר התראות ולשאול שאילתות לגבי המדדים באמצעות Cloud Monitoring API.

הגדרת כללי מדיניות התראות

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

  1. נכנסים לדף  Alerting במסוף Google Cloud :

    כניסה אל התראות

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.

  2. אם לא יצרתם ערוצי התראות ואתם רוצים לקבל התראות, לוחצים על Edit Notification Channels (עריכת ערוצי התראות) ומוסיפים את ערוצי ההתראות. אחרי שמוסיפים את הערוצים, חוזרים לדף התראות.
  3. בדף Alerting, בוחרים באפשרות Create policy.
  4. כדי לבחור את המדד, מרחיבים את התפריט Select a metric ומבצעים את הפעולות הבאות:
    1. כדי להגביל את התפריט לרשומות רלוונטיות, מזינים Regional External Application Load Balancer Rule בסרגל הסינון. אם לא מוצאים תוצאות אחרי סינון התפריט, משביתים את המתג Show only active resources & metrics.
    2. בשדה Resource type, בוחרים באפשרות Regional External Application Load Balancer Rule.
    3. בוחרים קטגוריית מדד ומדד, ואז לוחצים על החלה.
  5. לוחצים על הבא.
  6. ההגדרות בדף Configure alert trigger קובעות מתי ההתראה תופעל. בוחרים סוג תנאי, ואם צריך, מציינים סף. מידע נוסף זמין במאמר יצירת מדיניות התראות על סמך סף מדד.
  7. לוחצים על הבא.
  8. אופציונלי: כדי להוסיף התראות למדיניות ההתראות, לוחצים על ערוצי התראות. בתיבת הדו-שיח, בוחרים ערוץ או יותר של הודעות מהתפריט ולוחצים על אישור.
  9. אופציונלי: מעדכנים את משך הזמן עד לסגירה אוטומטית של אירוע. השדה הזה קובע מתי מערכת Monitoring סוגרת אירועים בהיעדר נתוני מדדים.
  10. אופציונלי: לוחצים על תיעוד, ואז מוסיפים את המידע שרוצים לכלול בהודעת ההתראה.
  11. לוחצים על שם ההתראה ומזינים שם למדיניות ההתראה.
  12. לוחצים על יצירת מדיניות.
מידע נוסף זמין במאמר סקירה כללית על התראות.

הגדרת לוחות בקרה מותאמים אישית ב-Cloud Monitoring

אפשר ליצור לוחות בקרה מותאמים אישית ב-Cloud Monitoring למדדים של איזון העומסים:

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

    כניסה ל-Monitoring

  2. לוחצים על מרכזי בקרה > יצירת מרכז בקרה.

  3. לוחצים על הוספת תרשים ומזינים שם לתרשים.

  4. כדי לזהות את סדרת הזמנים שתוצג, בוחרים סוג משאב וסוג מדד:

    1. בקטע Resource & Metric, לוחצים על התרשים ואז בקטע Select a metric בוחרים מבין האפשרויות הזמינות:
    2. בשביל מאזן עומסים חיצוני אזורי של אפליקציות, בוחרים את סוג המשאב Regional External Application Load Balancer Rule.
    3. לוחצים על אישור.
  5. כדי לציין מסנני מעקב, לוחצים על מסננים > הוספת מסנן.

  6. לוחצים על Save.

תדירות הדיווח על מדדים ושמירת הנתונים

המדדים של מאזני העומסים החיצוניים של האפליקציות מיוצאים ל-Cloud Monitoring במנות של נתונים ברמת פירוט של דקה אחת. נתוני המעקב נשמרים למשך שישה (6) שבועות.

לוח הבקרה מספק ניתוח נתונים במרווחי זמן שמוגדרים כברירת מחדל: שעה אחת (1H), שש שעות (6H), יום אחד (1D), שבוע אחד (1W) ושש שבועות (6W). אתם יכולים לבקש ניתוח באופן ידני בכל מרווח זמן שבין 6 שבועות לדקה אחת.

מדדי מעקב

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

המדדים הבאים של מאזני עומסים חיצוניים אזוריים של אפליקציות מדווחים ל-Cloud Monitoring.

המדדים האלה מהטבלה מתחילים ב-network.googleapis.com/loadbalancer/backend/ (תצוגה מקדימה):

  • in_flight_requests
  • configured_in_flight_requests

מדדים אחרים מתחילים ב-loadbalancing.googleapis.com/.

מדד שם תיאור
השיעור שהוגדר בקצה העורפי network.googleapis.com/loadbalancer/backend/configured_rate הקצב המקסימלי בבקשות לשנייה שמוגדר לכל קבוצת שרתים עורפיים. התוצאה הזו מתקבלת מהכפלת קיבולת היעד בגורם קנה המידה של הקיבולת, אם הוא צוין.
ניצול משאבים שהוגדר בקצה העורפי network.googleapis.com/loadbalancer/backend/configured_utilization קיבולת השימוש המקסימלית ב-CPU כשבר, שמוגדרת לכל קבוצת שרתים עורפיים. התוצאה הזו מתקבלת מהגדלת קיבולת היעד באמצעות גורם ההגדלה של הקיבולת, אם הוא צוין.
שיעור השגיאות בקצה העורפי network.googleapis.com/loadbalancer/backend/error_rate השגיאות שמוצגות על ידי כל קבוצת קצה עורפי לשנייה.
הקיבולת של הקצה העורפי network.googleapis.com/loadbalancer/backend/fullness מידת העומס הנוכחית בכל קבוצת קצה עורפי באחוזים, על סמך מצב האיזון של מאזן העומסים.
זמני אחזור בקצה העורפי loadbalancing.googleapis.com/https/external/regional/backend_latencies

התפלגות של זמן האחזור של הקצה העורפי. זמן האחזור של הקצה העורפי הוא הזמן (באלפיות השנייה) שעובר בין הבייט האחרון של הבקשה שנשלחת לקצה העורפי לבין הבייט האחרון של התגובה שמתקבלת ב-proxy. הוא כולל את הזמן שלוקח לשרת העורפי לעבד את הבקשה ואת הזמן שלוקח לשלוח את התגובה בחזרה לשרת ה-proxy.

מדדים מותאמים אישית של איזון עומסים בקצה העורפי (גרסת Preview) network.googleapis.com/loadbalancer/backend/lb_custom_metric השימוש הנוכחי בכל קבוצת שרתים, על סמך המדדים המותאמים אישית שהגדרתם.
שיעור בקצה העורפי network.googleapis.com/loadbalancer/backend/rate הבקשות שמתקבלות בכל קבוצת שרתים עורפיים לשנייה.
ניצול של הקצה העורפי network.googleapis.com/loadbalancer/backend/utilization השימוש המצטבר במעבד של המכונות הווירטואליות בקבוצה, כחלק.
בקשה בהמתנה שהוגדרה loadbalancer/backend/configured_in_flight_requests מספר הבקשות המקסימלי שמתבצעות לכל קבוצת שרתים לעורף. בקשות פעילות קובעות איך העומס מתחלק בין בקשות שפועלות יותר משנייה.
בקשה במהלך הטיסה loadbalancer/backend/in_flight_requests מספר השאילתות שמתבצעות בכל קבוצת שרתים.
מספר הבקשות loadbalancing.googleapis.com/https/external/regional/request_count מספר הבקשות שמוגשות על ידי מאזן עומסים חיצוני אזורי של אפליקציות (ALB).
מספר הבייטים בבקשה loadbalancing.googleapis.com/https/external/regional/request_bytes מספר הבייטים שנשלחו כבקשות מלקוחות אל מאזן העומסים החיצוני האזורי של האפליקציות.
מספר הבייטים בתשובות loadbalancing.googleapis.com/https/external/regional/response_bytes מספר הבייטים שנשלחו כתשובות ממאזן העומסים החיצוני האזורי של האפליקציות ללקוח.
זמני האחזור הכוללים loadbalancing.googleapis.com/https/external/regional/total_latencies

התפלגות של זמן האחזור הכולל. הזמן הכולל לתגובה הוא הזמן באלפיות השנייה שחלף בין הבייט הראשון של הבקשה שהתקבל על ידי ה-proxy לבין הבייט האחרון של התגובה שנשלחה על ידי ה-proxy. הוא כולל: הזמן שנדרש ל-Proxy לעבד את הבקשה, הזמן שנדרש לשליחת הבקשה מה-Proxy אל ה-Backend, הזמן שנדרש ל-Backend לעבד את הבקשה, הזמן שנדרש לשליחת התגובה בחזרה אל ה-Proxy והזמן שנדרש ל-Proxy לעבד את התגובה ולשלוח אותה אל הלקוח.

הנתון הזה לא כולל את זמן ה-RTT בין הלקוח לבין השרת הפרוקסי. בנוסף, השהיות בין בקשות באותו חיבור שמשתמשות ב-Connection: keep-alive לא משפיעות על המדידה. בדרך כלל, המדידה הזו מצטמצמת לאחוזון ה-95 בתצוגות של Cloud Monitoring.

סינון מאפיינים לפי מדדים

אפשר להחיל מסננים על מדדים של מאזני עומסים חיצוניים של אפליקציות.

המדדים מצטברים לכל מאזן עומסים חיצוני אזורי של אפליקציות (ALB). אפשר לסנן מדדים מצטברים באמצעות המאפיינים הבאים עבור resource.type="http_external_regional_lb_rule".

מאפיין (property) תיאור
backend_name השם של קבוצת המופעים או של ה-NEG בעורף.
backend_scope ההיקף של ה-backend (שם אזור או שם אזור משנה). יכול להיות UNKNOWN בכל מקרה שבו backend_name לא ידוע.
backend_scope_type ההיקף של הקצה העורפי (REGION/ZONE). יכול להיות UNKNOWN אם backend_name לא ידוע.
backend_target_name השם של ה-backend שנבחר לטפל בבקשה, על סמך כלל הנתיב של מיפוי כתובות ה-URL או כלל המסלול שתואם לבקשה.
backend_target_type סוג היעד לקצה העורפי. יכול להיות BACKEND_SERVICE, או שהערך UNKNOWN מוחזר אם לא הוקצה קצה עורפי.
backend_type סוג קבוצת הבק-אנד. יכול להיות INSTANCE_GROUP,‏ NETWORK_ENDPOINT_GROUP או UNKNOWN אם לא הוקצה קצה עורפי.
forwarding_rule_name השם של אובייקט כלל ההעברה.
matched_url_path_rule כלל הנתיב או כלל המסלול של מפת כתובות ה-URL שהוגדרו כחלק ממפתח מפת כתובות ה-URL. אפשר להשתמש בערכים UNMATCHED או UNKNOWN כערכי ברירת מחדל.
  • UNMATCHED מתייחס לבקשה שלא תואמת לאף כלל של נתיב URL, ולכן נעשה שימוש בכלל הנתיב שמוגדר כברירת מחדל.
  • UNKNOWN מציין שגיאה פנימית.
network_name השם של רשת ה-VPC של מאזן העומסים.
project_id המזהה של Google Cloud הפרויקט שמשויך למשאב הזה.
region האזור שבו מוגדר מאזן העומסים.
target_proxy_name השם של אובייקט ה-proxy של היעד שאליו מתייחס כלל ההעברה.
url_map_name השם של אובייקט מיפוי כתובות ה-URL שהוגדר לבחירת שירות קצה עורפי.

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