Menggunakan pemantauan dan logging Stackdriver untuk mendapatkan visibilitas yang lebih baik tentang kondisi aplikasi Anda

Dalam codelab ini, Anda akan mempelajari cara mulai menggunakan Stackdriver untuk memantau dan meninjau metrik performa dan log untuk layanan dan VM Google Cloud Platform.

Dalam codelab ini, Anda akan

  • Pahami halaman beranda Stackdriver.
  • Memahami dasbor dan diagram.
  • Buat cek uptime.
  • Buat kebijakan pemberitahuan sederhana.
  • Bekerja dengan insiden pemberitahuan.
  • Jelajahi Logs Viewer.

Apa pengalaman Anda dengan Stackdriver?

Pemantauan - apa itu? Saya belum pernah menggunakan Stackdriver, tetapi saya memiliki pengalaman memantau aplikasi. Saya sudah mencoba Stackdriver, tetapi belum mendalam.

Penyiapan lingkungan mandiri

Jika belum memiliki Akun Google (Gmail atau Google Apps), Anda harus membuatnya.

Login ke Konsol Google Cloud Platform (console.developers.google.com) dan buat project baru:

Ingat Project ID, nama unik di semua project Google Cloud. Project ID tersebut selanjutnya akan dirujuk di codelab ini sebagai PROJECT_ID.

Sangat Penting - Buka halaman Compute Engine untuk memulai pengaktifan Compute Engine API:

Kemudian: Compute → Compute Engine → VM Instances

Saat pertama kali melakukannya, Anda akan melihat layar dengan pesan "Compute Engine sedang bersiap. Proses ini mungkin memerlukan waktu satu menit atau lebih". Anda dapat terus login ke Google Cloud Shell di bawah, tetapi Anda tidak dapat membuat VM hingga operasi ini selesai.

Anda akan melakukan sebagian besar pekerjaan dari Google Cloud Shell, lingkungan command line yang berjalan di Cloud. Mesin virtual berbasis Debian ini memuat semua alat pengembangan yang akan Anda perlukan dan menawarkan direktori beranda yang persisten sebesar 5 GB. Buka Google Cloud Shell dengan mengklik ikon di kanan atas layar:

Terakhir, dengan menggunakan Cloud Shell, tetapkan zona dan konfigurasi project default:

$ gcloud config set compute/zone us-central1-b
$ gcloud config set compute/region us-central

Anda juga dapat memilih zona yang berbeda. Pelajari lebih lanjut tentang zona di dokumentasi Region & Zona.

Di bagian ini, Anda akan membuat instance Compute Engine yang menjalankan nginx+ menggunakan Cloud Launcher. Kita akan memerlukan instance ini untuk mendemonstrasikan pemantauan dan pemberitahuan. Anda dapat membuat instance Compute Engine dari konsol grafis atau dari command line. Lab ini akan memandu Anda menggunakan command line.

Sekarang mari kita mulai.

Gunakan gcloud untuk menetapkan project ID Anda:

$ gcloud config set project PROJECT_ID



Selanjutnya, pastikan untuk menyalin & menempelkan ini apa adanya:

$ for i in {1..3}; do \
gcloud compute instances create "nginx-plus-$i" \
--machine-type "n1-standard-1" \
--metadata  "google-cloud-marketplace-solution-key=nginx-public:nginx-plus" \
--maintenance-policy "MIGRATE" --scopes default="https://www.googleapis.com/auth/cloud-platform" \
--tags "http-server","google-cloud-marketplace" \
--image "https://www.googleapis.com/compute/v1/projects/nginx-public/global/images/nginx-plus-ubuntu1404-v20150916-final" \
--boot-disk-size "10" --boot-disk-type "pd-standard" \
--boot-disk-device-name "nginx-plus-$i"; done

Anda akan melihat pesan peringatan tentang ukuran disk, lalu output berikut saat setiap VM dibuat:

NAME         ZONE          MACHINE_TYPE  PREEMPTIBLE INTERNAL_IP EXTERNAL_IP     STATUS
nginx-plus-1 us-central1-b n1-standard-2                X.X.X.X  X.X.X.X      RUNNING
...

Catat EXTERNAL_IP - hal ini penting untuk nanti.

Operasi ini mungkin memerlukan waktu beberapa menit hingga selesai.

Secara default, Google Cloud Platform hanya mengizinkan akses beberapa port. Karena kita akan segera mengakses Nginx, aktifkan port 80 dalam konfigurasi firewall:

