Jika Anda menggunakan log aktivitas untuk melihat aktivitas admin dan peristiwa sistem Compute Engine, baca panduan ini untuk memahami cara menemukan entri log serupa menggunakan log audit.
Log aktivitas Compute Engine tidak digunakan lagi. Anda dapat mengidentifikasi entri log aktivitas berdasarkan nama log:
logName: "projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
Log audit Compute Engine berisi informasi yang sama yang tersedia melalui log aktivitas, dan banyak lagi. Namun, log audit menyajikan informasi secara berbeda dibandingkan log aktivitas. Jadi, Anda harus menyesuaikan kueri.
Cara bermigrasi dari log aktivitas ke log audit
Untuk menggunakan log audit, bukan log aktivitas, sesuaikan kueri Anda. Gunakan langkah-langkah berikut.
Temukan kueri lama Anda. Misalnya, Anda mungkin telah menyimpannya dalam penelusuran tersimpan di Logs Explorer atau membuat skrip menggunakan API atau SDK. Untuk mengetahui informasi selengkapnya tentang cara memantau resource, baca dokumentasi Logging.
Ganti kolom log aktivitas dengan kolom log audit yang sesuai. Lihat tabel untuk melihat cara kolom dipetakan satu sama lain.
Misalnya, jika kueri log aktivitas lama Anda mencari kolom bernama
jsonPayload.resource.name
, kueri log audit baru Anda akan mencariprotoPayload.resourceName
.Simpan dan gunakan kueri log audit baru Anda. Misalnya, buat penelusuran tersimpan di Cloud Logging atau update skrip Anda.
Contoh
Berikut adalah beberapa contoh kueri yang dikonversi:
Membuat kueri untuk aktivitas yang terkait dengan resource tertentu
Contoh kueri | |
---|---|
Log aktivitas lama | gcloud logging read jsonPayload.resource.name="VM_NAME"
|
Log audit | Gunakan salah satu opsi berikut
Dengan opsi 1, operator "has" ( |
Membuat kueri entri log aktivitas admin terbaru
Contoh kueri | |
---|---|
Log aktivitas lama | gcloud logging read logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
|
Log audit | gcloud logging read logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" |
Membuat kueri untuk entri log pembuatan instance terbaru
Contoh kueri | |
---|---|
Log aktivitas lama | gcloud logging read 'logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log" AND jsonPayload.event_subtype="compute.instances.insert"' |
Log audit | gcloud logging read 'logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.methodName:"compute.instances.insert"' |
Membuat kueri untuk awal semua operasi pembuatan instance
Contoh kueri | |
---|---|
Log aktivitas lama | gcloud logging read 'jsonPayload.event_type="GCE_API_CALL" AND jsonPayload.event_subtype="compute.instances.insert"' |
Log audit | gcloud logging read 'operation.first="true" AND protoPayload.methodName:"compute.instances.insert"' |
Membuat kueri untuk penyelesaian operasi apa pun
Contoh kueri | |
---|---|
Log aktivitas lama | gcloud logging read jsonPayload.event_type="GCE_OPERATION_DONE" |
Log audit | gcloud logging read operation.last="true" |
Perbedaan antara log aktivitas dan log audit
Baca bagian ini untuk mempelajari bagaimana struktur log audit disusun secara berbeda dengan log aktivitas. Ingatlah perbedaan ini saat Anda mengonversi kueri log aktivitas lama menjadi kueri log audit. Misalnya, di kueri, ganti semua nama kolom log aktivitas lama dengan nama kolom log audit yang sesuai.
Meskipun logging audit dan logging aktivitas menampilkan objek entri log, keduanya memiliki perbedaan berikut:
- Nama kolom yang berbeda. Lihat tabel pemetaan nama kolom untuk mengetahui detailnya.
- Nilai kolom yang berbeda, termasuk:
- Nama log yang berbeda: Log audit memiliki nama log yang berisi
cloudaudit.googleapis.com
. - payloads berbeda: Log audit menampilkan kolom
protoPayload
, bukanjsonPayload
. - Nama resource yang sepenuhnya memenuhi syarat: Log audit menampilkan
nama resource yang menyertakan jalurnya, misalnya:
projects/my-project/zones/us-east1-b/instances/my-instance-name
. - Nama metode dengan versi: Log audit menampilkan nama metode
yang menyertakan versinya, misalnya,
v1
.
- Nama log yang berbeda: Log audit memiliki nama log yang berisi
Berikut ini contoh yang menunjukkan perbedaan nama log dan payload:
Contoh entri log | |
---|---|
Log aktivitas lama | { 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" ... } |
Log audit | { 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" ... } |
Memetakan kolom dari log aktivitas ke log audit
Gunakan tabel berikut untuk memetakan kolom log aktivitas ke kolom log audit yang sesuai di kueri Anda.
Kolom
Gunakan tabel berikut untuk mengganti kolom log aktivitas lama dengan kolom log audit di kueri yang telah diperbarui.
Misalnya, jika kueri log aktivitas lama Anda berisi
filter berdasarkan
jsonPayload.resource.type
, kueri log audit baru Anda harus memfilter
resource.type
.
Kolom log aktivitas lama | Kolom log audit |
---|---|
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 |
Salah satu dari:
|
logName |
logName |
receiveTimestamp |
receiveTimestamp |
resource.labels |
resource.labels |
severity |
severity |
timestamp |
timestamp |
Nilai kolom
Gunakan tabel berikut untuk memetakan nilai kolom log aktivitas lama ke nilai kolom log audit. Dibandingkan dengan log aktivitas, log audit memiliki beberapa nilai nama log dan nilai payload yang berbeda. Entri log audit juga menampilkan nama resource yang sepenuhnya memenuhi syarat dan nama metode berversi.
Nama log
Untuk menemukan entri log audit, cari logName
yang menyertakan
cloudaudit.googleapis.com
.
Nama log | Konten log | |
---|---|---|
Log aktivitas lama | projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log | Peristiwa sistem dan aktivitas admin |
Log audit | projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity | Aktivitas admin |
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event | Peristiwa sistem | |
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access | Akses data |
Payload
Di setiap entri log audit, cari protoPayload
, bukan jsonPayload
.
Jenis payload | Contoh payload | |
---|---|---|
Log aktivitas lama | 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" } |
Log audit | 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" } |
Untuk mempelajari hubungan antara payload ini dan cara memetakan kolom log aktivitas lama ke kolom log audit, baca pemetaan kolom entri log.
Nama resource
Dalam log audit, nama resource API (di kolom protoPayload.resourceName
)
sepenuhnya memenuhi syarat, misalnya:
resourceName: "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
Anda masih dapat menggunakan nama sebagian, tetapi Anda harus memperbaiki kueri untuk menggunakan
operator "has" (:
), bukan operator "sama dengan".
Gunakan salah satu opsi berikut di kueri log audit Anda untuk memfilter resource tertentu:
gcloud logging read protoPayload.resourceName:"VM_NAME"
gcloud logging read protoPayload.resourceName="projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"
Nama metode
Dalam log audit, nama metode API (di kolom protoPayload.methodName
)
diawali dengan versinya, seperti: v1.compute.instances.delete
.
Kolom | Nilai | Contoh kueri | |
---|---|---|---|
Log aktivitas lama | jsonPayload.event_subtype | RESOURCE.METHOD | jsonPayload.event_subtype=compute.instances.delete |
Log audit | protoPayload.methodName | API_VERSION.RESOURCE.METHOD | protoPayload.methodName=v1.compute.instances.delete atau protoPayload.methodName=beta.compute.instances.delete atau protoPayload.methodName:compute.instances.delete |
Anda masih dapat menggunakan nama metode tanpa versi dalam kueri log audit, tetapi Anda
harus memperbaiki kueri tersebut agar menggunakan operator "has" (:
), bukan operator "equals" (=
).
Misalnya: protoPayload.methodName:compute.instances.delete
menampilkan semua panggilan API penghapusan instance, berapa pun versinya. Untuk mengetahui informasi
selengkapnya tentang operator, baca
perbandingan.
Langkah selanjutnya
- Baca mulai cepat untuk menggunakan alat logging.
- Pelajari lebih lanjut cara melihat entri log.
- Pelajari cara melihat log dengan filter logging lanjutan.
- Pelajari Cloud Audit Logs Compute Engine lebih lanjut.