מעבר מיומני פעילות ליומני ביקורת

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

יומני הפעילות של Compute Engine הוצאו משימוש. אפשר לזהות רשומות ביומן הפעילות לפי שם היומן:

logName: "projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"

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

איך מעבירים מיומני פעילות ליומני ביקורת

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

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

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

    לדוגמה, אם השאילתה ביומן הפעילות מדור קודם חיפשה שדה בשם jsonPayload.resource.name, השאילתה החדשה ביומן הביקורת צריכה לחפש במקום זאת את protoPayload.resourceName.

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

דוגמאות

הנה כמה דוגמאות לשאילתות שהומרו:

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

דוגמה לשאילתה
יומן פעילות מדור קודםgcloud logging read jsonPayload.resource.name="VM_NAME"
יומן ביקורת

אפשר לבחור באחת מהאפשרויות הבאות

  1. gcloud logging read protoPayload.resourceName:"VM_NAME"
  2. gcloud logging read protoPayload.resourceName="projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"

באפשרות 1, האופרטור has (:) מתאים לכל המשאבים בפרויקט שיש להם שם שכולל את VM_NAME. באפשרות 2, האופרטור 'שווה ל' (=) מתאים רק למשאב ספציפי שמוגדר במלואו עם השם הזה.

שאילתות לגבי רשומות ביומן של פעילות אדמינים מהזמן האחרון

דוגמה לשאילתה
יומן פעילות מדור קודםgcloud logging read logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
יומן ביקורתgcloud logging read logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"

שאילתות לגבי רשומות ביומן של יצירת מופעים מהזמן האחרון

דוגמה לשאילתה
יומן פעילות מדור קודםgcloud logging read 'logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log" AND jsonPayload.event_subtype="compute.instances.insert"'
יומן ביקורתgcloud logging read 'logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.methodName:"compute.instances.insert"'

שאילתה לגבי תחילת כל הפעולות של יצירת מופעים

דוגמה לשאילתה
יומן פעילות מדור קודםgcloud logging read 'jsonPayload.event_type="GCE_API_CALL" AND jsonPayload.event_subtype="compute.instances.insert"'
יומן ביקורתgcloud logging read 'operation.first="true" AND protoPayload.methodName:"compute.instances.insert"'

שאילתה לגבי השלמת פעולה

דוגמה לשאילתה
יומן פעילות מדור קודםgcloud logging read jsonPayload.event_type="GCE_OPERATION_DONE"
יומן ביקורתgcloud logging read operation.last="true"

ההבדלים בין יומני פעילות לבין יומני ביקורת

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

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

  • שמות שדות שונים. פרטים נוספים זמינים בטבלה מיפוי שמות השדות.
  • ערכים שונים בשדות, כולל:
    • שמות יומנים שונים: ליומני ביקורת יש שמות יומנים שמכילים את הערך cloudaudit.googleapis.com.
    • מטען ייעודי שונה: יומני הביקורת מחזירים שדה protoPayload במקום jsonPayload.
    • שמות מלאים של משאבים: יומני הביקורת מחזירים שמות של משאבים שכוללים את הנתיב שלהם, לדוגמה: projects/my-project/zones/us-east1-b/instances/my-instance-name.
    • שמות של methods עם גרסאות: יומני הביקורת מחזירים שמות של methods שכוללים את הגרסה שלהן, לדוגמה, v1.

בדוגמה הבאה מוצגים הבדלים בשמות של יומנים ובמטענים ייעודיים (payloads):

דוגמה לרשומה ביומן
יומן פעילות מדור קודם
{
  insertId:  "1x3bbhjg2wwvz1x"
  jsonPayload: {
    event_subtype: "compute.instances.stop"
    ...
    resource: {
      id: "12345678900123456789"
      name: "my-instance-name"
      type: "instance"
      zone: "us-east1-b"
    }
    ...
  }
  labels: {…}
  logName:  "projects/my-project/logs/compute.googleapis.com%2Factivity_log"
  receiveTimestamp:  "2019-08-26T12:22:44.602794616Z"
  ...
}
יומן ביקורת
{
  insertId:  "-w6o499e22fwk"
  logName:  "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity"
  protoPayload: {
    ...
    methodName: "beta.compute.instances.stop"
    ...
    resourceName: "projects/my-project/zones/us-east1-b/instances/my-instance-name"
  }
  receiveTimestamp:  "2019-08-26T12:22:46.881198276Z"
  ...
}

מיפוי שדות מיומני פעילות ליומני ביקורת

הטבלאות הבאות יעזרו לכם למפות את השדות ביומן הפעילות לשדות התואמים ביומן הביקורת בשאילתות שלכם.

שדות

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

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