$ gcloud compute firewall-rules create allow-80 --allow tcp:80 --target-tags "http-server"
Created [...].
NAME     NETWORK SRC_RANGES RULES  SRC_TAGS TARGET_TAGS
allow-80 default 0.0.0.0/0  tcp:80 http-server

Tindakan ini akan membuat aturan firewall bernama allow-80 yang memiliki nilai default berikut:

  • Daftar blok alamat IP yang diizinkan untuk membuat koneksi masuk (--source-ranges) disetel ke 0.0.0.0/0 (Di mana saja).
  • Daftar tag instance yang menunjukkan kumpulan instance di jaringan yang dapat menerima koneksi masuk ditetapkan ke none, yang berarti aturan firewall berlaku untuk semua instance.

Jalankan gcloud compute firewall-rules create --help untuk melihat semua nilai default.

Setelah instance pertama dibuat, Anda dapat menguji apakah nginx berjalan dan dapat diakses dengan membuka http://EXTERNAL_IP/, dengan EXTERNAL_IP adalah IP publik nginx-plus-1 dan Anda akan dapat melihat halaman Nginx:

Anda juga dapat melihat instance yang sedang berjalan dengan mengetik:

$ gcloud compute instances list

Google Stackdriver adalah solusi pemantauan canggih yang mengintegrasikan berbagai alat untuk memfasilitasi pemantauan dan analisis aplikasi yang didukung cloud. Anda dapat menggunakan Stackdriver untuk melihat metrik performa, menyetel dan menerima pemberitahuan, menambahkan dasbor dan metrik kustom Anda sendiri, melihat log dan rekaman aktivitas, menyiapkan dasbor terintegrasi - semuanya dari satu tempat terpusat.

Langkah berikutnya akan memandu Anda mengaktifkan Stackdriver dan menggunakan konsol.

Secara default, Google Stackdriver saat ini dalam versi Beta dan tidak diaktifkan untuk project baru. Untuk mengaktifkannya, buka navbar kiri dan klik "Monitoring" (Anda mungkin harus men-scroll ke bawah untuk menemukannya)

Di layar berikutnya, klik "Aktifkan Pemantauan" dan tunggu sebentar hingga diaktifkan.

Setelah diaktifkan, konten akan berubah dan Anda akan melihat teks di bawah. Klik "Buka Pemantauan" untuk mulai menjelajah. Anda harus login dengan Google, lalu diarahkan ke konsol Stackdriver untuk project Anda. Di sinilah Anda akan melakukan dan menganalisis tugas terkait pemantauan.

Mari kita pelajari halaman beranda.

  1. Menu atas: digunakan untuk memilih tampilan / konteks yang berbeda, dan mengakses semua tindakan Stackdriver yang tersedia.
  2. Dasbor: ini adalah dasbor metrik dan peristiwa yang dipantau. Awalnya, dasbor ini adalah dasbor sistem yang telah ditentukan sebelumnya berdasarkan resource dalam project Anda, tetapi Anda juga dapat menyusun dasbor kustom sendiri.
  3. Pemeriksaan uptime: pemeriksaan ini secara berkala memeriksa ketersediaan resource yang terlihat oleh pengguna, dan mengaktifkan pemberitahuan jika resource tersebut tidak tersedia.
  4. Daftar grup: grup digunakan untuk mengelompokkan resource yang memiliki properti dan karakteristik yang sama sehingga dapat ditangani sebagai grup atau cluster untuk tugas seperti pemantauan dan pemberitahuan. Ini dapat ditemukan secara otomatis serta ditentukan oleh pengguna.
  5. Panel insiden: panel insiden melacak insiden pemberitahuan. Anda tidak akan melihat apa pun di sini hingga Anda menentukan kebijakan pemberitahuan.
  6. Log Peristiwa: mencantumkan peristiwa yang terkait dengan resource yang dipantau, misalnya perubahan instance, peristiwa insiden, dll.

Sebelum memeriksa diagram, Anda akan melihat bahwa sebagian besar garis telah mendatar setelah inisialisasi instance awal. Mari kita lihat apakah kita dapat "mengurai" beberapa di antaranya dengan membuat beberapa beban pada salah satu instance.

Untuk melakukan SSH ke instance dari command line Cloud Shell:

$ gcloud compute ssh nginx-plus-1
...
Do you want to continue (Y/n)? Y
...
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): [Hit Enter]
Enter same passphrase again: [Hit Enter]
...

yourusername@nginx-plus-1:~$

