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

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

אתם יכולים להגדיר ולנהל את תצוגות היומנים באמצעות Google Cloud המסוף, ה-CLI של gcloud,‏ Terraform או Cloud Logging API.

מידע כללי על מודל האחסון של Logging מופיע במאמר סקירה כללית על ניתוב ואחסון.

מידע על תצוגות ביומן

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

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

שליטה בגישה לתצוגת יומן

‫Cloud Logging משתמש במדיניות IAM כדי לקבוע למי יש גישה לתצוגות יומנים. מדיניות IAM יכולה להתקיים ברמת המשאב, הפרויקט, התיקייה והארגון. ב-Cloud Logging, אפשר ליצור מדיניות IAM לכל תצוגת יומן. כדי לקבוע אם לחשבון משתמש יש הרשאה לבצע פעולה, מערכת IAM מעריכה את כל כללי המדיניות הרלוונטיים, וההערכה הראשונה מתבצעת ברמת המשאב.

לישויות מורשות עם התפקיד roles/logging.viewAccessor בGoogle Cloud פרויקט יש גישה לתצוגות וליומנים בכל קטגוריה ביומן בפרויקט.

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

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

    אם אתם יוצרים מספרים גדולים של תצוגות יומן, מומלץ להשתמש בגישה הזו.

  • נותנים לחשבון המשתמש את תפקיד ה-IAM‏ roles/logging.viewAccessor בפרויקט שמכיל את תצוגת היומן, אבל מצרפים תנאי IAM כדי להגביל את ההרשאה לתצוגת היומן הספציפית. אם לא מציינים את התנאי, נותנים לחשבון המשתמש גישה לכל תצוגות היומן. יש מגבלה של 20 קישורי תפקידים בקובץ המדיניות של פרויקט Google Cloud שכוללים את אותו התפקיד ואותו חשבון משתמש, אבל עם ביטויי תנאי שונים.

מידע נוסף זמין בסעיפים הבאים של המסמך הזה:

תצוגות של יומנים שנוצרו באופן אוטומטי

ב-Cloud Logging נוצרת באופן אוטומטי תצוגה מסוג _AllLogs לכל קטגוריה ביומן, ותצוגה מסוג _Default לקטגוריה ביומן _Default:

  • _AllLogs הרשאת צפייה: אפשר לצפות בכל היומנים בקטגוריה ביומן.
  • _Default view: אתם יכולים לראות את כל יומני הביקורת שאינם Data Access בקטגוריית היומנים.

אי אפשר לשנות תצוגות שנוצרות באופן אוטומטי על ידי Cloud Logging, אבל אפשר למחוק את התצוגה _AllLogs.

מה ההבדל בין תצוגות של יומנים לבין תצוגות של נתוני Analytics

יש הבדל בין צפיות ביומן לבין תצוגות מפורטות של ניתוח נתונים.

תצוגת יומן בקטגוריית יומנים קובעת אילו רשומות יומן בקטגוריית היומנים יוצגו לכם. כשמשתמשים ב-Observability Analytics, מבנה הנתונים LogEntry קובע את הסכימה של הנתונים ששולפים באמצעות שאילתות.

תצוגת ניתוח מכילה שאילתת SQL על תצוגת יומן אחת או יותר. באמצעות Observability Analytics, אפשר לכתוב שאילתות לגבי תצוגת ניתוח נתונים. מכיוון שיוצר תצוגת הניתוח קובע את הסכימה, אחד מתרחישי השימוש בתצוגות ניתוח הוא המרת נתוני יומן מהפורמט LogEntry לפורמט שמתאים לכם יותר.

מסננים לתצוגות של יומנים

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

בתצוגת היומן יכול להיות מסנן בסיסי או מסנן גמיש:

  • מסנן בסיסי משתמש בקבוצה מוגבלת מאוד של פקודות בשפת השאילתות של Logging. ברוב המקרים, הפקודות האלה מספיקות.

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

מסנן בסיסי

מסנן בסיסי יכול להכיל את הרכיבים הבאים:

  • מקור נתונים שמשתמש בפונקציה source. הפונקציה source מחזירה רשומות ביומן ממשאב מסוים בהיררכיה של הארגונים, התיקיות והפרויקטים Google Cloud .

  • מזהה יומן באמצעות הפונקציה log_id. הפונקציה log_id מחזירה רשומות ביומן שתואמות לארגומנט LOG_ID שצוין בשדה logName.

  • סעיפים AND מצורפים.

  • סוג משאב תקין באמצעות השוואה resource.type= FIELD_NAME.

