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

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

רישום ביומן

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

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

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

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

מתבצעת דגימה של הבקשות והתגובות התואמות שמטופלות על ידי מכונות וירטואליות (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. כדי לסיים את העריכה של שירות לקצה העורפי, לוחצים על עדכון.

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

gcloud

יוצרים שירות לקצה העורפי ומפעילים את הרישום ביומן באמצעות הפקודה 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 מציין ששירות הקצה העורפי הוא אזורי. משתמשים בשדה הזה לשירותי קצה עורפי שמשמשים עם מאזני עומסים אזוריים חיצוניים של אפליקציות.
  • --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. כדי לסיים את העריכה של שירות לקצה העורפי, לוחצים על עדכון.

  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 מציין ששירות הקצה העורפי הוא אזורי. משתמשים בשדה הזה לשירותי קצה עורפי שמשמשים עם מאזני עומסים אזוריים חיצוניים של אפליקציות.
  • --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. כדי לסיים את העריכה של שירות לקצה העורפי, לוחצים על עדכון.

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

‫gcloud: מצב אזורי

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

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

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

איפה

  • --region מציין ששירות הקצה העורפי הוא אזורי. משתמשים בשדה הזה לשירותי קצה עורפי שמשמשים עם מאזני עומסים אזוריים חיצוניים של אפליקציות.
  • --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 מוחלפים בסימני שאלה. במאזני עומסים אזוריים חיצוניים של אפליקציות, אפשר לייצא מדדים מבוססי-יומנים באמצעות יומני משאבים (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) חובה המטען הייעודי של הרשומה ביומן שמוצג כאובייקט JSON. אובייקט ה-JSON מכיל את השדות הבאים:
  • proxyStatus
  • tls
  • backendTargetProjectNumber
  • mtls
  • authzPolicyInfo
  • backendNetworkName
  • orca_load_report
  • loggingHttpRequestHeaders
  • loggingHttpResponseHeaders
מחרוזת חובה

השדה 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 כדי לציין שצריך לרשום ביומן את כל הרכיבים.

loggingHttpRequestHeaders

מערך של LoggingHttpHeader

אופציונלי

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

השדה הזה מוצג רק אם הגדרתם את logConfig.loggingHttpRequestHeaders בשירות העורפי והכותרות האלה הופיעו בבקשה.

loggingHttpResponseHeaders

מערך של LoggingHttpHeader

אופציונלי

רשימה של כותרות תגובת HTTP מותאמות אישית והערכים שלהן שהוגדרו במאזן העומסים לרישום ביומן (אפשר להגדיר עד 3 כותרות).

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

פורמט השדה 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 ארוך מ-2,048 בייט, המחרוזת 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 גדול מ-16KB ללא קידוד, המחרוזת 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 חורג מ-16KB, המחרוזת client_cert_validated_chain_exceeded_size_limit מתווספת ל-client_cert_error, והערך של client_cert_chain מוגדר כמחרוזת ריקה.

הפורמט של השדה LoggingHttpHeader

כל רשומה ברשימה loggingHttpRequestHeaders או loggingHttpResponseHeaders מכילה את השדות הבאים:

שדה פורמט השדה תיאור
headerKey מחרוזת השם של כותרת ה-HTTP (לדוגמה, User-Agent).
headerValue מחרוזת הערך של כותרת ה-HTTP. אם הכותרת היא רב-ערכית, הערכים מופרדים בפסיקים. אם הערך חורג ממגבלת החיתוך (1KiB), הוא נחתך.
headerValueTruncated בוליאני הערך הוא true אם ערך הכותרת נחתך כי הוא חרג מהמגבלה של 1KiB. אחרת, הערך מושמט או מוגדר כ-false.

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

בטבלה הבאה מפורטות תוויות המשאבים של 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, ולכן היא משתמשת בכלל נתיב כתובת ה-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 מאזן העומסים לא יכול לקבוע את השרת המתאים לשימוש בבקשה הזו. לדוגמה, יכול להיות שהבק-אנד לא מוגדר. 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 התגובה של ה-backend מכילה שגיאת פרוטוקול 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 ms) במהלך אימות שרשרת האישורים. מידע נוסף זמין במאמר שגיאות שנרשמו ביומן לחיבורים סגורים. 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 בין הלקוח למאזן העומסים נכשל לפני שנבחר קצה עורפי כלשהו, השגיאות מתועדות ברשומות היומן. אפשר להגדיר את שירותי הקצה העורפי עם שיעורי דגימה שונים של יומנים. אם חיבור ה-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 עם מאזן עומסים גלובלי חיצוני של אפליקציות (ALB), אתם יכולים להשתמש ב-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.

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

אפשר לקיים אינטראקציה עם היומנים של מאזן העומסים של אפליקציות (ALB) החיצוני באמצעות 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 :

    עוברים אל Alerting

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

  2. אם לא יצרתם ערוצי התראות ואתם רוצים לקבל התראות, לוחצים על Edit Notification Channels ומוסיפים את ערוצי ההתראות. אחרי שמוסיפים את הערוצים, חוזרים לדף Alerting.
  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 .

    מעבר למעקב

  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 מספר הבייטים שנשלחו כבקשות מלקוחות אל מאזן העומסים החיצוני האזורי של אפליקציות (ALB).
מספר הבייטים בתשובות 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 שהוגדר לבחירת שירות לקצה העורפי.

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