Selesai! Cukup mudah. (Dalam produksi, pastikan Anda memasukkan frasa sandi :) Selain itu, perhatikan bahwa Anda mungkin tidak diminta untuk menambahkan frasa sandi.

Atau, Anda juga dapat melakukan SSH ke instance langsung dari konsol, dengan membuka Compute Engine > VM Instances, lalu mengklik SSH.

In the SSH window, type:

yourusername@nginx-plus-1:~$ sudo apt-get install rand
yourusername@nginx-plus-1:~$ for i in {1..10}; do dd if=/dev/zero of=/dev/null count=$(rand -M 80)M; sleep 60; done &

Sekarang CPU instance nginx-plus-1 sedang dimuat. Kita dapat kembali ke tab dasbor Stackdriver dan mulai menjelajah, tetapi sebelum kembali ke halaman dasbor Stackdriver, mari kita manfaatkan kesempatan ini untuk menginstal agen Cloud Logging.

Fetch and install the script:

yourusername@nginx-plus-1:~$ curl -sS https://dl.google.com/cloudagents/add-logging-agent-repo.sh | sudo bash /dev/stdin --also-install

Perhatikan bahwa saat menginstal di produksi, pastikan untuk memeriksa hash SHA-256. Anda bisa mendapatkan informasi selengkapnya tentang proses penginstalan di sini.

Sekarang saatnya kembali ke konsol Google Stackdriver.

Luangkan waktu untuk mempelajari cara menavigasi dan menggunakan dasbor dan diagram. Gunakan mouse untuk mengarahkan kursor ke garis diagram dan lihat apa yang terjadi. Ubah durasi waktu untuk diagram (kontrol ada di sudut kanan atas). Anda dapat kembali ke tampilan "halaman beranda" kapan saja dengan mengklik logo Stackdriver di pojok kiri atas konsol.

Mari kita lihat diagram pemakaian CPU:

Beberapa elemen dalam diagram adalah:

  • Garis yang ditandai adalah metrik yang saat ini dipilih (diagram dapat menampilkan beberapa metrik).
  • Garis horizontal abu-abu menunjukkan titik waktu yang ditunjuk oleh kursor mouse.
  • Di bagian bawah adalah nama resource, beserta nilai pada titik waktu yang dipilih.
  • Di bagian atas diagram terdapat titik berwarna yang mewakili peristiwa yang dijelaskan dalam Log Peristiwa. Anda dapat mengkliknya untuk mendapatkan daftar peristiwa. Catatan: Anda mungkin tidak melihat apa pun jika belum memiliki acara.
  • Di kanan atas diagram terdapat tiga kontrol (dari kiri ke kanan):
  • Beralih menyembunyikan/menampilkan daftar metrik di bawah diagram
  • Beralih mode layar penuh
  • Menu dengan berbagai fitur menarik (Anda HARUS mencoba mode X-ray setelah memiliki diagram yang sangat panjang). Perhatikan opsi "Lihat Log" - kita akan membahasnya nanti.

Cek uptime memungkinkan Anda memastikan kondisi halaman web, instance, atau grup mana pun dengan cepat. Setiap cek yang dikonfigurasi dilakukan secara berkala dari berbagai lokasi di seluruh dunia. Cek uptime dapat digunakan sebagai kondisi dalam definisi kebijakan pemberitahuan.

Anda dapat menampilkan pemeriksaan dan statusnya dengan memilih Pemberitahuan > Pemeriksaan Uptime di menu atas. Anda juga akan menemukan bagian Cek Uptime di dasbor Google Stackdriver dan di halaman yang dikhususkan untuk resource tertentu. Untuk pemeriksaan uptime yang mencakup sekelompok resource, Anda dapat meluaskan pemeriksaan untuk menampilkan status masing-masing anggota grup.

Mari buat cek uptime. Temukan widget cek uptime di layar utama Stackdriver:

Pop-up baru akan muncul. Kita dapat mengonfigurasi pemeriksaan uptime untuk satu resource atau grup resource, menggunakan header dan payload kustom, menambahkan autentikasi, dan opsi lainnya. Untuk saat ini, kita hanya akan menggunakan pemeriksaan http default yang akan memeriksa grup nginx yang dibuat otomatis setiap 1 menit.

Gunakan screenshot di bawah untuk mengisi berbagai opsi:

Klik tombol "Uji" untuk memastikan endpoint Anda dapat dijangkau (Anda akan mendapatkan 3 tanda "ok" berwarna hijau), lalu klik Simpan. Catatan: Jika Anda tidak mendapatkan respons "ok", Anda tetap dapat melanjutkan lab karena mungkin hanya masalah pengaturan waktu pemeriksaan pengujian.

