ניתוב יומנים ליעדים נתמכים

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

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

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

סקירה כללית

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

יעדים שייכים למשאב נתון: Google Cloud פרויקט, Google Cloud חשבון לחיוב, תיקייה או ארגון. כשמשאב מקבל רשומה ביומן, כל יעד במשאב מעבד את הרשומה ביומן. כש​רשומה ביומן תואמת למסננים של sink, אז הרשומה ביומן מנותבת ליעד של ה-sink.

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

כדי ליצור ולנהל יעד ליומנים, אפשר להשתמש במסוף Google Cloud , ב-Cloud Logging API וב-Google Cloud CLI. מומלץ להשתמש במסוף Google Cloud מהסיבות הבאות:

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

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

בקטע ניהול אובייקטים מסוג sink במסמך הזה מוסבר איך לצפות באובייקטים מסוג sink ולנהל אותם.

יעדים נתמכים

היעד של מאגר יכול להיות במשאב אחר מהמאגר. לדוגמה, אפשר להשתמש ב-sink ביומן כדי להעביר רשומות ביומן מפרויקט אחד לקטגוריה ביומן שמאוחסנת בפרויקט אחר.

היעדים הבאים נתמכים:

פרויקטGoogle Cloud

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

קטגוריה ביומן
בוחרים ביעד הזה כשרוצים לאחסן את נתוני היומן במשאבים שמנוהלים על ידי Cloud Logging. אפשר להציג ולנתח נתוני יומן שמאוחסנים בדלי יומנים באמצעות שירותים כמו Logs Explorer.
נושא Pub/Sub
בוחרים ביעד הזה כשרוצים לייצא את נתוני היומן מ-Google Cloud ואז להשתמש בשילוב עם צד שלישי. רשומות היומן מעוצבות בפורמט JSON ואז מנותבות לנושא ב-Pub/Sub.

מגבלות על יעדים

בקטע הזה מתוארות מגבלות שספציפיות ליעד:

  • המגבלות הבאות חלות כשהיעד של sink ביומן הוא Google Cloud פרויקט:

    • יש הגבלה של קפיצה אחת.
    • רשומות ביומן שתואמות למסנן של _Required sink ביומן מנותבות רק אל _Required הקטגוריה ביומן של פרויקט היעד אם הן נוצרו בפרויקט היעד.
    • רק מאגרי נתונים (sinks) מצטברים שנמצאים בהיררכיית המשאבים של רשומה ביומן מעבדים את הרשומה ביומן.

    לדוגמה, נניח שיעד של sink ביומן בפרויקט A הוא פרויקט B. אז התנאים הבאים מתקיימים:

    • בגלל המגבלה של קפיצה אחת, אי אפשר לנתב מחדש את רכיבי היומן ב-project B אל Google Cloud project.
    • בקטגוריית היומן _Required של פרויקט B נשמרים רק רשומות יומן שמקורן בפרויקט B. קטגוריה ביומן הזו לא מאחסנת רשומות ביומן שמקורן במשאבים אחרים, כולל אלה שמקורן בפרויקט A.
    • אם היררכיית המשאבים של פרויקט A שונה מהיררכיית המשאבים של פרויקט B, רשומה ביומן ש-sink ביומן בפרויקט A מעביר לפרויקט B לא תישלח למאגרי ה-sink המצטברים בהיררכיית המשאבים של פרויקט B.
    • אם לפרויקט A ולפרויקט B יש אותה היררכיית משאבים, רשומות היומן נשלחות למאגרי הנתונים המצטברים בהיררכיה הזו. אם רשומת יומן לא נחסמת על ידי sink מצטבר, נתב היומנים שולח את רשומת היומן אל ה-sinks בפרויקט A.

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

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

כדי להתחיל, צריך לבצע את הפעולות הבאות:

  1. מפעילים את Cloud Logging API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

  2. מוודאים ש Google Cloud בפרויקט יש רשומות ביומן שאפשר לראות בLogs Explorer.

  3. כדי לקבל את ההרשאות שנדרשות ליצירה, לשינוי או למחיקה של יעד, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד כותב הגדרות של יומנים (roles/logging.configWriter) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

    מידע על מתן תפקידי IAM מופיע במדריך בקרת הגישה בנושא Logging.

  4. יש לכם משאב ביעד נתמך או שיש לכם אפשרות ליצור משאב כזה.

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

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

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

    המסוף

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

    gcloud

    התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

    gcloud init

    REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

