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:- 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.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
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:
Dari Konsol Google Cloud, klik Activate Cloud Shell:
Cloud Shell akan terbuka di jendela dan menampilkan pesan selamat datang. Pesan selamat datang menggemakan project ID yang dikonfigurasi:
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:
Dari Konsol Google Cloud, pilih Compute Engine, lalu pilih VM instances.
Pilih Create instance.
Di bagian Identity and API access di bagian Access scope, pilih Set access for each API.
Scroll API hingga Anda menemukan Stackdriver Logging API. Alihkan akses ke Penuh.
Tetap gunakan nilai default untuk setelan lainnya, lalu klik Create. Instance VM Anda siap digunakan.
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.
Jalankan perintah berikut untuk memverifikasi bahwa gcloud CLI dikonfigurasi untuk project Compute Engine Anda:
gcloud config list
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:
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
.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:
Buka halaman referensi API untuk metode API
entries.list
:Konfigurasikan dan jalankan perintah API:
Ganti PROJECT_ID di teks berikut:
"resourceNames": [ "projects/PROJECT_ID" ], "filter": "resource.type=global", "orderBy": "timestamp desc"
Salin teks yang telah diperbarui dari langkah sebelumnya, lalu tempelkan ke kolom Isi permintaan pada APIs Explorer.
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:
-
Di panel navigasi konsol Google Cloud, pilih Logging, lalu pilih 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.
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.
Untuk menampilkan detail entri log, klik chevron_right Menu.
Data entri log pertama disimpan di
textPayload
. Entri log kedua berisi data terstruktur yang disimpan dijsonPayload
. Payload terstruktur berisi kuncimessage
danweather
.
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:
-
Di panel navigasi konsol Google Cloud, pilih Logging, lalu pilih Logs Explorer:
Di menu Resource, pilih Global.
Di editor kueri, masukkan string
simple
dalam tanda kutip. Layar log hanya menampilkan entri logA simple entry.
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:
Editor kueri berisi baris
resource.type="global"
. Masukkan perintah berikut:jsonPayload.weather:partly
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:
- Buka halaman Detail instance VM untuk instance VM Anda. Klik Hentikan. Mungkin perlu waktu satu atau dua menit untuk menyelesaikan tindakan ini.
- Untuk mengubah konfigurasi, klik Edit.
- Telusuri header Cloud API access scope, lalu klik Details untuk menampilkan setelan setiap API. Ubah entri dari Cloud Logging API menjadi Full. Klik Save.
- 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. TambahkanpageToken
ke permintaan Anda, setel nilai agar sama dengan yang diberikan dengan kuncinextPageToken
, lalu coba lagi perintah tersebut. - Kode respons 400: Nilai kueri tidak valid. Misalnya, jika Anda salah mengeja
global
sebagaigloobal
, maka pesannya adalahUnsupported 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.
- Kode respons 200 dan tidak ada entri: Jika pesan
Pembersihan
Agar akun Google Cloud Anda tidak dikenakan biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
(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
- Untuk mengetahui detail tentang antarmuka command line Logging, baca halaman referensi untuk grup perintah
gcloud logging
. - Untuk dokumentasi tentang Logging API, lihat Cloud Logging API.
- Untuk mengetahui detail tentang Logs Explorer, lihat Menggunakan Logs Explorer.
- Untuk mempelajari cara mengumpulkan entri log dari instance VM Anda di Logging, lihat Agen kemampuan observasi Google Cloud.