אפשר להחיל את אופרטור השלילה על מקור נתונים, על מזהה יומן או על סוג משאב. אי אפשר להחיל את האופרטור הזה על משפט מורכב. לדוגמה, אי אפשר להשתמש בהצהרה מהצורה NOT (A AND B). בנוסף, אי אפשר לכלול אופרטורים לוגיים OR במסננים של תצוגת היומן.

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

מסנן גמיש

מסנן גמיש יכול להכיל את הרכיבים הבאים:

  • מקור נתונים שמשתמש בפונקציה source. הפונקציה source מחזירה רשומות ביומן ממשאב מסוים בהיררכיה של הארגונים, התיקיות והפרויקטים Google Cloud .

  • מזהה יומן באמצעות הפונקציה log_id. הפונקציה log_id מחזירה רשומות ביומן שתואמות לארגומנט LOG_ID שצוין בשדה logName.

  • סעיפים AND מצורפים.

  • פסוקיות OR שמופרדות על ידי 'או'.

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

המסננים יכולים גם להשוות את הערכים הבאים:

  • סוגי המשאבים
  • תוויות משאבים
  • תוויות
  • תוויות של מרכז האפליקציות

אפשר להשתמש בכל אופרטור השוואה שנתמך בשפת השאילתות של Logging. לדוגמה, אפשר להשתמש באחד מהאופרטורים הבאים:

=           -- equal
!=          -- not equal
> < >= <=   -- numeric ordering
:           -- "has" matches any substring in the log entry field
=~          -- regular expression search for a pattern
!~          -- regular expression search not for a pattern

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

דוגמאות למסננים

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

דוגמה: מסנן עם כמה תנאים

המסנן הבא ממחיש את המבנה של מסנן עם כמה הצהרות. ההצהרות הנפרדות מחוברות באמצעות אופרטורים לוגיים של AND. המסנן הזה כולל רק רשומות ביומן של Compute Engine stdoutמפרויקט Google Cloud בשם myproject:

source("projects/myproject") AND
resource.type = "gce_instance" AND
log_id("stdout")

דוגמה: מסנן עם כמה הצהרות עם פסוקיות נפרדות

בדוגמאות הבאות אפשר לראות איך משתמשים בפסוקית OR של הפרדה. בדוגמה, סעיף OR בוחר רשומות ביומן שנכתבו מפרויקט Google Cloud בשם myproject, והרשומות האלה נכתבו על ידי App Engine או על ידי Google Kubernetes Engine:

source("projects/myproject") AND
(resource.type="gae_app" OR resource.type="gke_cluster")

דוגמה: סינון לפי תווית משאב

מסנן ההצהרה הבא כולל רק רשומות ביומן עם container_name של mycontainer:

resource.labels.container_name="mycontainer"

דוגמה: סינון לפי תווית

מסנן ההצהרה הבא כולל רק רשומות ביומן שבהן התווית test שהוגדרה על ידי המשתמש היא FALSE:

labels.test="FALSE"

דוגמה: סינון לפי תווית של מרכז האפליקציות

מסנן ההצהרה הבא כולל רק את הרשומות ביומן שבהן application.location של מרכז האפליקציות מופיע כ-global:

apphub.application.location="global"

דוגמה: החרגה של רשומות ביומן באמצעות אופרטור שלילה

אפשר גם להחיל את אופרטור השלילה על שדות סינון נתמכים. לדוגמה, המסנן הבא מוציא את רשומות היומן של Compute Engine מתצוגת היומן:

NOT resource.type = "gce_instance"

אי אפשר להחיל את אופרטור השלילה על משפט מורכב. לדוגמה, לא ניתן להשתמש בהצהרה מהצורה NOT (A AND B).

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

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

  1. אם עדיין לא עשיתם זאת, צרו מאגר ליומנים בפרויקט המתאים Google Cloud , שבו תרצו להגדיר תצוגת יומן בהתאמה אישית.

  2. כדי לקבל את ההרשאות שדרושות ליצירה ולניהול של תצוגות יומן ולמתן גישה לתצוגות יומן, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:

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

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

  3. בוחרים את הממשק שבו רוצים להשתמש:

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud

    gcloud

    במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

    Terraform

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

    1. התקינו את ה-CLI של Google Cloud.

    2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

      gcloud auth application-default login

      אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.

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

    למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .

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

  5. קובעים למי צריכה להיות גישה לתצוגת היומן, ומחליטים אם רוצים להוסיף קישורים למדיניות IAM של תצוגת היומן או של Google Cloud הפרויקט. מידע נוסף זמין במאמר שליטה בגישה לתצוגת יומן.