יצירת יעד

בקטע הזה מוסבר איך ליצור יעד בפרויקט ב- Google Cloud . אפשר ליצור עד 200 יעדים לכל Google Cloud פרויקט. כדי לראות את המספר והנפח של רשומות היומן שמועברות, אפשר לעיין במדדים של logging.googleapis.com/exports/.

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

כששאילתה מכילה כמה הצהרות, אפשר לציין איך ההצהרות האלה מצורפות או להסתמך על Cloud Logging שמוסיף באופן מרומז את ההגבלה המצטרפת, AND, בין ההצהרות. לדוגמה, נניח שתיבת דו-שיח של שאילתה או מסנן מכילה שתי הצהרות, resource.type = "gce_instance" ו-severity >= "ERROR". השאילתה בפועל היא resource.type = "gce_instance" AND severity >= "ERROR". ‫Cloud Logging תומך בהגבלות דיסג'נקטיביות, OR, ובהגבלות קוניונקטיביות, AND. כשמשתמשים בהצהרות OR, מומלץ לקבץ את הסעיפים באמצעות סוגריים.

כדי ליצור יעד:

המסוף

  1. במסוף Google Cloud , עוברים לדף Log Router:

    עוברים אל Log Router

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

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

    לדוגמה, אם רוצים להפנות את הרשומות ביומן Data Access מהפרויקט בשם Project-A לקטגוריית יומנים בפרויקט בשם Project-B, צריך לבחור באפשרות Project-A.

  3. לוחצים על יצירת יעד.

  4. בחלונית פרטי יעד, מזינים את הפרטים הבאים:

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

    • תיאור של יעד הנתונים (אופציונלי): מתארים את המטרה או את תרחיש השימוש של יעד הנתונים.

  5. בחלונית Sink destination, בוחרים את שירות היעד ואת היעד באמצעות התפריט Select sink service. מבצעים אחת מהפעולות הבאות:

    • כדי לנתב רשומות ביומן לשירות שנמצא באותו פרויקטGoogle Cloud , בוחרים באחת מהאפשרויות הבאות:

      • נושא Pub/Sub: בוחרים או יוצרים את הנושא הספציפי לקבלת רשומות היומן שמועברות.
    • כדי לנתב רשומות ביומן לפרויקט אחר של Google Cloud , בוחרים באפשרות Google Cloud פרויקט ומזינים את השם המלא של היעד:

      logging.googleapis.com/projects/DESTINATION_PROJECT_ID
      
    • כדי לנתב רשומות ביומן לשירות שנמצא בGoogle Cloud פרויקט אחר, צריך לבצע את הפעולות הבאות:

      1. בוחרים באפשרות מקור מידע אחר.
      2. מזינים את השם המלא של היעד. מידע על התחביר מופיע במאמר פורמטים של נתיבי יעד.
  6. מציינים את הרשומות ביומן שרוצים לכלול:

    1. עוברים לחלונית Choose logs to include in sink (בחירת יומנים להכללה ב-sink).

    2. בשדה Build inclusion filter, מזינים ביטוי מסנן שתואם לרשומות ביומן שרוצים לכלול. מידע נוסף על התחביר של כתיבת מסננים זמין במאמר בנושא שפת שאילתות לרישום ביומן.

      אם לא מגדירים מסנן, כל רשומות היומן מהמשאב שנבחר מנותבות ליעד.

      לדוגמה, כדי להפנות את כל הרשומות ביומן Data Access לקטגוריה ב-Logging, אפשר להשתמש במסנן הבא:

      log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")
      

      אורך המסנן לא יכול לחרוג מ-20,000 תווים.

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

  7. (אופציונלי) מגדירים מסנן החרגה כדי להסיר חלק מהרשומות ביומן:

    1. עוברים לחלונית Choose logs to filter out of sink (בחירת יומנים לסינון מתוך מאגר).

    2. בשדה Exclusion filter name, מזינים שם.

    3. בשדה Build an exclusion filter (יצירת מסנן החרגה), מזינים ביטוי מסנן שתואם לרשומות ביומן שרוצים להחריג. אפשר גם להשתמש בפונקציה sample כדי לבחור חלק מהרשומות ביומן להחרגה.

      פילטר ההחרגה.

    אפשר ליצור עד 50 מסנני החרגה לכל יעד. שימו לב שאורך המסנן לא יכול לחרוג מ-20,000 תווים.

  8. לוחצים על יצירת יעד.

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

