אתם יכולים להעתיק רשומות יומן ששמורות בקטגוריות של Cloud Logging לקטגוריות של Cloud Storage, כדי לתמוך בביקורות אבטחה, לבצע ניתוח נתונים בהתאמה אישית או להעביר לארכיון רשומות יומן היסטוריות. פעולת ההעתקה לא גורמת נזק. רשומות היומן נשארות בקטגוריית היומנים המקורית, ואפשר להעתיק אותן לפרויקטים שונים ב- Google Cloud .
פעולות העתקה מנתבות רשומות קיימות ביומן באופן רטרואקטיבי באמצעות ה-CLI של gcloud. לעומת זאת, כיורים מנתבים באופן אוטומטי רשומות ביומן שתואמות לשאילתה בזמן אמת כשהן מגיעות, אבל לא יכולים לנתב רשומות ביומן שנשמרו לפני שהכיור נוצר.
מגבלות
המגבלות הבאות חלות על העתקת רשומות ביומן:
אפשר להעתיק רשומות ביומן רק לקטגוריות של Cloud Storage שלא מוגדרות ל-Rapid Storage. יעדים אחרים לא זמינים.
אי אפשר להעתיק רשומות של יומנים מתיקיות של יומנים שמוגדרים בהן מפתחות הצפנה בניהול הלקוח (CMEK).
לפני שמתחילים
לפני שמתחילים להעתיק רשומות ביומן, צריך לבצע את הפעולות הבאות:
- מוודאים שמשתמשים בגרסה העדכנית של ה-CLI של gcloud. במאמר ניהול רכיבי Google Cloud CLI מוסבר איך להתקין או לעדכן את ה-CLI של gcloud.
-
כדי לקבל את ההרשאות שנדרשות להעתקת רשומות ביומן, בקשו מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט שמכיל את תיקיית היומנים שממנה אתם מעתיקים:
-
כדי להפעיל פעולת העתקה:
אדמין של Logging (
roles/logging.admin) -
כדי לראות ולנהל את הסטטוס של פעולת העתקה: כותב הגדרות של יומנים (
roles/logging.configWriter)
-
כדי להפעיל פעולת העתקה:
אדמין של Logging (
-
כדי לקבל את ההרשאות שנדרשות לכתיבת רשומות ביומן ב-Cloud Storage, בקשו מהאדמין לתת לכם את התפקיד יצירת אובייקטים באחסון (
roles/storage.objectCreator) ב-IAM בפרויקט שמכיל את הקטגוריה של Cloud Storage.
העתקת רשומות ביומן
הכלי Logging מעתיק רק רשומות ביומן שמאוחסנות בקטגוריית היומנים כשהפעולה של ההעתקה מתחילה. רשומות ביומן שנשמרות בקטגוריות של יומנים אחרי שפעולת ההעתקה מתחילה לא מועתקות ל-Cloud Storage.
כדי להעתיק רשומות ביומן ל-Cloud Storage, צריך לדעת את הפרטים הבאים:
- המזהה והמיקום של קטגוריית היומנים שממנה אתם מעתיקים.
כדי לאחזר את מזהה קטגוריית היומנים ואת המיקום שלה, משתמשים בפקודה
gcloud logging buckets listב-CLI של gcloud. - השם של הקטגוריה של Cloud Storage שאליה אתם מעתיקים. במאמר אחזור מידע על קטגוריות של Cloud Storage מוסבר איך לאחזר את השם של קטגוריית Cloud Storage.
- מסנן לרשומות ביומן שרוצים להעתיק.
כדי להעתיק רשומות ביומן, מריצים את הפקודה gcloud logging copy:
gcloud logging copy LOG_BUCKET_ID storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME \
--location=LOCATION --log-filter='FILTER' --project=PROJECT_ID
לפני שמריצים את הפקודה הקודמת, צריך לבצע את הפעולות הבאות:
- מחליפים את LOG_BUCKET_ID בשם של קטגוריית היומנים.
- מחליפים את CLOUD_STORAGE_BUCKET_NAME בשם הקטגוריה שלכם ב-Cloud Storage.
- מחליפים את LOCATION במיקום של קטגוריית היומנים.
(אופציונלי): מחליפים את FILTER במסנן שמגדיר אילו רשומות ביומן יועתקו.
אם משמיטים את הדגל
--log-filter, כל הרשומות ב-log bucket מועתקות לקטגוריה של Cloud Storage.מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud . אפשר להשמיט את הדגל הזה אם המערך הפעיל של ההגדרות האישיות ב-CLI של gcloud מוגדר לפרויקט Google Cloud הנכון.
פקודה לדוגמה:
gcloud logging copy my-log-bucket storage.googleapis.com/my-gcs-bucket \
--location=global --log-filter='timestamp > "2024-07-18T10:00:00.0Z"' \
--project=my-project
הפקודה הזו יוצרת פעולה ממושכת שפועלת ברקע, ומחזירה את שם פעולת ההעתקה ואת המיקום של קטגוריית היומנים:
name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
המיקום של פעולת ההעתקה זהה למיקום של קטגוריית היומנים שממנה אתם מעתיקים.
הצגה וניהול של פעולות העתקה
אפשר לראות ולנהל את פעולות ההעתקה באמצעות הפקודות gcloud logging operations, שמאפשרות להציג, לראות ולבטל פעולות.
בפקודות הבאות צריך לציין את המיקום של הפעולה. משתמשים במיקום של קטגוריית היומנים. במאמר הצגת הפרטים של קטגוריה מוסבר איך למצוא את המיקום של קטגוריית היומנים.
הצגת רשימה של פעולות העתקה
אתם יכולים להציג רשימה של פעולות העתקה שבוצעו לאחרונה, כולל פעולות מתוזמנות, פעולות שפועלות, פעולות שהושלמו, פעולות שנכשלו ופעולות שבוטלו. פעולות העתקה שבוצעו לאחרונה מופיעות בתוצאות עד 30 יום אחרי שעת הסיום.
כדי להציג את רשימת פעולות ההעתקה, מריצים את הפקודה הבאה:
gcloud logging operations list --location=LOCATION \
--operation-filter=request_type=CopyLogEntries \
--project=PROJECT_ID
לפני שמריצים את הפקודה הקודמת, צריך לבצע את הפעולות הבאות:
- מחליפים את LOCATION במיקום של קטגוריית היומנים שממנה מעתיקים.
- מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud .
הפקודה מחזירה מידע על הפעולה הממושכת, כולל מזהה הפעולה:
projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
איך בודקים את הסטטוס של פעולת העתקה
אתם יכולים לאחזר את הסטטוס ומטא-נתונים אחרים לגבי פעולות העתקה, כולל:
-
startTime: חותמת הזמן שמציינת את יצירת הפעולה. -
endTime: חותמת הזמן שמציינת את סיום הפעולה. -
state: סטטוס הפעולה (מתוזמנת, פועלת, בוטלה, נכשלה או הצליחה). -
cancellation: אם המשתמש ביקש לבטל את הפעולה. -
progress: ההתקדמות המשוערת של הפעולה (0-100%). -
destination: השם של הקטגוריה של Cloud Storage שאליה הפעולה מעתיקה את רשומות היומן. -
filter: המסנן שמציין אילו רשומות ביומן צריך להעתיק. -
name: השם של מאגר היומנים שממנו הפעולה מעתיקה רשומות ביומן. -
logEntriesCopiedCount: מספר הרשומות ביומן שהועתקו בהצלחה לקטגוריה של Cloud Storage באמצעות הפעולה.
חשוב לזכור שלא כל שדות המטא-נתונים שברשימה רלוונטיים לכל פעולת העתקה.
לדוגמה, אם פעולת העתקה עדיין פועלת, המטא-נתונים של endTime לא חלים על הפעולה. דוגמה נוספת: אם לא השתמשתם בדגל --log-filter=FILTER כשהרצתם את הפקודה gcloud logging copy, המטא-נתונים של filter לא חלים על הפעולה.
כדי לאחזר מידע על פעולת העתקה, מריצים את הפקודה הבאה:
gcloud logging operations describe OPERATION_ID \
--location=LOCATION --project=PROJECT_ID
לפני שמריצים את הפקודה הקודמת, צריך לבצע את הפעולות הבאות:
- מחליפים את OPERATION_ID במזהה הפעולה.
- מחליפים את LOCATION במיקום של קטגוריית היומנים שממנה מעתיקים.
- מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud .
הפקודה מחזירה מטא-נתונים על פעולת ההעתקה. לדוגמה, פלט של פעולה שמתבצעת:
done: false
metadata:
`@type`: type.googleapis.com/google.logging.v2.CopyLogEntriesMetadata
progress: 75
destination: storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME
source: projects/PROJECT_ID/locations/LOCATION/buckets/LOG_BUCKET_ID
verb: copy
startTime: `2024-05-23T10:52:40.039751Z`
state: OPERATION_STATE_RUNNING
name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
ביטול של פעולת העתקה
אפשר לבטל פעולת העתקה שנמצאת בתהליך. אם מבטלים פעולת העתקה, כל רשומות היומן שהועתקו לפני ביטול הפעולה נשארות בקטגוריה של Cloud Storage.
אחרי ביטול פעולת ההעתקה, הכלי Logging משלים את כל התהליכים שמתבצעים לפני שהוא משלים את הביטול. יכול להיות שחלק מרשומות היומן עדיין יועתקו ל-Cloud Storage אחרי שתבטלו את הפעולה.
כדי לבטל פעולת העתקה, מריצים את הפקודה הבאה:
gcloud logging operations cancel OPERATION_ID \
--location=LOCATION --project=PROJECT_ID
לפני שמריצים את הפקודה הקודמת, צריך לבצע את הפעולות הבאות:
- מחליפים את OPERATION_ID במזהה הפעולה.
- מחליפים את LOCATION במיקום של קטגוריית היומנים שממנה מעתיקים.
- מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud .
הצגת רשומות ביומן ב-Cloud Storage
במאמר הצגת רשומות ביומן שנותבו ל-Cloud Storage מוסבר איך להציג ולהבין את הרשומות ביומן שהעתקתם ל-Cloud Storage.
מכסות ומגבלות
כל פעולות ההעתקה נמשכות לפחות שעה, בלי קשר לכמות הנתונים שמועתקים.
כדי להעתיק נפח גדול – לדוגמה, פטה-בייטים – פצלו את ההעתקה לכמה פעולות העתקה באמצעות השדה timestamp בדגל --log-filter.
הפקודה copy לא יכולה להעתיק רשומות ביומן שתקופת השמירה שלהן הסתיימה.
פתרון בעיות
בקטע הזה מוסבר איך לפתור שגיאות בהעתקת רשומות ביומן.
כתיבת נתוני הייצוא נכשלה
כשבודקים את הסטטוס של פעולת העתקה באמצעות gcloud logging operations describe, יכול להיות שתוצג השגיאה הבאה:
done: true
error:
code: 7
message: Failed to write export data to the destination Cloud Storage bucket.
השגיאה הזו מתרחשת כש-Logging לא מצליח לכתוב או לסיים קובצי יומן בקטגוריית היעד של Cloud Storage. יכולות להיות כמה סיבות לכך שהכתיבה של קבצים שיוצאו במהלך הפעולה תיכשל:
- גבולות הגזרה לשירות של VPC Service Controls חוסמים בקשות לקטגוריית היעד של Cloud Storage.
- הרשאות ה-IAM של החשבון שממנו התבצעה פעולת ההעתקה שונו או בוטלו בזמן שהפעולה רצה.
- פעולת ההעתקה נמשכה מספיק זמן כדי שתוקף פרטי הכניסה לאימות יפוג.
- בקטגוריה של Cloud Storage ביעד נעשה שימוש ב-CMEK, והמפתח של Cloud Key Management Service מושבת או שלסוכן השירות של Cloud Storage אין הרשאות הצפנה.
- ניסיון כתיבה חוזר מנסה להחליף קובץ קיים שלא ניתן להחליף. לדוגמה, אם מנסים שוב לייצא קבוצה אחרי עיכוב זמני, או אם מפעילים מחדש פעולת העתקה, יכול להיות שהניסיון החוזר ינסה להחליף קובץ שכבר נוצר. אם הקובץ מוגן על ידי החזקת אובייקט פעילה או מדיניות נעולה של שמירת נתונים, Cloud Storage דוחה את הכתיבה מעל.
- קטגוריית היעד נמחקה, נכנסה למצב נעילה או שהפרויקט חרג ממכסת המשאבים שלו.
כדי לפתור את הבעיה:
בדיקת VPC Service Controls: אם הארגון שלכם משתמש ב-VPC Service Controls, צריך לבדוק ביומני הביקורת של Cloud אם יש דחיות של גישה למתחם האבטחה ההיקפית (
cloudaudit.googleapis.com/data_access). מתחם האבטחה ההיקפית של קטגוריית היעד ב-Cloud Storage צריך לאפשר גישה מהפרויקט שבו פועלת פעולת ההעתקה, או להגדיר כלל לתעבורת נתונים נכנסת (ingress) ויוצאת (egress).אימות תפקידי ה-IAM בקטגוריית היעד: לחשבון שהפעיל את פעולת ההעתקה צריך להיות התפקיד יצירת אובייקטים באחסון (
roles/storage.objectCreator) בקטגוריית היעד.אימות מפתחות הצפנה בניהול הלקוח (CMEK): אם קטגוריית היעד משתמשת ב-CMEK להצפנה כברירת מחדל, צריך לוודא שהמפתח של Cloud KMS מופעל, ושלסוכן השירות של Cloud Storage יש את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter) במפתח.חלוקת פעולות העתקה גדולות למרווחי זמן קצרים יותר: כדי למנוע זמן קצוב לתפוגה או תפוגה של פרטי כניסה כשמעתיקים כמויות גדולות של רשומות ביומן, חלקו את הפעולה לקבוצות קטנות יותר. כדי לפצל את הרשומות ביומן לקבוצות, משתמשים בשדה
timestampבדגל--log-filter.מוודאים שאין התנגשויות בין החזקות אובייקטים או מדיניות שמירת נתונים: מוודאים שבקטגוריית היעד אין אובייקטים בנתיב היעד שמוגנים על ידי החזקת אובייקט פעילה או מדיניות שמירת נתונים נעולה.