Menulis dan mengkueri entri log dengan gcloud CLI

Dokumen ini memperkenalkan Anda pada beberapa kemampuan Cloud Logging dan menunjukkan cara melakukan hal berikut:

  • Menulis entri log menggunakan Google Cloud CLI.
  • Membuat daftar entri log menggunakan gcloud CLI.
  • Mencantumkan entri log dengan menggunakan Logging API.
  • Lihat dan buat kueri entri log menggunakan Logs Explorer.

Sebelum memulai

Anda harus memiliki project Google Cloud dengan penagihan yang diaktifkan untuk menyelesaikan panduan memulai ini. Jika Anda tidak memiliki project Google Cloud, atau tidak mengaktifkan penagihan untuk project Google Cloud Anda, lakukan langkah berikut:
  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  5. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

Memulai

Gcloud CLI memiliki sekelompok perintah, gcloud logging, yang menyediakan antarmuka command line ke Cloud Logging API.

Anda dapat menggunakan lingkungan Cloud Shell atau instance virtual machine (VM) Compute Engine untuk perintah gcloud CLI di panduan memulai ini. Gcloud CLI sudah diinstal sebelumnya di lingkungan Cloud Shell.

Cloud Shell

Pastikan bahwa gcloud CLI dikonfigurasi untuk menggunakan project Google Cloud yang benar:

  1. Dari Konsol Google Cloud, klik Activate Cloud Shell:

    Screenshot tombol Cloud Shell di Konsol Google Cloud.

    Cloud Shell akan terbuka di jendela dan menampilkan pesan selamat datang. Pesan selamat datang menggemakan project ID yang dikonfigurasi:

    Screenshot Cloud Shell yang menampilkan pesan selamat datang.

  2. Jika Anda ingin menggunakan project Google Cloud yang berbeda dari yang tercantum dalam pesan selamat datang, jalankan perintah berikut setelah mengganti PROJECT_ID dengan project ID Anda:

       gcloud config set project PROJECT_ID
       

    Untuk mendapatkan project ID, lihat Mengidentifikasi project.

VM instance

Untuk membuat instance VM Compute Engine di Konsol Google Cloud, ikuti langkah-langkah berikut:

  1. Dari Konsol Google Cloud, pilih Compute Engine, lalu pilih VM instances.

  2. Pilih Create instance.

  3. Di bagian Identity and API access di bagian Access scope, pilih Set access for each API.

  4. Scroll API hingga Anda menemukan Stackdriver Logging API. Alihkan akses ke Penuh.

  5. Tetap gunakan nilai default untuk setelan lainnya, lalu klik Create. Instance VM Anda siap digunakan.

  6. Klik SSH untuk menghubungkan ke shell instance VM Anda. Setelah beberapa saat, shell Debian GNU/Linux akan terbuka di jendela dan menampilkan pesan selamat datang.

  7. Jalankan perintah berikut untuk memverifikasi bahwa gcloud CLI dikonfigurasi untuk project Compute Engine Anda:

    gcloud config list
    
  8. Jika Anda ingin menggunakan project Google Cloud lain, jalankan perintah berikut setelah mengganti PROJECT_ID dengan project ID Anda:

      gcloud config set project PROJECT_ID
      

    Untuk mendapatkan project ID, lihat Mengidentifikasi project.

Menulis entri log dengan menggunakan gcloud CLI

Logging mendukung entri log dengan data terstruktur dan tidak terstruktur. Data terstruktur terdiri dari struktur data JSON; misalnya, {"weather": "partly cloudy"}. Data tidak terstruktur adalah string karakter; misalnya, "A simple entry". Pada langkah selanjutnya, Anda akan menggunakan gcloud CLI untuk menulis entri log dengan data tidak terstruktur dan entri log dengan data terstruktur:

  1. Tulis entri log dengan data tidak terstruktur ke log my-test-log:

    gcloud logging write my-test-log "A simple entry."
    

    Setelah perintah selesai, Anda akan melihat pesan: Created log entry.

  2. Tulis entri log dengan data terstruktur ke log my-test-log:

    gcloud logging write --payload-type=json my-test-log '{ "message": "My second entry", "weather": "partly cloudy"}'
    

    Saat menulis entri log dengan data terstruktur, Anda harus menyertakan --payload-type=json. Jika Anda menghapus kolom ini, Logging akan menafsirkan payload sebagai data yang tidak terstruktur.