gcloud

כדי ליצור יעד:

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

    gcloud logging sinks create SINK_NAME SINK_DESTINATION
    

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

    • SINK_NAME: השם של ה-sink ביומן. אי אפשר לשנות את השם של מאגר אחרי שיוצרים אותו.
    • SINK_DESTINATION: השירות או הפרויקט שאליהם רוצים לנתב את רשומות היומן. מגדירים את SINK_DESTINATION עם הנתיב המתאים, כפי שמתואר בקטע פורמטים של נתיבי יעד.

      לדוגמה, אם יעד ה-sink הוא נושא ב-Pub/Sub, אז SINK_DESTINATION ייראה כך:

      pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
      

    אפשר גם לספק את האפשרויות הבאות:

    • --log-filter : משתמשים באפשרות הזו כדי להגדיר מסנן שתואם לרשומות ביומן שרוצים לכלול במאגר. אם לא מציינים ערך למסנן ההכללה, המסנן הזה יתאים לכל רשומות היומן.
    • --exclusion: משתמשים באפשרות הזו כדי להגדיר מסנן החרגה עבור רשומות ביומן שרוצים להחריג מהניתוב של מאגר הנתונים. אפשר גם להשתמש בפונקציה sample כדי לבחור חלק מהרשומות ביומן להחרגה. אפשר לחזור על האפשרות הזו כמה פעמים, וליצור עד 50 מסנני החרגה לכל מאגר.
    • --description: משתמשים באפשרות הזו כדי לתאר את המטרה או את תרחיש השימוש של מאגר הנתונים.

    לדוגמה, כדי ליצור יעד לניקוז נתונים לקטגוריה ב-Logging, הפקודה יכולה להיראות כך:

    gcloud logging sinks create my-sink logging.googleapis.com/projects/myproject123/locations/global/buckets/my-bucket \
     --log-filter='logName="projects/myproject123/logs/matched"' --description="My first sink"
    

    למידע נוסף על יצירת יעדים באמצעות Google Cloud CLI, אפשר לעיין במאמר gcloud logging sinks.

  2. אם התגובה של הפקודה מכילה מפתח JSON עם התווית "writerIdentity", צריך להעניק לחשבון השירות של יעד הנתונים את ההרשאה לכתוב ליעד הנתונים. מידע נוסף מופיע במאמר בנושא הגדרת הרשאות ליעדים.

    אין צורך להגדיר הרשאות יעד אם התגובה לא מכילה מפתח JSON עם התווית "writerIdentity".

REST

  1. כדי ליצור יעד ליומן ב Google Cloud פרויקט, משתמשים ב-projects.sinks.create ב-Logging API. באובייקט LogSink, מציינים את הערכים הנדרשים המתאימים בגוף הבקשה של השיטה:

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

      לדוגמה, אם יעד ה-sink הוא נושא ב-Pub/Sub, אז destination נראה כך:

      pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
      
  2. באובייקט LogSink, מציינים את המידע האופציונלי המתאים:

    • filter : מגדירים את השדה filter כך שיתאים לרשומות ביומן שרוצים לכלול ב-Sink. אם לא מגדירים מסנן, כל רשומות היומן מהפרויקטGoogle Cloud מועברות ליעד. חשוב לדעת שאורך המסנן לא יכול לחרוג מ-20,000 תווים.
    • exclusions: מגדירים את השדה הזה כך שיתאים לרשומות ביומן שרוצים להחריג מהיעד. אפשר גם להשתמש בפונקציה sample כדי לבחור חלק מהרשומות ביומן להחרגה. אפשר ליצור עד 50 מסנני החרגה לכל יעד.
    • description: מגדירים את השדה הזה כדי לתאר את המטרה או את תרחיש השימוש של מאגר הנתונים.
  3. מפעילים את הפקודה projects.sinks.create כדי ליצור את יעד הנתונים.

  4. אם התגובה של ה-API מכילה מפתח JSON עם התווית "writerIdentity", צריך לתת לחשבון השירות של יעד הנתונים את ההרשאה לכתוב ליעד הנתונים. מידע נוסף מופיע במאמר בנושא הגדרת הרשאות ליעדים.

    אין צורך להגדיר הרשאות ליעד אם התגובה של ה-API לא מכילה מפתח JSON עם התווית "writerIdentity".

