Mengonfigurasi tampilan log di bucket log

Dokumen ini menjelaskan cara membuat dan mengelola tampilan log di bucket Cloud Logging menggunakan gcloud CLI. Tampilan log memberi Anda kontrol lanjutan dan terperinci atas siapa yang memiliki akses ke log dalam bucket log Anda.

Untuk informasi umum tentang model penyimpanan Logging, lihat Ringkasan pemilihan rute dan penyimpanan.

Tentang tampilan log

Dengan tampilan log, Anda dapat memberi pengguna akses hanya ke subset log yang disimpan di bucket log. Misalnya, pertimbangkan skenario di mana Anda menyimpan log organisasi Anda di sebuah project pusat. Anda dapat membuat satu tampilan log untuk setiap project yang memberikan kontribusi log ke bucket log. Selanjutnya, Anda dapat memberi setiap pengguna akses ke satu atau beberapa tampilan log, sehingga membatasi log mana yang dapat dilihat pengguna.

Cloud Logging secara otomatis membuat tampilan _AllLogs untuk setiap bucket log dan tampilan _Default untuk bucket log _Default:

  • Tampilan _AllLogs: Anda dapat melihat semua log di bucket log.
  • Tampilan _Default: Anda dapat melihat semua log audit non-Akses Data di bucket log.

Anda tidak dapat mengubah tampilan yang dibuat otomatis oleh Cloud Logging; tetapi Anda dapat menghapus tampilan _AllLogs.

Anda dapat membuat maksimal 30 tampilan log per bucket log.

Setiap tampilan log berisi filter, yang membatasi entri log yang terlihat dalam tampilan. Filter dapat berisi operator AND dan NOT yang logis; namun, filter tersebut tidak dapat menyertakan operator OR yang logis. Filter dapat membandingkan salah satu nilai berikut:

  • Sumber data menggunakan fungsi source. Fungsi source menampilkan entri log dari resource tertentu dalam hierarki organisasi, folder, dan project Google Cloud.

  • ID log yang menggunakan fungsi log_id. Fungsi log_id menampilkan entri log yang cocok dengan argumen LOG_ID yang diberikan dari kolom logName.

  • Jenis resource yang valid menggunakan perbandingan resource.type= FIELD_NAME.

Misalnya, filter berikut menangkap entri log stdout Compute Engine dari project Google Cloud yang disebut myproject:

source("projects/myproject") AND resource.type = "gce_instance" AND log_id("stdout")

Untuk mengetahui detail tentang sintaksis pemfilteran, lihat Perbandingan.

Sebelum memulai

Sebelum Anda membuat atau memperbarui tampilan log, selesaikan langkah-langkah berikut:

  1. Jika Anda belum melakukannya, di project Google Cloud yang sesuai, buat bucket Logging yang tampilan log kustomnya ingin Anda konfigurasi.

  2. Untuk mendapatkan izin yang diperlukan untuk membuat, melihat, memperbarui, dan menghapus tampilan log, minta administrator untuk memberi Anda peran IAM Logs Configuration Writer (roles/logging.configWriter) di project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

  3. Instal Google Cloud CLI.

  4. Tentukan log yang ingin Anda sertakan dalam tampilan. Anda menggunakan informasi ini untuk menentukan filter tampilan log.

  5. Tentukan siapa yang memiliki akses ke tampilan log. Principal dengan peran roles/logging.viewAccessor dapat melihat log dalam tampilan log mana pun. Namun, Cloud Logging mendukung kondisi IAM. Kondisi memungkinkan Anda memberikan akses utama ke tampilan log tertentu. Untuk mengetahui informasi selengkapnya, lihat Memberikan akses ke tampilan log.

Membuat tampilan log

Untuk membuat tampilan log, gunakan perintah gcloud logging views update. Anda dapat membuat maksimal 30 tampilan log per bucket log.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • VIEW_ID: ID tampilan log.
  • BUCKET_NAME: Nama bucket log.
  • LOCATION: Lokasi bucket log.
  • FILTER: Filter yang menentukan tampilan log. Jika kosong, tampilan log akan menyertakan semua log. Misalnya, untuk memfilter menurut log instance VM Compute Engine, masukkan "resource.type=gce_instance".
  • DESCRIPTION: Deskripsi tampilan log. Misalnya, Anda dapat memasukkan kode berikut untuk deskripsi "Compute logs".