שדה יומן פעילות מדור קודם שדה ביומן הביקורת
insertId insertId
jsonPayload.actor.user protoPayload.authenticationInfo.principalEmail
jsonPayload.event_subtype protoPayload.methodName
jsonPayload.event_timestamp_us timestamp
jsonPayload.event_type="GCE_API_CALL" operation.first="true"
jsonPayload.event_type="GCE_OPERATION_DONE" operation.last="true"
jsonPayload.request protoPayload.request
jsonPayload.operation operation
jsonPayload.resource.id resource.labels.instance_id
jsonPayload.resource.name protoPayload.resourceName
jsonPayload.resource.type resource.type
jsonPayload.resource.zone resource.labels.zone
jsonPayload.trace_id operation.id
jsonPayload.user_agent protoPayload.requestMetadata.callerSuppliedUserAgent
labels.compute.googleapis.com/resource_id resource.labels.[RESOURCE_TYPE]_id
labels.compute.googleapis.com/resource_name protoPayload.resourceName
labels.compute.googleapis.com/resource_type resource.type
labels.compute.googleapis.com/resource_zone אחת מהאפשרויות הבאות:
  • resource.labels.zone
  • resource.labels.region
  • resource.labels.location
logName logName
receiveTimestamp receiveTimestamp
resource.labels resource.labels
severity severity
timestamp timestamp

ערכי שדות

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

שמות של יומני רישום

כדי למצוא רשומה ביומן הביקורת, מחפשים logName שכולל את cloudaudit.googleapis.com.

שם יומן הביקורתתוכן היומן
יומן פעילות מדור קודםprojects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_logפעילות של אדמין ואירועי מערכת
יומן ביקורתprojects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivityפעילות של אדמין
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_eventאירועי מערכת
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_accessגישה לנתונים

מטענים ייעודיים (payloads)

בכל רשומה ביומן הביקורת, מחפשים את הסמל protoPayload במקום jsonPayload.

סוג המטען הייעודי (Payload)דוגמה למטען ייעודי
יומן פעילות מדור קודםjsonPayload
    jsonPayload: {
      actor: {…}
      event_subtype:  "compute.instances.start"
      event_timestamp_us:  "1566404493487248"
      event_type:  "GCE_API_CALL"
      ip_address:  ""
      operation: {…}
      request: {…}
      resource: {…}
      trace_id:  "operation-1566404491560-590a2f74b4705-a1ae0686-d896d772"
      user_agent:  "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"
      version:  "1.2"
    }
יומן ביקורתprotoPayload
    protoPayload: {
      @type:  "type.googleapis.com/google.cloud.audit.AuditLog"
      authenticationInfo: {…}
      methodName:  "v1.compute.instances.start"
      request: {…}
      requestMetadata: {…}
      resourceName:  "projects/my-project/zones/us-central1-a/instances/alert"
      serviceName:  "compute.googleapis.com"
    }

כדי להבין את הקשר בין מטענים ייעודיים (payloads) שונים, ואיך למפות שדות מיומן פעילות מדור קודם לשדות ביומן ביקורת, אפשר לקרוא את המאמר מיפוי שדות של רשומות ביומן.

שמות המשאבים

ביומני ביקורת, שמות משאבי ה-API (בשדה protoPayload.resourceName) הם שמות מלאים, לדוגמה:

resourceName: "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"

עדיין אפשר להשתמש בשמות חלקיים, אבל צריך לתקן את השאילתה כך שתשתמש באופרטור has (:) במקום באופרטור equals.

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

  • gcloud logging read protoPayload.resourceName:"VM_NAME"
  • gcloud logging read protoPayload.resourceName="projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"

שמות השיטות

ביומני הביקורת, שמות ה-method של ה-API (בשדה protoPayload.methodName) מופיעים עם קידומת של הגרסה, למשל: v1.compute.instances.delete.

שדהערךדוגמה לשאילתה
יומן פעילות מדור קודםjsonPayload.event_subtypeRESOURCE.METHODjsonPayload.event_subtype=compute.instances.delete
יומן ביקורתprotoPayload.methodNameAPI_VERSION.RESOURCE.METHODprotoPayload.methodName=v1.compute.instances.delete
או
protoPayload.methodName=beta.compute.instances.delete
או
protoPayload.methodName:compute.instances.delete

עדיין אפשר להשתמש בשמות שיטות ללא ציון גרסה בשאילתות ביומן הביקורת, אבל צריך לתקן את השאילתה כך שתשתמש באופרטור has (:) במקום באופרטור equals (=). לדוגמה: protoPayload.methodName:compute.instances.delete מחזיר את כל הקריאות ל-API למחיקת מופעים, ללא קשר לגרסה. מידע נוסף על אופרטורים זמין במאמר בנושא השוואות.

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