Selanjutnya, Anda akan melihat kotak "Uptime Check Created" dan ditanya apakah Anda ingin membuat kebijakan pemberitahuan untuk cek ini. Mari kita lakukan itu di bagian berikutnya - jangan klik apa pun dulu.

Anda dapat menyiapkan kebijakan pemberitahuan untuk menentukan kondisi yang menentukan apakah layanan dan platform cloud Anda beroperasi secara normal atau tidak. Cloud Monitoring menyediakan berbagai jenis metrik dan health check yang dapat Anda gunakan dalam kebijakan.

Saat kondisi kebijakan pemberitahuan dilanggar, insiden akan dibuat dan ditampilkan di konsol Stackdriver di bagian Insiden. Responder dapat mengonfirmasi penerimaan notifikasi dan menutup insiden setelah diselesaikan.

Klik "Buat Kebijakan Pemberitahuan" dan mari kita lanjutkan untuk mengonfigurasi kebijakan.

Sekarang Anda akan melihat layar ini:

Masukkan nama untuk kebijakan: "Uptime Check for nginx group"

Sekarang di bagian metode notifikasi, klik "Tambahkan Notifikasi"

Masukkan alamat email yang terkait dengan Akun Google Cloud Anda. Scroll ke bagian bawah layar, lalu klik "Simpan Kebijakan".

Kembali ke halaman beranda Stackdriver (dengan mengklik logo di pojok kiri atas).

Sekarang Anda akan melihat cek uptime yang telah dibuat di bagian cek uptime pada dasbor. Untuk saat ini, status harus berwarna hijau.

Scroll ke bawah ke Log Peristiwa dan Anda akan melihat peristiwa saat kebijakan pemberitahuan dibuat.

Sekarang, mari kita buat masalah :)

Mari kita lihat apa yang terjadi saat kita menghentikan layanan Nginx.

Lakukan SSH lagi ke instance dari command line Cloud Shell:

$ gcloud compute ssh nginx-plus-1

Lalu ketik:

yourusername@nginx-plus-1:~$ sudo service nginx stop

Sekarang, cek uptime yang telah kita buat akan gagal. Akibatnya, insiden akan dibuat dan email notifikasi pemberitahuan akan dikirim ke alamat yang telah Anda masukkan di atas. Kondisi akan terdeteksi dalam waktu satu menit (ingat durasi 1 menit saat menyetel pemeriksaan uptime?), jadi mari kita buka dan periksa halaman grup nginx.

Ada beberapa cara untuk membuka dasbor grup resource tertentu:

  1. Anda dapat mengklik nama grup di halaman beranda. Tindakan ini akan beralih ke dasbor yang dibuat khusus untuk memantau resource grup. Anda juga dapat menyesuaikan dasbor ini.



  2. Dari menu tingkat teratas, pilih Grup, lalu temukan grup tertentu Anda.

Sekarang, klik tombol muat ulang otomatis untuk memastikan dasbor dimuat ulang secara otomatis. Ikon akan berubah menjadi merah.

Sekarang Anda melihat dasbor yang khusus untuk grup nginx yang dibuat otomatis. Di sisi kanan, ada grafik beberapa metrik utama yang berkaitan dengan grup. Dengan kata lain, grafik ini menampilkan metrik yang terkait dengan semua resource dalam grup nginx (3 VM nginx+ yang kita buat sebelumnya).

Di sisi kiri, Anda akan melihat berbagai informasi terkait grup:

  • Status insiden
  • Cek uptime
  • Log aktivitas
  • Daftar resource (instance, volume, dll.)

Perhatikan bahwa peristiwa ini hanya terkait dengan grup, sehingga log peristiwa hanya mencantumkan peristiwa untuk grup.

Anda dapat mengklik berbagai resource atau subgrup untuk beralih ke dasbor spesifiknya masing-masing. Misalnya, mengklik nginx-plus-1 akan mengarahkan Anda ke dasbor yang hanya terdiri dari metrik dan pemeriksaan yang terkait dengan instance tersebut. Coba sekarang:

Insiden Stackdriver dibuka saat serangkaian kondisi pemberitahuan memenuhi kriteria tertentu. Dalam kasus ini, kami telah menyetel pemberitahuan untuk pemeriksaan uptime nginx, yang saat ini gagal di nginx-plus-1. Insiden membantu Anda melacak kondisi saat ini, serta berkolaborasi dengan anggota tim lain saat menangani masalah.