Jalankan perintah gcloud logging views create :

Linux, macOS, atau Cloud Shell

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (PowerShell)

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (cmd.exe)

gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Perintah ini tidak memberikan respons. Untuk mengonfirmasi perubahan, Anda dapat menjalankan perintah gcloud logging views list.

Mencantumkan tampilan log di bucket log

Untuk menampilkan daftar tampilan log yang dibuat untuk bucket log, gunakan perintah gcloud logging views list.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • BUCKET_NAME: Nama bucket log.
  • LOCATION: Lokasi bucket log.

Jalankan perintah gcloud logging views list :

Linux, macOS, atau Cloud Shell

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION

Data respons adalah daftar tampilan log. Untuk setiap tampilan log, filter ditampilkan bersama dengan tanggal pembuatan dan pembaruan terakhir. Jika tanggal pembuatan dan pembaruan kosong, tampilan log akan dibuat saat project Google Cloud dibuat. Contoh output berikut menunjukkan bahwa ada dua ID tampilan, _AllLogs dan compute, pada bucket log yang dikueri:

VIEW_ID: _AllLogs
FILTER:
CREATE_TIME:
UPDATE_TIME:

VIEW_ID: compute
FILTER: resource.type="gce_instance"
CREATE_TIME: 2024-02-20T17:41:17.405162921Z
UPDATE_TIME: 2024-02-20T17:41:17.405162921Z

Memberikan akses ke tampilan log

Principal dengan peran roles/logging.viewAccessor pada project Google Cloud dapat melihat log dalam tampilan log apa pun. Namun, Cloud Logging mendukung kondisi IAM. Kondisi memungkinkan Anda memberikan akses utama ke tampilan log tertentu.

Kondisi IAM ditentukan dalam binding peran untuk project Google Cloud. Ada batas 20 binding peran dalam kebijakan izin yang mencakup peran yang sama dan akun utama yang sama, tetapi ekspresi kondisinya berbeda.

Untuk menambahkan pengguna ke tampilan yang memungkinkan mereka mengakses log, selesaikan langkah-langkah berikut.

gcloud

  1. Mendapatkan kebijakan IAM project dan menulisnya ke file lokal dalam format JSON. Sebelum menjalankan perintah berikut, ganti PROJECT_ID dengan ID project yang berisi bucket log:

    gcloud projects get-iam-policy PROJECT_ID --format json > output.json
    
  2. Edit file JSON yang Anda buat, dan tambahkan kondisi IAM yang memungkinkan pengguna membaca dari bucket log yang Anda buat.

    Misalnya, contoh berikut menetapkan binding yang memberikan peran "roles/logging.viewAccessor" kepada anggota yang ditentukan, tetapi hanya untuk satu tampilan log:

    {
      "bindings": [
        {
          "members": [
            "user:username@gmail.com"
          ],
          "role": "roles/logging.viewAccessor",
          "condition": {
              "title": "Bucket reader condition example",
              "description": "Grants logging.viewAccessor role to user username@gmail.com for the VIEW_ID log view.",
              "expression":
                "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\""
          }
        }
      ],
      "etag": "BwWd_6eERR4=",
      "version": 3
    }
  3. Perbarui kebijakan IAM:

    gcloud projects set-iam-policy PROJECT_ID output.json
    

Konsol