Jika log my-test-log tidak ada, Logging akan membuat log saat entri log diterima.

Membuat daftar entri log menggunakan gcloud CLI

Anda dapat mengambil entri log dari Logging dan menampilkannya menggunakan gcloud CLI. Misalnya, untuk mengambil dan menampilkan entri log dengan jenis resource global, jalankan perintah berikut:

gcloud logging read "resource.type=global"

Perintah tersebut menampilkan hasil yang mirip dengan yang berikut ini:

---
insertId: jpj9zjf73t1mn
jsonPayload:
  message: My second entry
  weather: partly cloudy
logName: projects/myloggingproject/logs/my-test-log
receiveTimestamp: '2018-11-01T18:39:31.114507977Z'
resource:
  labels:
    project_id: myloggingproject
  type: global
timestamp: '2018-11-01T18:39:31.114507977Z'
---
insertId: vd4m1if7h7u1a
logName: projects/myloggingproject/logs/my-test-log
receiveTimestamp: '2018-11-01T18:39:19.718100792Z'
resource:
  labels:
    project_id: myloggingproject
  type: global
textPayload: A simple entry
timestamp: '2018-11-01T18:39:19.718100792Z'

Mencantumkan entri log dengan APIs Explorer

Untuk menjalankan metode Logging API tanpa menulis kode apa pun, lihat Menggunakan APIs Explorer. Untuk membaca daftar entri log dari Logging, lakukan langkah berikut:

  1. Buka halaman referensi API untuk metode API entries.list:

    Buka halaman entry.list API

  2. Konfigurasikan dan jalankan perintah API:

    1. Ganti PROJECT_ID di teks berikut:

      "resourceNames": [
      "projects/PROJECT_ID"
      ],
      "filter": "resource.type=global",
      "orderBy": "timestamp desc"
      
    2. Salin teks yang telah diperbarui dari langkah sebelumnya, lalu tempelkan ke kolom Isi permintaan pada APIs Explorer.

    3. Klik Jalankan.

    Metode ini menampilkan respons yang mirip dengan berikut ini:

    {
      "entries": [
        {
          "textPayload": "A simple entry",
          "insertId": "vd4m1if7h7u1a",
          "resource": {
            "type": "global",
            "labels": {
              "project_id": "myloggingproject"
            }
          },
          "timestamp": "2018-11-01T18:39:19.718100792Z",
          "logName": "projects/myloggingproject/logs/my-test-log",
          "receiveTimestamp": "2018-11-01T18:39:19.718100792Z"
        },
        {
          "insertId": "jpj9zjf73t1mn",
          "jsonPayload": {
            "message": "My second entry",
            "weather": "partly cloudy"
          },
          "resource": {
            "type": "global",
            "labels": {
              "project_id": "myloggingproject"
            }
          },
          "timestamp": "2018-11-01T18:39:31.114507977Z",
          "logName": "projects/myloggingproject/logs/my-test-log",
          "receiveTimestamp": "2018-11-01T18:39:31.114507977Z"
        }
      ]
    }
    

Melihat entri log di Logs Explorer

Untuk melihat entri log di konsol Google Cloud, Anda dapat menggunakan Logs Explorer. Sebagian besar project Google Cloud menyimpan log dalam jumlah besar. Anda dapat memilih entri log tertentu dengan menulis kueri.

Untuk melihat entri log yang Anda tulis menggunakan Logs Explorer, lakukan langkah berikut:

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

    Buka Logs Explorer

    Pastikan project Google Cloud Anda dipilih di menu navigasi Google Cloud. Jika perlu, gunakan menu drop-down project Google Cloud untuk memilih project Google Cloud Anda.

  2. Di menu Resource, pilih Global.

    Jika Anda tidak melihat opsi menu Global atau jika Anda tidak melihat entri log, tunggu beberapa menit dan muat ulang halaman. Perlu waktu beberapa menit agar Logging dapat menerima entri log.

  3. Untuk menampilkan detail entri log, klik Menu.

    Data entri log pertama disimpan di textPayload. Entri log kedua berisi data terstruktur yang disimpan di jsonPayload. Payload terstruktur berisi kunci message dan weather.