Mari kita konfirmasi insiden ini, dengan memberi tahu anggota tim lain bahwa kita sedang menyelidiki masalah ini:

Perhatikan bahwa tindakan ini mengubah status insiden dari Terbuka menjadi Dikonfirmasi. Situasi masih berlangsung (kondisi kebijakan pemberitahuan masih dilanggar), tetapi Anda memberi sinyal kepada anggota tim bahwa Anda sedang menanganinya. Tindakan ini juga akan dicatat dalam log peristiwa.

Insiden dapat diselesaikan secara manual, atau dapat diselesaikan secara otomatis. Untuk melihatnya, lakukan SSH ke nginx-plus-1 dan perbaiki masalahnya:

yourusername@nginx-plus-1:~$ sudo service nginx start

Sekarang, insiden akan diselesaikan secara otomatis setelah pemeriksaan waktu aktif kembali normal. Anda juga dapat menyelesaikannya sendiri dengan memilih item menu selesaikan.

Cloud Logging adalah solusi logging-as-a-service yang menawarkan tempat pusat yang nyaman untuk melihat dan membuat kueri log dari berbagai sumber. Anda juga dapat menggunakan log untuk mengekspornya ke tujuan lain (Google Cloud Storage, Google BigQuery, atau Google Cloud Pub/Sub).

Untuk mengakses Cloud Logs Viewer, pilih dari menu sebelah kiri Konsol Cloud:

Anda akan diarahkan ke penampil log, tempat Anda dapat menggunakan kueri yang telah ditentukan sebelumnya atau membuat dan menyimpan kueri kustom Anda sendiri, mendapatkan aliran log langsung yang berasal dari beberapa resource di seluruh deployment cloud Anda, membuat metrik dari log, mengekspor, dan banyak lagi.

Ada beberapa kontrol praktis untuk memfilter informasi yang relevan dengan cepat:

  1. Memfilter menurut jenis resource
  2. Memfilter ke jenis log tertentu dari resource yang dipilih
  3. Memfilter level log tertentu
  4. Filter ke tanggal tertentu untuk memeriksa masalah sebelumnya
  5. Mengaktifkan/menonaktifkan streaming berkelanjutan
  6. Kotak penelusuran untuk penelusuran teks, label, atau ekspresi reguler

Sekarang, mari kita berlatih mempersempit log tertentu.

Dari pemilih jenis resource (1 dalam screenshot), pilih Compute Engine -> All resource types

Selanjutnya, dari pemilih jenis log (2 dalam screenshot), pilih nginx-access untuk melihat semua log akses

Sekarang, aktifkan streaming berkelanjutan (5) untuk menonton log saat masuk. Jika Anda tidak melihat log baru, coba masukkan alamat IP eksternal untuk salah satu VM nginx-plus di browser Anda.

Meskipun codelab ini tidak berfokus pada log, Anda dapat menjelajahinya nanti sebelum membersihkan. Anda dapat menemukan info selengkapnya tentang cara menavigasi penampil di sini. Jika Anda ingin mengetahui informasi yang lebih luas tentang penggunaan Cloud Logging, di sini adalah direktori tingkat teratas untuk dokumentasi yang relevan.

Mari kita bebaskan resource komputasi yang dibuat selama codelab. Jalankan perintah berikut di Cloud Shell:

$ for i in {1..3}; do \
gcloud -q --user-output-enabled=false compute instances delete nginx-plus-$i ; done

Selanjutnya, buka konsol Google Stackdriver ("Monitoring" dari menu panel kiri Konsol Cloud) dan hapus cek uptime dan kebijakan pemberitahuan yang telah kita buat. Anda dapat melakukannya dari item menu tingkat teratas Pemberitahuan -> Ringkasan kebijakan dan Pemberitahuan -> Cek uptime.

Sekarang Anda siap memantau aplikasi yang didukung cloud.

Yang telah kita bahas

  • Mempelajari halaman beranda Stackdriver.
  • Memahami dasbor dan diagram.
  • Membuat cek uptime.
  • Membuat kebijakan pemberitahuan sederhana.
  • Bekerja dengan insiden pemberitahuan.
  • Menavigasi Logs Viewer.

Langkah Berikutnya

  • Coba buat dasbor kustom.
  • Jelajahi berbagai opsi saat membuat kebijakan pemberitahuan.
  • Jelajahi berbagai opsi yang tersedia saat menggunakan Cloud Logging.

Pelajari Lebih Lanjut

Kirimkan masukan Anda

  • Luangkan waktu sejenak untuk menyelesaikan survei singkat kami