Pada project tempat Anda membuat bucket log, lakukan hal berikut:

  1. Pada panel navigasi Konsol Google Cloud, pilih IAM:

    Buka IAM

  2. Klik Berikan akses.

  3. Di kolom New principals, tambahkan akun email pengguna.

  4. Di menu drop-down Pilih peran, pilih Logs View Accessor.

    Peran ini memberi pengguna akses baca ke semua tampilan. Untuk membatasi akses pengguna ke tampilan tertentu, tambahkan kondisi berdasarkan nama resource.

    1. Klik Tambahkan kondisi IAM.

    2. Masukkan Judul dan Deskripsi untuk kondisi.

    3. Di menu drop-down Jenis kondisi, pilih Resource > Nama.

    4. Di menu drop-down Operator, pilih adalah.

    5. Di kolom Value, masukkan ID tampilan log, termasuk jalur lengkap ke tampilan.

      Contoh:

      projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID
    6. Klik Simpan untuk menambahkan kondisi tersebut.

  5. Klik Save untuk menetapkan izin.

Memperbarui tampilan log

Untuk memperbarui atau mengubah tampilan log, gunakan perintah gcloud logging views update. Jika Anda tidak mengetahui ID tampilan, lihat Menampilkan daftar tampilan log.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • VIEW_ID: ID tampilan log.
  • BUCKET_NAME: Nama bucket log.
  • LOCATION: Lokasi bucket log.
  • FILTER: Filter yang menentukan tampilan log. Jika kosong, tampilan log akan menyertakan semua log. Misalnya, untuk memfilter menurut log instance VM Compute Engine, masukkan "resource.type=gce_instance".
  • DESCRIPTION: Deskripsi tampilan log. Misalnya, Anda dapat memasukkan kode berikut untuk deskripsi "New description for the log view".

Jalankan perintah gcloud logging views update :

Linux, macOS, atau Cloud Shell

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (PowerShell)

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Windows (cmd.exe)

gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION

Perintah ini tidak memberikan respons. Untuk mengonfirmasi perubahan, Anda dapat menjalankan perintah gcloud logging views describe.

Menghapus tampilan log

Untuk menghapus tampilan log, gunakan perintah gcloud logging views delete. Jika Anda tidak mengetahui ID tampilan, lihat Menampilkan daftar tampilan log.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • VIEW_ID: ID tampilan log.
  • BUCKET_NAME: Nama bucket log.
  • LOCATION: Lokasi bucket log.

Jalankan perintah gcloud logging views delete :

Linux, macOS, atau Cloud Shell

gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Respons mengonfirmasi penghapusan. Misalnya, contoh berikut menunjukkan respons terhadap penghapusan tampilan log bernama tester:

Deleted [tester].

Menjelaskan tampilan log

Untuk mengambil informasi mendetail tentang tampilan log, gunakan perintah gcloud logging views describe. Jika Anda tidak mengetahui ID tampilan, lihat Menampilkan daftar tampilan log.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • VIEW_ID: ID tampilan log.
  • BUCKET_NAME: Nama bucket log.
  • LOCATION: Lokasi bucket log.

Jalankan perintah gcloud logging views describe :

Linux, macOS, atau Cloud Shell

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (PowerShell)

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Windows (cmd.exe)

gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION

Respons selalu menyertakan deskripsi dan nama tampilan log yang sepenuhnya memenuhi syarat. Kolom ini juga menyertakan filter, saat kolom filter tidak kosong. Berikut adalah contoh respons:

createTime: '2024-02-20T17:41:17.405162921Z'
filter: resource.type="gce_instance"
name: projects/my-project/locations/global/buckets/my-bucket/views/compute
updateTime: '2024-02-20T17:41:17.405162921Z'

Melihat log yang terkait dengan tampilan log

Untuk melihat log dalam tampilan log, pastikan Anda memiliki peran Logs View Accessor (roles/logging.viewAccessor) untuk tampilan log:

  1. Di panel navigasi konsol Google Cloud, pilih Logging, lalu pilih Logs Explorer:

    Buka Logs Explorer

  2. Klik Pertajam cakupan untuk menampilkan panel Pertajam cakupan. Dari sini, Anda dapat memilih bucket log dan tampilan log yang ingin digunakan untuk melihat log.

Panel Saring cakupan

Untuk mengetahui informasi selengkapnya, lihat dokumentasi Logs Explorer.

Langkah selanjutnya

Konfigurasikan akses tingkat kolom.