Untuk mengetahui informasi tentang format data entri log, lihat jenis LogEntry.

Entri log kueri di Logs Explorer

Anda dapat membuat kueri entri log dengan menggunakan editor kueri dan, dengan log terstruktur, berdasarkan kunci dan nilai. Misalnya, untuk menampilkan semua entri log yang berisi teks simple, lakukan hal berikut:

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

    Buka Logs Explorer

  2. Di menu Resource, pilih Global.

  3. Di editor kueri, masukkan string simple dalam tanda kutip. Layar log hanya menampilkan entri log A simple entry.

  4. Setelah Anda melihat log, hapus string kueri yang telah ditambahkan, lalu klik Run query. Kedua entri log akan muncul kembali di tampilan.

Untuk menampilkan semua entri log dengan data terstruktur yang memiliki kunci weather dengan kolom value berisi partly, lakukan hal berikut:

  1. Editor kueri berisi baris resource.type="global". Masukkan perintah berikut:

    jsonPayload.weather:partly
    
  2. Klik Jalankan kueri. Hasilnya adalah entri log tunggal My second entry.

Logs Explorer juga menawarkan kueri yang disimpan, disarankan, dan terbaru. Untuk mengetahui informasi lebih lanjut tentang kueri, lihat Membuat kueri di Logs Explorer.

Untuk contoh kueri, lihat Contoh kueri menggunakan Logs Explorer.

Pemecahan masalah

  • Error tipografi dan nama kolom yang tidak diketahui menyebabkan perintah gcloud CLI diselesaikan dengan pesan argumen tidak valid. Misalnya, jika Anda lupa titik di resource.type, hal ini akan menghasilkan error:

     ERROR: (gcloud.logging.read) INVALID_ARGUMENT: Field not found: 'resourcetype'.
    
  • Jika Cloud Logging belum diberi izin akses yang diperlukan, perintah gcloud CLI akan diselesaikan dengan pesan izin ditolak. Misalnya, jika instance VM Compute Engine dikonfigurasi dengan setelan API default, perintah list akan selesai dengan error izin ditolak:

     ERROR: (gcloud.logging.read) PERMISSION_DENIED: Request had insufficient authentication scopes.
    

    Untuk memperbaiki kondisi ini, ubah izin instance VM Compute Engine Anda untuk memberikan izin baca Cloud Logging dengan melakukan hal berikut:

    1. Buka halaman Detail instance VM untuk instance VM Anda. Klik Hentikan. Mungkin perlu waktu satu atau dua menit untuk menyelesaikan tindakan ini.
    2. Untuk mengubah konfigurasi, klik Edit.
    3. Telusuri header Cloud API access scope, lalu klik Details untuk menampilkan setelan setiap API. Ubah entri dari Cloud Logging API menjadi Full. Klik Save.
    4. Untuk memulai ulang instance VM Anda, klik Start. Setelah beberapa saat, VM Anda siap digunakan.
  • Jika APIs Explorer tidak dapat menyelesaikan perintah Anda, atau memerlukan otorisasi tambahan, akan ditampilkan pesan atau kode error:

    • Kode respons 200 dan tidak ada entri: Jika pesan nextPageToken ditampilkan, ini menunjukkan bahwa APIs Explorer tidak memiliki waktu untuk menyelesaikan penelusuran. Tambahkan pageToken ke permintaan Anda, setel nilai agar sama dengan yang diberikan dengan kunci nextPageToken, lalu coba lagi perintah tersebut.
    • Kode respons 400: Nilai kueri tidak valid. Misalnya, jika Anda salah mengeja global sebagai gloobal, maka pesannya adalah Unsupported resource type: gloobal.
    • Kode respons 404: Project ID tidak valid. Periksa ejaan project ID Anda.
    • Anda mungkin diminta untuk login ke Akun Google Anda dan mengizinkan APIs Explorer mengakses akun Anda.

Pembersihan

Agar akun Google Cloud Anda tidak dikenakan biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.

  1. (Opsional) Untuk menghapus entri log yang Anda buat, jalankan perintah gcloud berikut:

    gcloud logging logs delete my-test-log
    

    Jika Anda tidak menghapus entri log, entri log tersebut akan kedaluwarsa dan akan dihapus. Untuk mengetahui informasi retensi, lihat Kuota & batas.

Langkah selanjutnya