במסמך הזה מוסבר איך ליצור ולנהל מאגרי יומנים, שמעבירים רשומות ביומן שמקורן בפרויקט 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 פרויקט:
- יש הגבלה של קפיצה אחת.
- רשומות ביומן שתואמות למסנן של
_Requiredsink ביומן מנותבות רק אל_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 הפרויקט. אפשר להשתמש באותו תהליך כדי ליצור יעד שמעביר רשומות יומן שמקורן בארגון, בתיקייה או בחשבון לחיוב.
כדי להתחיל, צריך לבצע את הפעולות הבאות:
-
מפעילים את Cloud Logging API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים מוודאים ש Google Cloud בפרויקט יש רשומות ביומן שאפשר לראות בLogs Explorer.
-
כדי לקבל את ההרשאות שנדרשות ליצירה, לשינוי או למחיקה של יעד, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד כותב הגדרות של יומנים (
roles/logging.configWriter) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
מידע על מתן תפקידי IAM מופיע במדריך בקרת הגישה בנושא Logging.
יש לכם משאב ביעד נתמך או שיש לכם אפשרות ליצור משאב כזה.
כדי להפנות רשומות ביומן ליעד, היעד צריך להתקיים לפני שיוצרים את מאגר הנתונים. אפשר ליצור את היעד בכלGoogle Cloud פרויקט בכל ארגון.
לפני שיוצרים מאגר, חשוב לעיין במגבלות שחלות על יעד המאגר. מידע נוסף זמין בקטע מגבלות על יעדים במאמר הזה.
בוחרים את הממשק שבו רוצים להשתמש:
המסוף
כשמשתמשים במסוף 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 .
יצירת יעד
בקטע הזה מוסבר איך ליצור יעד בפרויקט ב- 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, מומלץ לקבץ את הסעיפים באמצעות סוגריים.
כדי ליצור יעד:
המסוף
-
במסוף Google Cloud , עוברים לדף Log Router:
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.
בוחרים את Google Cloud הפרויקט שממנו מגיעים רשומות היומן שרוצים להעביר.
לדוגמה, אם רוצים להפנות את הרשומות ביומן Data Access מהפרויקט בשם
Project-Aלקטגוריית יומנים בפרויקט בשםProject-B, צריך לבחור באפשרותProject-A.לוחצים על יצירת יעד.
בחלונית פרטי יעד, מזינים את הפרטים הבאים:
שם יעד: צריך לספק מזהה ליעד. שימו לב שאחרי שיוצרים את היעד, אי אפשר לשנות את השם שלו, אבל אפשר למחוק אותו וליצור יעד חדש.
תיאור של יעד הנתונים (אופציונלי): מתארים את המטרה או את תרחיש השימוש של יעד הנתונים.
בחלונית Sink destination, בוחרים את שירות היעד ואת היעד באמצעות התפריט Select sink service. מבצעים אחת מהפעולות הבאות:
כדי לנתב רשומות ביומן לשירות שנמצא באותו פרויקטGoogle Cloud , בוחרים באחת מהאפשרויות הבאות:
- קטגוריה של Cloud Logging: בוחרים או יוצרים קטגוריה של Logging.
- נושא Pub/Sub: בוחרים או יוצרים את הנושא הספציפי לקבלת רשומות היומן שמועברות.
כדי לנתב רשומות ביומן לפרויקט אחר של Google Cloud , בוחרים באפשרות Google Cloud פרויקט ומזינים את השם המלא של היעד:
logging.googleapis.com/projects/DESTINATION_PROJECT_IDכדי לנתב רשומות ביומן לשירות שנמצא בGoogle Cloud פרויקט אחר, צריך לבצע את הפעולות הבאות:
- בוחרים באפשרות מקור מידע אחר.
- מזינים את השם המלא של היעד. מידע על התחביר מופיע במאמר פורמטים של נתיבי יעד.
מציינים את הרשומות ביומן שרוצים לכלול:
עוברים לחלונית Choose logs to include in sink (בחירת יומנים להכללה ב-sink).
בשדה Build inclusion filter, מזינים ביטוי מסנן שתואם לרשומות ביומן שרוצים לכלול. מידע נוסף על התחביר של כתיבת מסננים זמין במאמר בנושא שפת שאילתות לרישום ביומן.
אם לא מגדירים מסנן, כל רשומות היומן מהמשאב שנבחר מנותבות ליעד.
לדוגמה, כדי להפנות את כל הרשומות ביומן Data Access לקטגוריה ב-Logging, אפשר להשתמש במסנן הבא:
log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")אורך המסנן לא יכול לחרוג מ-20,000 תווים.
כדי לוודא שהזנתם את המסנן הנכון, לוחצים על תצוגה מקדימה של היומנים. כלי Logs Explorer ייפתח בכרטיסייה חדשה עם מסנן שאוכלס מראש.
(אופציונלי) מגדירים מסנן החרגה כדי להסיר חלק מהרשומות ביומן:
עוברים לחלונית Choose logs to filter out of sink (בחירת יומנים לסינון מתוך מאגר).
בשדה Exclusion filter name, מזינים שם.
בשדה Build an exclusion filter (יצירת מסנן החרגה), מזינים ביטוי מסנן שתואם לרשומות ביומן שרוצים להחריג. אפשר גם להשתמש בפונקציה
פילטר ההחרגה.sampleכדי לבחור חלק מהרשומות ביומן להחרגה.
אפשר ליצור עד 50 מסנני החרגה לכל יעד. שימו לב שאורך המסנן לא יכול לחרוג מ-20,000 תווים.
לוחצים על יצירת יעד.
מעניקים לחשבון השירות של יעד הניקוז את ההרשאה לכתוב רשומות ביומן ליעד הניקוז. מידע נוסף מופיע במאמר בנושא הגדרת הרשאות ליעדים.
gcloud
כדי ליצור יעד:
מריצים את הפקודה הבאה
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.אם התגובה של הפקודה מכילה מפתח JSON עם התווית
"writerIdentity", צריך להעניק לחשבון השירות של יעד הנתונים את ההרשאה לכתוב ליעד הנתונים. מידע נוסף מופיע במאמר בנושא הגדרת הרשאות ליעדים.אין צורך להגדיר הרשאות יעד אם התגובה לא מכילה מפתח JSON עם התווית
"writerIdentity".
REST
כדי ליצור יעד ליומן ב Google Cloud פרויקט, משתמשים ב-
projects.sinks.createב-Logging API. באובייקטLogSink, מציינים את הערכים הנדרשים המתאימים בגוף הבקשה של השיטה:name: מזהה של יעד. שימו לב: אחרי שיוצרים את יעד הנתונים, אי אפשר לשנות את השם שלו, אבל אפשר למחוק אותו וליצור יעד נתונים חדש.
destination: השירות והיעד שאליהם רוצים לנתב את רשומות היומן. כדי לנתב רשומות ביומן לפרויקט אחר, או ליעד שנמצא בפרויקט אחר, צריך להגדיר את השדהdestinationעם הנתיב המתאים, כמו שמתואר במאמר פורמטים של נתיבי יעד.לדוגמה, אם יעד ה-sink הוא נושא ב-Pub/Sub, אז
destinationנראה כך:pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
באובייקט
LogSink, מציינים את המידע האופציונלי המתאים:-
filter: מגדירים את השדהfilterכך שיתאים לרשומות ביומן שרוצים לכלול ב-Sink. אם לא מגדירים מסנן, כל רשומות היומן מהפרויקטGoogle Cloud מועברות ליעד. חשוב לדעת שאורך המסנן לא יכול לחרוג מ-20,000 תווים. -
exclusions: מגדירים את השדה הזה כך שיתאים לרשומות ביומן שרוצים להחריג מהיעד. אפשר גם להשתמש בפונקציהsampleכדי לבחור חלק מהרשומות ביומן להחרגה. אפשר ליצור עד 50 מסנני החרגה לכל יעד. -
description: מגדירים את השדה הזה כדי לתאר את המטרה או את תרחיש השימוש של מאגר הנתונים.
-
מפעילים את הפקודה
projects.sinks.createכדי ליצור את יעד הנתונים.אם התגובה של ה-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 לא מדווחים על זהות הכותב.
ההוראות הבאות רלוונטיות לפרויקטים, לתיקיות, לארגונים ולחשבונות לחיוב:
המסוף
מוודאים שיש לכם גישת בעלים לפרויקטGoogle Cloud שמכיל את היעד. אם אין לכם גישת בעלים ליעד של ה-sink, צריך לבקש מבעלי הפרויקט להוסיף את זהות הכתיבה כגורם ראשי.
כדי לקבל את זהות בעל הרשאת הכתיבה של ה-sink – כתובת אימייל – מה-sink החדש:
-
במסוף Google Cloud , עוברים לדף Log Router:
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.
- בסרגל הכלים, בוחרים את הפרויקט שמכיל את יעד ההעברה.
- בוחרים באפשרות more_vert תפריט ואז באפשרות הצגת פרטים של יעד. זהות הכותב מופיעה בחלונית Sink details.
-
אם הערך של השדה
writerIdentityמכיל כתובת אימייל, צריך להמשיך לשלב הבא. אם הערך הואNone, לא צריך להגדיר הרשאות יעד ל-sink.מעתיקים את זהות הכתיבה של יעד הנתונים ללוח.
כתובת האימייל מזהה את החשבון הראשי. הקידומת
serviceAccount:, מציינת את סוג החשבון.נותנים לחשבון המשתמש שצוין בזהות הכתיבה של יעד הנתונים את ההרשאה לכתוב נתוני יומן ליעד:
-
נכנסים לדף IAM במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שמופיע בה הכותרת המשנית IAM & Admin.
בסרגל הכלים, מוודאים שהפרויקט שנבחר הוא הפרויקט שבו מאוחסן היעד או שהוא יעד ה-sink. לדוגמה, אם היעד הוא קטגוריית יומנים, צריך לוודא שבסרגל הכלים מוצג הפרויקט שבו מאוחסנת קטגוריית היומנים.
לוחצים על Grant access.
נותנים לחשבון המשתמש שצוין בזהות הכתיבה של יעד הנתונים תפקיד IAM על סמך היעד של יעד הנתונים של היומן:
- לכל היעדים, צריך להקצות את התפקיד Logs Writer (
roles/logging.logWriter). באופן ספציפי, חשבון משתמש צריך את ההרשאהlogging.logEntries.route. - מקצים אחד מהתפקידים הבאים בהתאם ליעד:
- קטגוריית יומנים: צריך להעניק את התפקיד 'בעל הרשאת כתיבה של קטגוריות יומנים' (
roles/logging.bucketWriter). - נושא Pub/Sub: צריך להעניק את התפקיד 'פרסום הודעות ב-Pub/Sub' (
roles/pubsub.publisher).
- קטגוריית יומנים: צריך להעניק את התפקיד 'בעל הרשאת כתיבה של קטגוריות יומנים' (
- לכל היעדים, צריך להקצות את התפקיד Logs Writer (
-
gcloud
מוודאים שיש לכם גישת בעלים לפרויקטGoogle Cloud שמכיל את היעד. אם אין לכם גישת בעלים ליעד של ה-sink, צריך לבקש מבעלי הפרויקט להוסיף את זהות הכתיבה כגורם ראשי.
מקבלים את חשבון השירות מהשדה
writerIdentityביעד:gcloud logging sinks describe SINK_NAME
מחפשים את היעד שרוצים לשנות את ההרשאות שלו. אם בפרטי היעד יש שורה עם
writerIdentity, ממשיכים לשלב הבא. אם הפרטים לא כוללים שדהwriterIdentityלא צריך להגדיר הרשאות יעד ל-sink.זהות הכתיבה של חשבון השירות נראית כך:
serviceAccount:service-123456789012@gcp-sa-logging.
מעניקים לזהות בעל הרשאת הכתיבה של ה-sink את ההרשאה לכתוב נתוני יומן ליעד באמצעות הפקודה
gcloud projects add-iam-policy-binding.לפני שמשתמשים בפקודה הבאה, צריך להחליף את המשתנים הבאים בערכים:
- PROJECT_ID: מזהה הפרויקט. מציינים את הפרויקט שבו מאוחסן יעד sink ביומן. אם היעד הוא פרויקט, מציינים את הפרויקט.
- PRINCIPAL: מזהה של חשבון המשתמש שרוצים להקצות לו את התפקיד. בדרך כלל, מזהי החשבונות הראשיים מופיעים בפורמט הבא:
PRINCIPAL-TYPE:ID. לדוגמה,. רשימה מלאה של הפורמטים האפשריים שלPRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים. ROLE: תפקיד IAM. מקצים לזהות הכתיבה של מאגר היעד תפקיד IAM על סמך היעד של מאגר היומן:
- לכל היעדים, צריך להקצות את התפקיד Logs Writer (
roles/logging.logWriter). באופן ספציפי, חשבון משתמש צריך את ההרשאהlogging.logEntries.route. - מקצים אחד מהתפקידים הבאים בהתאם ליעד:
- קטגוריית יומנים: צריך להעניק את התפקיד 'בעל הרשאת כתיבה של קטגוריות יומנים' (
roles/logging.bucketWriter). - נושא Pub/Sub: צריך להעניק את התפקיד 'פרסום הודעות ב-Pub/Sub' (
roles/pubsub.publisher).
- קטגוריית יומנים: צריך להעניק את התפקיד 'בעל הרשאת כתיבה של קטגוריות יומנים' (
- לכל היעדים, צריך להקצות את התפקיד Logs Writer (
מריצים את הפקודה
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.
המאמרים הבאים
אם נתקלתם בבעיות במהלך השימוש ב-sinks כדי לנתב רשומות ביומן, תוכלו להיעזר במאמר בנושא פתרון בעיות בניתוח יומנים.
במאמר הצגת יומנים ביעדי sink מוסבר איך לראות את רשומות היומן ביעדים שלהן, ואיך היומנים מעוצבים ומאורגנים.
מידע נוסף על שליחת שאילתות וסינון באמצעות שפת השאילתות של Logging מופיע במאמר שפת השאילתות של Logging.