כיורי יומנים ב-Cloud Logging מאפשרים לנתב רשומות ביומן מהפרויקט ב- Google Cloud ליעדים נתמכים לצורך אחסון לטווח ארוך, ניתוח או סטרימינג. כדי להעביר את היומנים, כל כיור כותב ליעד מורשה, כמו קטגוריית יומנים או נושא Pub/Sub.
כיור מבצע פעולת כתיבה, ולכן צריך לתת לו הרשאה לכתוב ביעד. כשהיעד הוא קטגוריית יומנים באותו פרויקט של הכיור, הכיור מקבל הרשאה באופן אוטומטי. בכל שאר היעדים, צריך לצרף את הכיור לחשבון שירות שקיבל את ההרשאות הנדרשות לכתיבת נתונים ביעד.
כשנדרש חשבון שירות, Cloud Logging יוצר ומנהל אותו באופן אוטומטי. עם זאת, יכול להיות שתצטרכו לשנות את ההרשאות שניתנו לחשבון השירות. אתם לא חייבים להשתמש בחשבון השירות שנוצר על ידי Logging. אתם יכולים ליצור ולנהל חשבון שירות שמשמש כיעדים בכמה פרויקטים. מידע נוסף מופיע במאמר הגדרת sink ביומן עם חשבונות שירות בניהול המשתמש.
סקירה כללית
במאמר הזה מוסבר איך ליצור sink ואיך להגדיר את האפשרויות שמופיעות כשמשתמשים במסוף Google Cloud , ב-Google Cloud CLI או ב-API.
כיורים שייכים למשאב נתון ב- Google Cloud : פרויקט ב- Google Cloud , חשבון לחיוב, תיקייה או ארגון. כשהמשאב מקבל רשומת יומן, כל כיור במשאב מעבד את רשומת היומן. אם רשומה ביומן תואמת למסננים של הכיור, היא מנותבת ליעד של הכיור.
בדרך כלל, כיורים מנתבים רק את רשומות היומן שמקורן במשאב. עם זאת, בתיקיות ובארגונים אפשר ליצור כיורים נצברים. הכיורים האלה מנתבים רשומות ביומן שמקורן בתיקייה או בארגון, וגם במשאבי הצאצא שלהם. במסמך הזה לא מוסבר על כיורים נצברים. מידע נוסף מופיע במאמר סקירה כללית על כיורים נצברים.
כדי ליצור ולנהל כיורים, אתם יכולים להשתמש במסוף Google Cloud , ב-Cloud Logging API וב-Google Cloud CLI. מומלץ להשתמש במסוף Google Cloud מהסיבות הבאות:
- אפשר להגדיר יעדי sink כחלק מהתהליך ליצירת sink.
- אתם יכולים לראות בתצוגה מקדימה אילו רשומות ביומן תואמות למסננים של הכיור.
- חלק משלבי ההרשאה פשוטים יותר.
מומלץ לבדוק את ההגדרות של ה-sink ביומן כשמבצעים שינויים באחסון היומנים. לדוגמה, אם מוחקים את היעד של sink ביומן, צריך למחוק גם את sink היומן התואם.
בקטע ניהול אובייקטי sink ביומן מוסבר איך לראות ולנהל את אובייקטי ה-sink ביומן.
יעדים נתמכים
היעד של הכיור יכול להיות במשאב שונה מהכיור. לדוגמה, אתם יכולים להשתמש ב-sink ביומן כדי לנתב רשומות ביומן מפרויקט אחד לקטגוריית יומנים שמאוחסנת בפרויקט אחר.
אפשר להשתמש ביעדים הבאים:
- פרויקטGoogle Cloud
בוחרים ביעד הזה כשרוצים שהכיורים של היומנים בפרויקט היעד ינתבו מחדש את רשומות היומן, או כשיוצרים כיור מצטבר ליירוט. הכיורים של היומנים בפרויקט היעד יכולים לנתב מחדש את רשומות היומן לכל יעד נתמך, חוץ מאשר לפרויקט.
ה-sink ביומן שנוצר על ידי המערכת בפרויקט היעד לא כולל רשומות ביומן שמנותבות לקטגוריה ביומן
_Requiredבפרויקט המקור. לדוגמה, אם אתם מנתבים את יומני פעילות הניהול לפרויקט אחר, גם ה-sink ביומן_Requiredוגם ה-sink ביומן_Defaultבפרויקט היעד לא כוללים את הרשומות האלה ביומן. כדי לאחסן את רשומות היומן האלה, בפרויקט היעד מעדכנים את ה-sink ביומן של_Defaultאו יוצרים sink ביומן בהתאמה אישית.
- קטגוריה ביומן
- בוחרים את היעד הזה כשרוצים לאחסן את נתוני היומן במשאבים שמנוהלים על ידי Cloud Logging. אפשר להציג ולנתח נתוני יומנים שמאוחסנים בקטגוריות של יומנים באמצעות שירותים כמו מציג היומנים.
- נושא Pub/Sub
- בוחרים את היעד הזה כשרוצים לייצא את נתוני היומן מ-Google Cloud ואז להשתמש בשילוב עם צד שלישי. רשומות ביומן מעוצבות כ-JSON ואז מנותבות לנושא Pub/Sub.
הגבלות על יעדי מודעות
בקטע הזה מתוארות המגבלות הספציפיות ליעדים:
- כשמגדירים יעד לכיור, צריך לספק את הנתיב המלא ולהשתמש בנקודת הקצה הגלובלית של השירות.
אין תמיכה בנקודות קצה אזוריות של שירותים (REPs), כמו
pubsub.LOCATION.rep.googleapis.com.
אי אפשר לנתב יומנים לנושא Pub/Sub שאוכף הגבלות על נתונים במעבר. רישום ביומן לא יכול להבטיח שבקשות הפרסום מגיעות מאזור מותר, מה שגורם לשגיאות בהגדרות של
topic_region_not_allowedוליומנים שנמחקו.המגבלות הבאות חלות כשהיעד של ה-sink ביומן הוא פרויקט ב- Google Cloud :
- יש מגבלה של דילוג אחד.
- ה-sink ביומן
_Requiredבפרויקט היעד מנתב את רשומות היומן לקטגוריית היומן_Requiredשל הפרויקט כשרשומות היומן תואמות למסנן של ה-sink ומקורן בפרויקט היעד. - ה-sink ביומן
_Defaultבפרויקט היעד מנתב רשומות ביומן שתואמות למסנן ההכללה שלו ולא תואמות לאף מסנן החרגה. ה-sink ביומן_Defaultלא כולל רשומות מסוימות ביומן. לדוגמה, הכיור הזה לא מנתב רשומות ביומן של פעילות אדמין ואירועי מערכת. אפשר לשנות את הכיור הזה. - רק כיורים נצברים שנמצאים בהיררכיית המשאבים של רשומת יומן מעבדים את הרשומה.
לדוגמה, נניח שהיעד של sink ביומן בפרויקט
Aהוא פרויקטB. במקרה כזה, הכללים הבאים חלים:- בגלל המגבלה של דילוג אחד, כיורי היומנים בפרויקט
Bלא יכולים לנתב מחדש רשומות ביומן לפרויקט Google Cloud אחר. - קטגוריית היומנים
_Requiredשל הפרויקטBמאחסנת רק רשומות ביומן שמקורן בפרויקטB. בקטגוריית היומנים הזו לא מאוחסנות רשומות ביומן שמקורן במשאב אחר, כולל כאלה שמקורן בפרויקטA. - אם לפרויקט
AולפרויקטBיש היררכיות משאבים שונות, רשומת יומן שמועברת על ידי sink ביומן בפרויקטAלפרויקטBלא נשלחת ל-sinks המצטברים בהיררכיית המשאבים של פרויקטB. - אם לפרויקט
AולפרויקטBיש את אותה היררכיית משאבים, רשומות ביומן נשלחות לכיורים המצטברים בהיררכיה הזו. אם רשומת יומן לא נתפסת על ידי כיור נתונים נצברים, הנתב של היומן שולח את הרשומה לכיורי הנתונים בפרויקטA.
לפני שמתחילים
ההוראות במסמך הזה מתארות איך ליצור ולנהל כיורים ברמת הפרויקט ב-Google Cloud . אתם יכולים להשתמש באותו תהליך כדי ליצור כיור שמנתב רשומות ביומן שמקורן בארגון, בתיקייה או בחשבון לחיוב.
כדי להתחיל, צריך לבצע את הפעולות הבאות:
-
מפעילים את Cloud Logging API, אם הוא עדיין לא מופעל.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים? מוודאים שבפרויקט Google Cloud יש רשומות ביומן שאפשר לראות ב-Logs Explorer.
-
כדי לקבל את ההרשאות שנדרשות ליצירה, לשינוי או למחיקה של כיור, בקשו מהאדמין להקצות לכם את התפקיד כתיבת הגדרות של יומנים (
roles/logging.configWriter) ב-IAM בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
במדריך בקרת הגישה של Logging מוסבר איך נותנים תפקידים ב-IAM.
מוודאים שיש לכם משאב ביעד נתמך או שיש לכם אפשרות ליצור משאב כזה.
כדי לנתב רשומות ביומן ליעד, היעד צריך להיות קיים לפני שיוצרים את ה-sink. אפשר ליצור את היעד בכלGoogle Cloud פרויקט בכל ארגון.
לפני שיוצרים sink, צריך לבדוק את המגבלות שחלות על היעד של ה-sink. מידע נוסף זמין בקטע מגבלות על היעדים במאמר הזה.
בוחרים את הממשק שבו רוצים להשתמש:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initREST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
יצירת sink
בקטע הזה מוסבר איך יוצרים sink בפרויקט ב- Google Cloud .
אפשר ליצור עד 200 כיורים לכל פרויקט ב- Google Cloud .
כדי לראות את המספר והנפח של רשומות היומן שמנותבות, אפשר להציג את המדדים של logging.googleapis.com/exports/.
משתמשים בשפת השאילתות של Logging כדי ליצור ביטוי סינון שתואם לרשומות ביומן שרוצים לכלול. אל תזינו מידע רגיש במסנני ה-sink. מסנני הכיור נחשבים לנתוני שירות.
כששאילתה מכילה כמה הצהרות, אתם יכולים לציין איך ההצהרות האלה מצטרפות, או להסתמך על Cloud Logging שמוסיף באופן משתמע את ההגבלה המשותפת, AND, בין ההצהרות. לדוגמה, נניח שתיבת דו-שיח של שאילתה או מסנן מכילה שתי הצהרות, resource.type = "gce_instance" ו-severity >= "ERROR".
השאילתה בפועל היא resource.type = "gce_instance" AND severity >= "ERROR".
ב-Cloud Logging אפשר להשתמש גם בהגבלות מופרדות, OR, וגם בהגבלות מחוברות, AND. כשמשתמשים בהצהרות OR, מומלץ לקבץ את הסעיפים בסוגריים.
כדי ליצור sink:
המסוף
-
נכנסים לדף Log Router במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה עם כותרת המשנה Logging.
בוחרים את הפרויקט Google Cloud שבו נוצרו רשומות היומן שרוצים לנתב.
לדוגמה, אם רוצים לנתב את רשומות היומן של Data Access מהפרויקט
Project-Aלקטגוריית יומנים בפרויקטProject-B, בוחרים באפשרותProject-A.לוחצים על Create sink.
בקטע Sink details, מזינים את הפרטים הבאים:
שם הכיור: מזינים מזהה לכיור. אחרי שיוצרים את הכיור, אי אפשר לשנות את השם שלו, אבל אפשר למחוק אותו וליצור כיור חדש.
Sink description (אופציונלי): תיאור המטרה או תרחיש לדוגמה של הכיור.
בחלונית Sink destination, בוחרים את שירות הכיור ואת היעד באמצעות התפריט Select sink service. מבצעים את אחת מהפעולות הבאות:
כדי לנתב רשומות ביומן לשירות שנמצא באותו פרויקט ב-Google Cloud , בוחרים באחת מהאפשרויות הבאות:
- קטגוריה של Cloud Logging: בוחרים או יוצרים קטגוריה של Logging.
- נושא Pub/Sub: בוחרים או יוצרים את הנושא שיקבל את רשומות היומן המנותבות.
כדי לנתב רשומות ביומן לפרויקט אחר ב- Google Cloud , בוחרים באפשרות Google Cloud project ומזינים את השם המלא של היעד:
logging.googleapis.com/projects/DESTINATION_PROJECT_IDכדי לנתב רשומות ביומן לשירות שנמצא בפרויקט אחר ב-Google Cloud :
- בוחרים באפשרות משאב אחר.
- מזינים את השם המלא של היעד. כאן מוסבר על התחביר של הפורמטים של נתיבי היעד.
מציינים את הרשומות ביומן שרוצים לכלול:
עוברים לחלונית Choose logs to include in sink.
בשדה Build inclusion filter, מזינים ביטוי סינון שתואם לרשומות ביומן שרוצים לכלול. למידע על התחביר, קראו את המאמר שפת השאילתות של Logging.
אם לא מגדירים מסנן, כל רשומות היומן מהמשאב שנבחר מנותבות ליעד.
לדוגמה, כדי לנתב את כל רשומות היומן של Data Access לקטגוריית Logging, אפשר להשתמש במסנן הבא:
log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")האורך של מסנן לא יכול להיות יותר מ-20,000 תווים.
כדי לוודא שהזנתם את המסנן הנכון, בוחרים באפשרות Preview logs. הכלי Logs Explorer ייפתח בכרטיסייה חדשה עם מסנן מאוכלס מראש.
(אופציונלי) מגדירים מסנן החרגה כדי להסיר חלק מרשומות היומן שנכללות:
עוברים לחלונית Choose logs to filter out of sink.
בשדה שם מסנן ההחרגה, מזינים שם.
בשדה Build an exclusion filter, מזינים ביטוי סינון שתואם לרשומות ביומן שרוצים להחריג. אפשר גם להשתמש בפונקציה
sampleכדי לבחור חלק מרשומות היומן להחרגה.
אפשר ליצור עד 50 מסנני החרגה לכל כיור. שימו לב: האורך של מסנן לא יכול להיות יותר מ-20,000 תווים.
לוחצים על Create sink.
נותנים לחשבון השירות של הכיור הרשאה לכתוב רשומות ביומן ביעד של הכיור. מידע נוסף זמין במאמר הגדרת הרשאות יעד.
gcloud
כדי ליצור sink:
מריצים את הפקודה הבאה של
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 מסנני החרגה לכל sink. -
--description: משתמשים באפשרות הזו כדי לתאר את המטרה או את תרחיש השימוש של הכיור.
לדוגמה, כדי ליצור sink לקטגוריית 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.אם התגובה לפקודה מכילה מפתח JSON עם התווית
"writerIdentity", צריך לתת לחשבון השירות של הכיור הרשאה לכתוב ליעד של הכיור. מידע נוסף זמין במאמר הגדרת הרשאות יעד.אין צורך להגדיר הרשאות יעד כשהתגובה לא מכילה מפתח JSON עם התווית
"writerIdentity".
REST
כדי ליצור כיור רישום ביומן בפרויקט ב- Google Cloud , משתמשים ב-
projects.sinks.createב-Logging API. באובייקטLogSink, מספקים את הערכים הנדרשים המתאימים בגוף הבקשה של ה-method:-
name: מזהה של המאגר. אחרי שיוצרים את הכיור, אי אפשר לשנות את השם שלו, אבל אפשר למחוק אותו וליצור כיור חדש.
destination: השירות והיעד שאליהם רוצים לנתב את רשומות היומן. כדי לנתב רשומות ביומן לפרויקט אחר או ליעד שנמצא בפרויקט אחר, מגדירים את השדהdestinationלנתיב המתאים, כפי שמתואר בקטע פורמטים של נתיבי יעדים.לדוגמה, אם יעד ה-sink הוא נושא Pub/Sub, אז
destinationנראה כך:pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
-
באובייקט
LogSink, מספקים את המידע האופציונלי המתאים:-
filter: מגדירים את השדהfilterכך שיתאים לרשומות ביומן שרוצים לכלול בכיור. אם לא מגדירים מסנן, כל רשומות היומן מהפרויקט ב-Google Cloud מנותבות ליעד. חשוב לזכור שהאורך של מסנן לא יכול להיות יותר מ-20,000 תווים. -
exclusions: מגדירים את השדה הזה כך שיתאים לרשומות ביומן שרוצים להחריג מהכיור. אפשר גם להשתמש בפונקציהsampleכדי לבחור חלק מרשומות היומן להחרגה. אפשר ליצור עד 50 מסנני החרגה לכל כיור. description: בשדה הזה מגדירים את המטרה או את תרחיש השימוש של הכיור.
-
מפעילים את
projects.sinks.createכדי ליצור את המאגר.אם התגובה מה-API מכילה מפתח JSON עם התווית
"writerIdentity", צריך לתת לחשבון השירות של הכיור הרשאה לכתוב ביעד של הכיור. מידע נוסף זמין במאמר הגדרת הרשאות יעד.לא צריך להגדיר הרשאות יעד כשהתגובה מה-API לא מכילה מפתח JSON עם התווית
"writerIdentity".
מידע נוסף על יצירת כיורים באמצעות Logging API זמין במאמרי העזרה של LogSink.
אם אתם מקבלים הודעות שגיאה, קראו את המאמר פתרון בעיות בניתוב ובכיורים.
פורמטים של נתיב היעד
כשמגדירים יעד לכיור, צריך לספק את הנתיב המלא ולהשתמש בנקודת הקצה הגלובלית של השירות.
אין תמיכה בנקודות קצה אזוריות של שירותים (REPs), כמו pubsub.LOCATION.rep.googleapis.com.
בפורמטים הבאים של נתיבים, DESTINATION_PROJECT_ID מתייחס למזהה או למספר של פרויקט היעד:
קטגוריית יומנים ב-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/DESTINATION_PROJECT_ID/topics/TOPIC_ID
הגדרת הרשאות ליעד
בקטע הזה מוסבר איך לתת ל-Logging את ההרשאות לניהול זהויות והרשאות גישה (IAM) כדי לכתוב רשומות ביומן ביעד של הכיור. לרשימה המלאה של התפקידים וההרשאות ב-Logging, קראו את המאמר בקרת גישה.
כשיוצרים כיור, Cloud Logging יוצר חשבון שירות משותף למשאב, אלא אם חשבון השירות הנדרש כבר קיים. יכול להיות שחשבון השירות קיים כי אותו חשבון שירות משמש לכל המאגרים במשאב הבסיסי. משאב יכול להיות Google Cloud פרויקט, ארגון, תיקייה או חשבון לחיוב.
זהות הכותב של כיור היא המזהה של חשבון השירות שמשויך לאותו כיור. לכל הכיורים יש זהות כותב, חוץ מכיורים שכותבים למאגר יומנים באותו פרויקט ב- Google Cloud שבו נוצרו רשומות היומן. בהגדרה השנייה לא נדרש חשבון שירות, ולכן השדה writer identity של הכיור מופיע בתור None במסוף. ה-API והפקודות של Google Cloud CLI לא מדווחים על זהות הכותב.
ההוראות הבאות רלוונטיות לפרויקטים, לתיקיות, לארגונים ולחשבונות לחיוב:
המסוף
מוודאים שיש לכם גישת בעלים לפרויקט ב-Google Cloud שמכיל את היעד. אם אין לכם גישת בעלים ליעד של ה-sink, בקשו מ-Project Owner להוסיף את זהות הכותב כישות מורשית.
כדי לקבל את זהות הכותב של הכיור (כתובת אימייל) מהכיור החדש:
-
נכנסים לדף Log Router במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה עם כותרת המשנה Logging.
- בסרגל הכלים, בוחרים את הפרויקט שמכיל את הכיור.
- לוחצים על more_vert Menu ואז על View sink details. זהות הכותב מופיעה בחלונית Sink details.
-
אם הערך של השדה
writerIdentityמכיל כתובת אימייל, ממשיכים לשלב הבא. כשהערך הואNone, לא צריך להגדיר הרשאות יעד ל-sink.מעתיקים את זהות הכותב של המאגר ללוח.
כתובת האימייל מזהה את חשבון המשתמש. הקידומת
serviceAccount:מציינת את סוג החשבון.נותנים לחשבון הראשי שצוין בזהות הכותב של ה-sink הרשאה לכתוב נתוני יומן ביעד:
-
נכנסים לדף IAM במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא IAM & Admin.
בסרגל הכלים, מוודאים שהפרויקט שנבחר הוא הפרויקט שבו מאוחסן היעד או שהוא יעד הכיור. לדוגמה, אם היעד הוא קטגוריית יומנים, ודאו שבסרגל הכלים מוצג הפרויקט שבו מאוחסנת קטגוריית היומנים.
לוחצים על מתן גישה.
מקצים לחשבון המשתמש שצוין בזהות הכותב של ה-sink תפקיד ב-IAM, על סמך היעד של ה-sink ביומן:
- לכל היעדים, צריך להקצות את התפקיד "כתיבה ביומן" (
roles/logging.logWriter). באופן ספציפי, חשבון המשתמש צריך את ההרשאהlogging.logEntries.route. - מקצים אחד מהתפקידים הבאים, בהתאם ליעד:
- קטגוריית יומנים: מקצים את התפקיד כותב קטגוריית יומנים (
roles/logging.bucketWriter). - נושא Pub/Sub: מקצים את התפקיד "פרסום הודעות ב-Pub/Sub" (
roles/pubsub.publisher).
- קטגוריית יומנים: מקצים את התפקיד כותב קטגוריית יומנים (
- לכל היעדים, צריך להקצות את התפקיד "כתיבה ביומן" (
-
gcloud
מוודאים שיש לכם הרשאת בעלים בGoogle Cloud פרויקט שמכיל את היעד. אם אין לכם גישת בעלים ליעד של ה-sink, בקשו מ-Project Owner להוסיף את זהות הכותב כישות מורשית.
מאתרים את חשבון השירות בשדה
writerIdentityבכיור:gcloud logging sinks describe SINK_NAME
מאתרים את הכיור שאת ההרשאות שלו רוצים לשנות. אם פרטי הכיור מכילים שורה עם
writerIdentity, ממשיכים לשלב הבא. אם הפרטים לא כוללים שדהwriterIdentity, אין צורך להגדיר הרשאות יעד לכיור.זהות הכותב של חשבון השירות נראית בערך כך:
serviceAccount:service-123456789012@gcp-sa-logging.
מפעילים את הפקודה
gcloud projects add-iam-policy-bindingכדי לתת לזהות הכותב של הכיור הרשאה לכתוב נתוני יומן ביעד.לפני שמריצים את הפקודה הבאה, צריך להחליף את הערכים הבאים:
- PROJECT_ID: מזהה הפרויקט. מציינים את הפרויקט שבו מאוחסן היעד של ה-sink ביומן. כשהיעד הוא פרויקט, מציינים את הפרויקט הזה.
- PRINCIPAL: מזהה של חשבון המשתמש שרוצים לתת לו את התפקיד. בדרך כלל, מזהי החשבונות הראשיים מופיעים בפורמט הבא:
PRINCIPAL-TYPE:ID. לדוגמה,. רשימה מלאה של הפורמטים האפשריים שלPRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים. ROLE: תפקיד ב-IAM. מקצים לזהות הכותב של ה-sink תפקיד IAM, בהתאם ליעד של ה-sink ביומן:
- לכל היעדים, צריך להקצות את התפקיד "כתיבה ביומן" (
roles/logging.logWriter). באופן ספציפי, חשבון המשתמש צריך את ההרשאהlogging.logEntries.route. - מקצים אחד מהתפקידים הבאים, בהתאם ליעד:
- קטגוריית יומנים: מקצים את התפקיד כותב קטגוריית יומנים (
roles/logging.bucketWriter). - נושא Pub/Sub: מקצים את התפקיד "פרסום הודעות ב-Pub/Sub" (
roles/pubsub.publisher).
- קטגוריית יומנים: מקצים את התפקיד כותב קטגוריית יומנים (
- לכל היעדים, צריך להקצות את התפקיד "כתיבה ביומן" (
מריצים את הפקודה
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, יכול להיות שתרצו לשחזר את ההגדרות המקוריות של הכיור הזה. כשיוצרים את הכיור _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")
החרגת יומנים של קונטיינרים ו-Pod ב-Google Kubernetes Engine
כדי להחריג רשומות ביומן של קונטיינרים ו-Pod של 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 עם ערכי log_id של מערכת GKE, משתמשים במסנן הבא:
resource.type = "k8s_node"
(log_id("container-runtime") OR
log_id("docker") OR
log_id("kube-container-runtime-monitor") OR
log_id("kube-logrotate") OR
log_id("kube-node-configuration") OR
log_id("kube-node-installation") OR
log_id("kubelet") OR
log_id("kubelet-monitor") OR
log_id("node-journal") OR
log_id("node-problem-detector"))
תמיכה
ב-Cloud Logging אפשר להחריג רשומות ביומן ולמנוע את האחסון שלהן בקטגוריית יומנים, אבל כדאי לשקול לשמור רשומות ביומן שעוזרות לתמיכה. בעזרת רשומות היומן האלה תוכלו לזהות ולפתור בעיות באפליקציות.
לדוגמה, רשומות ביומן המערכת של GKE שימושיות לפתרון בעיות באפליקציות ובאשכולות של GKE, כי הן נוצרות לאירועים שמתרחשים באשכול. רשומות היומן האלה יכולות לעזור לכם לקבוע אם קוד האפליקציה או אשכול GKE הבסיסי גורמים לשגיאה באפליקציה. יומני המערכת של GKE כוללים גם את Kubernetes Audit Logging, שנוצר על ידי רכיב שרת ה-API של Kubernetes, וכולל שינויים שבוצעו באמצעות הפקודה kubectl ואירועים של Kubernetes.