יצירת תצוגת יומן

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

המסוף

כדי ליצור תצוגת יומן:

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

    כניסה אל Logs Storage

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

  2. בוחרים את הפרויקט, התיקייה או הארגון שבהם מאוחסנת קטגוריה ביומן.
  3. בחלונית Log buckets, בוחרים את השם של קטגוריית היומנים שרוצים ליצור עבורה תצוגת יומנים.
  4. בדף הפרטים של קטגוריה ביומן, עוברים לחלונית Log views ולוחצים על Create log view.
  5. בדף Define log view, מבצעים את הפעולות הבאות:

    1. מזינים שם לתצוגת היומן. אי אפשר לשנות את השם הזה אחרי שיוצרים את תצוגת היומן. השם מוגבל ל-100 תווים ויכול לכלול רק אותיות, ספרות, קווים תחתונים ומקפים.
    2. מזינים תיאור לתצוגת היומן.
    3. בשדה Build filter, מזינים ביטוי שקובע אילו רשומות ביומן בקטגוריית היומן ייכללו בתצוגת היומן. מידע על המבנה של השדה הזה זמין בקטע מסנן תצוגת היומן במסמך הזה.
  6. אופציונלי: כדי להוסיף קישור תפקיד למשאב של תצוגת היומן:

    1. לוחצים על המשך ועוברים לדף הגדרת הרשאות.
    2. לוחצים על Grant access.
    3. בקטע Add principals, מרחיבים את התפריט New principals ובוחרים את העיקרון.
    4. בקטע Assign roles, בוחרים בתפקיד Logs View Accessor.
    5. לוחצים על Save.
  7. לוחצים על שמירת התצוגה.

  8. אם לא הענקתם גישה לישויות הראשיות לתצוגת היומן כחלק מתהליך היצירה, צריך לבצע את השלבים שבקטע הבא.

gcloud

כדי ליצור תצוגת יומן:

  1. מריצים את הפקודה gcloud logging views create.

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

    • LOG_VIEW_ID: המזהה של תצוגת היומן, שמוגבל ל-100 תווים ויכול לכלול רק אותיות, ספרות, קווים תחתונים ומקפים.
    • BUCKET_NAME: השם של קטגוריה ביומן.
    • LOCATION: המיקום של קטגוריה ביומן.
    • FILTER: מסנן שמגדיר את תצוגת היומן. אם לא מציינים ערך, תצוגת היומן כוללת את כל היומנים. לדוגמה, כדי לסנן לפי יומנים של מכונות וירטואליות ב-Compute Engine, מזינים את המחרוזת הבאה: "resource.type=gce_instance".
    • DESCRIPTION: תיאור של תצוגת היומן. לדוגמה, אפשר להזין את הערך הבא לתיאור "Compute logs".
    • PROJECT_ID: מזהה הפרויקט. כדי ליצור תצוגת יומן בתיקייה או בארגון, מחליפים את --project ב---folder או ב---organization.

    מריצים את הפקודה gcloud logging views create:

    ‫Linux,‏ macOS או Cloud Shell

    gcloud logging views create LOG_VIEW_ID --bucket=BUCKET_NAME \
     --location=LOCATION --log-filter=FILTER --description=DESCRIPTION \
     --project=PROJECT_ID

    ‏Windows (PowerShell)

    gcloud logging views create LOG_VIEW_ID --bucket=BUCKET_NAME `
     --location=LOCATION --log-filter=FILTER --description=DESCRIPTION `
     --project=PROJECT_ID

    Windows‏ (cmd.exe)

    gcloud logging views create LOG_VIEW_ID --bucket=BUCKET_NAME ^
     --location=LOCATION --log-filter=FILTER --description=DESCRIPTION ^
     --project=PROJECT_ID

    הפקודה הזו לא מספקת תגובה. כדי לאשר את השינויים, אפשר להריץ את הפקודה gcloud logging views list.

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

Terraform

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform. מידע נוסף מופיע במאמרי העזרה על ספק Terraform.

כדי ליצור תצוגת יומן בפרויקט, בתיקייה או בארגון באמצעות Terraform:

  1. משתמשים במשאב Terraform‏ google_logging_log_view.

    בפקודה, מגדירים את השדות הבאים:

    • name: הגדרה של שם מלא של תצוגת היומן. לדוגמה, לגבי פרויקטים, הפורמט של השדה הזה הוא:

      "projects/PROJECT_ID/locations/LOCATION/buckets/