Hai!

Pada jurnal ini saya tidak khusus membahas mengenai sebuah materi. Tapi sebuah skenario bagaimana mendapatkan log di instance GCE menggunakan GCE Stackdriver Logging Aggent dan log tersebut otomatis tersimpan di bucket GCS. Bingung?

Okay, langsung saja kita mulai. Perlahan-lahan semoga bisa paham.

Pertama, kita buat bucket nya terlebih dahulu. Untuk langkah pembuatan bucket di GCS bisa merujuk pada jurnal Google Cloud: Setting Up Buckets in Google Cloud Storage (GCS) dan Google Cloud: GCS via gsutil Command. Jika sudah ada, tidak usah buat baru tidak apa-apa.

Bucket yang saya miliki:

Catat nama bucketnya: misskecupbung-bucket-01.

Selanjutnya, kita buat instance baru. Dimana log dari instance ini nantinya yang akan disimpan di bucket. Langkah-langkah pembuatan instance bisa merujuk ke jurnal Google Cloud : Create a Virtual Machine with Console and gcloud Command Line dengan beberapa penyesuaian.

Dari dashboard klik Navigation Menu > Compute Engine > VM Instances. Tampilannya seperti di bawah ini. Klik create.

Untuk nama instance, region dan zone saya biarkan default. Untuk tipe mesin saya pilih terkecil yaitu f1-micro. Agar hasil stress test nya lebih terlihat. Lalu scroll kebawah.

Untuk sistem operasi saya pilih Debian 10. Identitiy and API access biarkan default. Untuk access scopes pilih Set access for each API.

Untuk API Stackdriver Logging API, Stackdriver Monitoring API, dan Stackdriver Trace saat jurnal ini ditulis secara default sudah write only. Jika belum bisa diubah. Untuk Storage pilih Write Only yang bertujuan agar dapat menyimpan log otomatis nya ke bucket.

Lalu klik Management, security, disks, networking, sole tenancy.

Kita fokus ke startup script, tambahkan script berikut:

#! /bin/bash

# Echo commands as they are run, to make debugging easier.
set -x

# Stop apt-get calls from trying to bring up UI.
export DEBIAN_FRONTEND=noninteractive

# Make sure installed packages are up to date with all security patches.
apt-get -yq update
apt-get -yq upgrade

# Install Google's Stackdriver logging agent, as per
# https://cloud.google.com/logging/docs/agent/installation
curl -sSO https://dl.google.com/cloudagents/install-logging-agent.sh
bash install-logging-agent.sh

# Install and run the "stress" tool to max the CPU load for a while.
apt-get -yq install stress
stress -c 8 -t 120

# Report that we're done.

# Metadata should be set in the "lab-logs-bucket" attribute using the "gs://mybucketname/" format.
log_bucket_metadata_name=lab-logs-bucket
log_bucket_metadata_url="http://metadata.google.internal/computeMetadata/v1/instance/attributes/${log_bucket_metadata_name}"
worker_log_bucket=$(curl -H "Metadata-Flavor: Google" "${log_bucket_metadata_url}")

# We write a file named after this machine.
worker_log_file="machine-$(hostname)-finished.txt"
echo "Phew!  Work completed at $(date)" >"${worker_log_file}"

# And we copy that file to the bucket specified in the metadata.
echo "Copying the log file to the bucket..."
gsutil cp "${worker_log_file}" "${worker_log_bucket}"

Penjelasan: pertama kita update dan upgrade paket debian ke latest version, lalu install the Google’s Stackdriver logging agent. Ini berfungsi sebagai agent untuk mengirimkan log.

Lalu install paket stress dan jalankan stress selama 120 detik yang mana nanti utilisasi CPU akan terlihat di monitoring. Selanjutnya kita buat file .txt dan lempar ke bucket.

Untuk definisi metadata:

  • key: lab-logs-bucket
  • value: gs://{bucket_name}/

Perhatikan bahwa metadata ini berkaitan dengan script dari baris ke 24 ke bawah:)

Lalu bisa klik Create.

Setelah instance terbuat, kita akan melakukan tiga verifikasi. Pertama verifikasi utilisasi CPU, kedua Log, dan terakhir apakah file .txt tersimpan di bucket atau tidak.

Klik nama instance.

Setelah masuk ke VM instance details, untuk verifikasi pertama yaitu log instance. Klik Cloud Logging. Klik open link in new tab ya. Untuk verifikasi kedua yaitu monitoring CPU utilisasi klik tab Monitoring.

Kita perlu menunggu sampai proses selesai kira-kira lima menit. Verifikasi pertama akan terlihat seperti di bawah ini. Seluruh log akan terlihat disini. Perhatikan proses stress yang berjalan selama 120 detik.

Saat proses stress berjalan, di verifikasi kedua pada tab Monitoring kita bisa lihat utilisasi CPU yang melebihi batas. Ini hanya akan berlangsung selama proses stress berjalan dan ya.. berkat bantuan the stackdriver logging agent:)

Verifikasi ketiga yaitu ketika proses stress berakhir, maka dalam script akan membuat file .txt yang dimisalkan log dan akan tersimpan otomatis di bucket yang sudah didefinisikan di metadata.

Sekian!