מידע נוסף על יצירת יעדים באמצעות Logging API זמין במאמר LogSink.

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

פורמטים של נתיב היעד

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

  • קטגוריה ביומן ב-Cloud Logging:

    logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
    
  • פרויקט Google Cloud אחר:

    logging.googleapis.com/projects/DESTINATION_PROJECT_ID
    
  • נושא Pub/Sub:

    pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
    

הגדרת הרשאות ליעד

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

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

זהות בעל הרשאת הכתיבה של sink היא המזהה של חשבון השירות שמשויך ל-sink הזה. לכל יעד יש זהות כותב, למעט יעדים שכותבים לקטגוריית יומנים באותו פרויקט Google Cloud שממנו מגיע רשומה ביומן. בהגדרה השנייה, לא נדרש חשבון שירות, ולכן השדה writer identity של יעד ההעברה מופיע במסוף כ-None. ה-API והפקודות של Google Cloud CLI לא מדווחים על זהות הכותב.

ההוראות הבאות רלוונטיות לפרויקטים, לתיקיות, לארגונים ולחשבונות לחיוב:

המסוף

  1. מוודאים שיש לכם גישת בעלים לפרויקטGoogle Cloud שמכיל את היעד. אם אין לכם גישת בעלים ליעד של ה-sink, צריך לבקש מבעלי הפרויקט להוסיף את זהות הכתיבה כגורם ראשי.

  2. כדי לקבל את זהות בעל הרשאת הכתיבה של ה-sink – כתובת אימייל – מה-sink החדש:

    1. במסוף Google Cloud , עוברים לדף Log Router:

      עוברים אל Log Router

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

    2. בסרגל הכלים, בוחרים את הפרויקט שמכיל את יעד ההעברה.
    3. בוחרים באפשרות תפריט ואז באפשרות הצגת פרטים של יעד. זהות הכותב מופיעה בחלונית Sink details.
  3. אם הערך של השדה writerIdentity מכיל כתובת אימייל, צריך להמשיך לשלב הבא. אם הערך הוא None, לא צריך להגדיר הרשאות יעד ל-sink.

  4. מעתיקים את זהות הכתיבה של יעד הנתונים ללוח.

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

  5. נותנים לחשבון המשתמש שצוין בזהות הכתיבה של יעד הנתונים את ההרשאה לכתוב נתוני יומן ליעד:

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

      כניסה לדף IAM

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

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

    3. לוחצים על Grant access.

    4. נותנים לחשבון המשתמש שצוין בזהות הכתיבה של יעד הנתונים תפקיד IAM על סמך היעד של יעד הנתונים של היומן:

gcloud

  1. מוודאים שיש לכם גישת בעלים לפרויקטGoogle Cloud שמכיל את היעד. אם אין לכם גישת בעלים ליעד של ה-sink, צריך לבקש מבעלי הפרויקט להוסיף את זהות הכתיבה כגורם ראשי.

  2. מקבלים את חשבון השירות מהשדה writerIdentity ביעד:

    gcloud logging sinks describe SINK_NAME
    
  3. מחפשים את היעד שרוצים לשנות את ההרשאות שלו. אם בפרטי היעד יש שורה עם writerIdentity, ממשיכים לשלב הבא. אם הפרטים לא כוללים שדה writerIdentity לא צריך להגדיר הרשאות יעד ל-sink.

    זהות הכתיבה של חשבון השירות נראית כך:

    serviceAccount:service-123456789012@gcp-sa-logging.
    
  4. מעניקים לזהות בעל הרשאת הכתיבה של ה-sink את ההרשאה לכתוב נתוני יומן ליעד באמצעות הפקודה gcloud projects add-iam-policy-binding.

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

    • PROJECT_ID: מזהה הפרויקט. מציינים את הפרויקט שבו מאוחסן יעד sink ביומן. אם היעד הוא פרויקט, מציינים את הפרויקט.
    • PRINCIPAL: מזהה של חשבון המשתמש שרוצים להקצות לו את התפקיד. בדרך כלל, מזהי החשבונות הראשיים מופיעים בפורמט הבא: PRINCIPAL-TYPE:ID. לדוגמה, . רשימה מלאה של הפורמטים האפשריים של PRINCIPAL מופיעה במאמר מזהים של חשבונות משתמשים.
    • ROLE: תפקיד IAM. מקצים לזהות הכתיבה של מאגר היעד תפקיד IAM על סמך היעד של מאגר היומן:

    מריצים את הפקודה gcloud projects add-iam-policy-binding:

    gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
    

REST

מומלץ להשתמש במסוף Google Cloud או ב-Google Cloud CLI כדי להקצות תפקיד לחשבון שירות.

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

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

שחזור המסנן של יעד הנתונים _Default

אם ערכתם את המסנן עבור יעד _Default, יכול להיות שתרצו לשחזר את ההגדרות המקוריות של היעד הזה. כשיוצרים את אובייקט ה-sink‏ _Default, הוא מוגדר עם מסנן ההכללה הבא ומסנן החרגה ריק:

  NOT log_id("cloudaudit.googleapis.com/activity") AND NOT \
  log_id("externalaudit.googleapis.com/activity") AND NOT \
  log_id("cloudaudit.googleapis.com/system_event") AND NOT \
  log_id("externalaudit.googleapis.com/system_event") AND NOT \
  log_id("cloudaudit.googleapis.com/access_transparency") AND NOT \
  log_id("externalaudit.googleapis.com/access_transparency")

החרגה של יומנים של קונטיינרים ו-Pods ב-Google Kubernetes Engine

כדי להחריג רשומות ביומן של קונטיינרים ופודים של Google Kubernetes Engine עבור מערכת GKE‏ namespaces, משתמשים במסנן הבא:

resource.type = ("k8s_container" OR "k8s_pod")
resource.labels.namespace_name = (
"cnrm-system" OR
"config-management-system" OR
"gatekeeper-system" OR
"gke-connect" OR
"gke-system" OR
"istio-system" OR
"knative-serving" OR
"monitoring-system" OR
"kube-system")

כדי להחריג רשומות ביומן של צומת Google Kubernetes Engine עבור מערכת GKE‏ logNames, משתמשים במסנן הבא:

resource.type = "k8s_node"
logName:( "logs/container-runtime" OR
"logs/docker" OR
"logs/kube-container-runtime-monitor" OR
"logs/kube-logrotate" OR
"logs/kube-node-configuration" OR
"logs/kube-node-installation" OR
"logs/kubelet" OR
"logs/kubelet-monitor" OR
"logs/node-journal" OR
"logs/node-problem-detector")

יכולת תמיכה

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

לדוגמה, רשומות ביומן המערכת של GKE שימושיות לפתרון בעיות באפליקציות ובאשכולות של GKE, כי הן נוצרות לאירועים שמתרחשים באשכול. רשומות היומן האלה יכולות לעזור לכם לקבוע אם קוד האפליקציה או אשכול GKE הבסיסי גורמים לשגיאה באפליקציה. יומני המערכת של GKE כוללים גם את יומני הביקורת של Kubernetes שנוצרו על ידי רכיב שרת ה-API של Kubernetes, שכולל שינויים שבוצעו באמצעות הפקודה kubectl ואירועים של Kubernetes.

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