Menggunakan pemantauan dan logging Stackdriver untuk meningkatkan visibilitas aplikasi Anda

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

Dalam codelab ini, Anda akan

  • Biasakan diri Anda dengan halaman beranda Stackdriver.
  • Memahami dasbor dan diagram.
  • Membuat cek uptime.
  • Membuat kebijakan pemberitahuan sederhana.
  • Bekerja dengan insiden notifikasi.
  • Buka Logs Viewer.

Apa pengalaman Anda dengan Stackdriver?

Pemantauan - apakah itu? Saya belum pernah menggunakan Stackdriver sebelumnya, tetapi saya memiliki pengalaman dalam memantau aplikasi. Saya telah menghilangkan ban Stackdriver tetapi belum menyadarinya.

Penyiapan lingkungan mandiri

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

Login ke Google Cloud Platform console (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 - Kunjungi halaman Compute Engine untuk memulai pengaktifan Compute Engine API:

Lalu: Komputasi → Compute Engine → Instance VM

Saat pertama kali melakukannya, Anda akan melihat layar dengan pesan "Compute Engine sedang disiapkan. Proses ini mungkin memerlukan waktu satu menit atau lebih" Anda dapat terus login ke Google Cloud Shell di bawah, tetapi 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 home persisten sebesar 5 GB. Buka Google Cloud Shell dengan mengklik ikon di kanan atas layar:

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

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

Anda juga dapat memilih dan 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 peluncur. Kami 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 melalui command line.

Sekarang mari kita mulai.

Gunakan gcloud untuk menetapkan project ID Anda:

$ gcloud config set project PROJECT_ID



Berikutnya, pastikan untuk menyalin & tempel 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, kemudian 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 - yang penting nanti.

Operasi ini mungkin memerlukan waktu beberapa menit hingga selesai.

Secara default, Google Cloud Platform hanya mengizinkan sedikit akses port. Karena kita akan segera mengakses Nginx - mari kita 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

Perintah 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) ditetapkan 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 tidak ada, yang berarti aturan firewall berlaku untuk semua instance.

Jalankan gcloud compute firewall-rules create --help untuk melihat semua setelan 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 andal yang mengintegrasikan berbagai alat untuk memfasilitasi pemantauan dan analisis aplikasi Anda yang didukung cloud. Anda dapat menggunakan Stackdriver untuk melihat metrik performa, menetapkan dan menerima notifikasi, menambahkan dasbor dan metrik kustom Anda sendiri, melihat log dan trace, menyiapkan dasbor terintegrasi - semuanya dari tempat terpusat.

Langkah berikutnya akan mengarahkan Anda untuk mengaktifkan Stackdriver dan bekerja dengan konsol.

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

Di layar berikutnya, klik "Aktifkan Pemantauan" dan tunggu satu menit lalu aktifkan.

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 biasakan diri dengan beranda.

  1. Menu atas: gunakan untuk memilih tampilan / konteks yang berbeda, dan mengakses semua tindakan Stackdriver yang tersedia.
  2. Dasbor: ini adalah dasbor metrik dan peristiwa yang dipantau. Awalnya, ini adalah dasbor sistem yang telah ditentukan sebelumnya berdasarkan resource di project Anda, tetapi Anda juga dapat membuat dasbor kustom Anda sendiri.
  3. Cek uptime: fitur ini memeriksa ketersediaan resource pengguna secara berkala, dan mengaktifkan pemberitahuan saat 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 pengguna.
  5. Panel insiden: panel insiden melacak insiden pemberitahuan. Anda tidak akan melihat apa pun di sini hingga kebijakan pemberitahuan ditetapkan.
  6. Log Peristiwa: mencantumkan peristiwa yang terkait dengan resource yang Anda pantau, misalnya perubahan instance, peristiwa insiden, dll.

Sebelum memeriksa diagram, Anda akan melihat bahwa sebagian besar baris telah berubah setelah inisialisasi instance awal. Mari kita lihat apakah kita dapat "datar" beberapa di antaranya dengan menghasilkan beban pada salah satu instance.

Untuk menerapkan 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:~$

Itu mudah! Sangat mudah. (Dalam produksi, pastikan Anda memasukkan frasa sandi :) Perhatikan juga bahwa Anda mungkin tidak diminta untuk menambahkan frasa sandi.

Atau, Anda juga dapat menerapkan SSH ke instance langsung dari konsol, dengan membuka Compute Engine > Instance VM, 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 &

Kini instance nginx-plus-1 CPU sedang dimuat. Kita dapat kembali ke tab dasbor Stackdriver dan mulai menjelajah, tetapi sebelum kita kembali ke halaman dasbor Stackdriver, mari kita instal 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 dalam produksi, pastikan untuk memeriksa hash SHA-256. Anda dapat memperoleh informasi selengkapnya tentang proses penginstalan di sini.

Sekarang saatnya kembali ke konsol Google Stackdriver.

Luangkan waktu untuk membiasakan diri Anda dalam menjelajahi dan menggunakan dasbor serta diagram. Arahkan kursor ke garis diagram dan lihat apa yang terjadi. Mengubah durasi waktu untuk diagram (kontrol berada di sudut kanan atas). Anda dapat kembali ke tampilan "homepage" dengan mengklik logo Stackdriver di sudut kiri atas konsol.

Mari kita lihat diagram penggunaan CPU:

Beberapa elemen pada 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 kursor mouse.
  • Di bagian bawah terdapat nama resource, beserta nilai pada titik waktu yang dipilih.
  • Di bagian atas diagram terdapat titik berwarna yang mewakili peristiwa yang dijelaskan dalam Log Aktivitas. Anda dapat mengkliknya untuk mendapatkan daftar peristiwa. Catatan: Anda mungkin tidak melihat acara apa pun jika belum memiliki acara.
  • Di bagian kanan atas diagram terdapat tiga kontrol (dari kiri ke kanan):
  • Menyembunyikan/menampilkan daftar metrik di bawah diagram
  • Beralih ke mode layar penuh
  • Menu dengan beragam hadiah (Anda HARUS mencoba mode sinar-X setelah memiliki diagram yang sangat panjang). Catat opsi "Lihat Log" - kita akan membahasnya nanti.

Cek uptime memungkinkan Anda memverifikasi dengan cepat kondisi halaman, instance, atau grup resource apa pun. Setiap pemeriksaan yang dikonfigurasi akan dihubungi secara rutin dari berbagai lokasi di seluruh dunia. Cek uptime dapat digunakan sebagai ketentuan dalam definisi kebijakan pemberitahuan.

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

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

Pop-up baru akan muncul. Kita dapat mengonfigurasi cek 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 opsi yang berbeda:

Klik tombol "Test" untuk memastikan endpoint Anda dapat dijangkau (Anda akan mendapatkan 3 tombol hijau), lalu klik Simpan. Catatan: jika tidak berhasil kembali, Anda masih dapat melanjutkan ke lab karena mungkin hanya masalah waktu pemeriksaan.

Berikutnya, Anda akan mendapatkan kotak "Cek Uptime Dibuat" dan ditanya apakah ingin membuat kebijakan pemberitahuan untuk cek ini. Mari kita lakukan di bagian berikutnya - jangan klik apa pun.

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

Ketika kondisi kebijakan pemberitahuan dilanggar, insiden akan dibuat dan ditampilkan di konsol Stackdriver di bagian Insiden. Responden dapat mengonfirmasi penerimaan notifikasi dan dapat menutup insiden jika sudah ditangani.

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

Sekarang Anda akan melihat layar ini:

Masukkan nama untuk kebijakan: "Cek Uptime untuk grup nginx"

Di bagian metode notifikasi, klik "Tambahkan Notifikasi"

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

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

Sekarang Anda akan melihat cek uptime yang Anda buat di bagian cek uptime pada dasbor. Untuk saat ini, status seharusnya berwarna hijau.

Scroll ke bawah ke Log Aktivitas dan Anda akan melihat peristiwa yang berisi kebijakan pemberitahuan yang telah dibuat.

Sekarang, mari kita buat beberapa masalah :)

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

Jalankan SSH lagi ke dalam instance dari command line Cloud Shell:

$ gcloud compute ssh nginx-plus-1

Dan ketik:

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

Kini, cek uptime yang telah kita buat akan gagal. Akibatnya, insiden akan dibuat dan email notifikasi peringatan akan dikirim ke alamat yang Anda masukkan di atas. Perlu waktu satu menit untuk mendeteksi kondisinya (ingat durasi 1 menit saat menyetel cek uptime?), jadi mari kita periksa dan periksa halaman grup nginx.

Ada beberapa cara untuk membuka dasbor grup resource tertentu:

  1. Anda dapat mengklik nama grup di halaman beranda. Tombol ini beralih ke dasbor yang dibuat khusus untuk memantau sumber daya grup. Anda juga dapat menyesuaikan dasbor ini.



  2. Dari menu tingkat atas, pilih Grup, lalu cari grup yang spesifik.

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

Anda sekarang melihat dasbor yang khusus untuk grup nginx yang dibuat otomatis. Di sisi kanan, terdapat grafik dari beberapa metrik utama yang berkaitan dengan grup. Dengan kata lain, grafik ini menunjukkan metrik yang terkait dengan semua resource di grup nginx (3 VM nginx + yang telah kita buat sebelumnya).

Di sisi kiri, Anda melihat berbagai informasi yang berkaitan dengan grup:

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

Perhatikan bahwa ini hanya berhubungan dengan grup, sehingga log aktivitas hanya mencantumkan kejadian untuk grup.

Anda dapat mengklik resource atau subgrup yang berbeda-beda untuk bertransisi 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 terbuka jika serangkaian kondisi pemberitahuan memenuhi kriteria tertentu. Dalam kasus kami, kami telah menyetel pemberitahuan untuk cek uptime nginx, yang saat ini gagal pada nginx-plus-1. Insiden membantu Anda melacak kondisi saat ini, serta berkolaborasi dengan anggota tim lain saat menangani masalah.

Mari kita beri tahu kejadiannya, dengan memberi tahu anggota tim lain bahwa kita sedang menyelidiki:

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

Insiden dapat diselesaikan secara manual, atau dapat diselesaikan secara otomatis. Untuk melihat kueri, ssh ke nginx-plus-1 dan perbaiki masalahnya:

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

Sekarang insiden akan diselesaikan secara otomatis setelah cek uptime kembali normal. Anda juga dapat mengatasinya sendiri dengan memilih item menu penyelesaian.

Cloud Logging adalah solusi logging sebagai layanan yang menawarkan tempat terpusat yang nyaman untuk melihat dan mengkueri 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 Cloud Console:

Anda akan diarahkan ke penampil log, tempat Anda dapat menggunakan kueri standar pengguna atau membuat dan menyimpan kueri kustom Anda sendiri, mendapatkan live stream log yang berasal dari beberapa resource di seluruh deployment cloud, membuat metrik dari log, ekspor, dan banyak lagi.

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

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

Sekarang, mari kita berlatih menyingkat log tertentu.

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

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

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

Meskipun codelab ini tidak berfokus secara mendalam pada log, Anda dapat menjelajahinya nanti sebelum membersihkannya. Anda dapat menemukan informasi selengkapnya tentang cara menavigasi penonton di sini. Jika Anda ingin mengetahui informasi lebih lanjut tentang kegunaan Cloud Logging, di sini adalah direktori tingkat atas untuk dokumentasi yang relevan.

Mari kita rilis resource komputasi yang dibuat selama code lab. 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

Berikutnya, buka Google Stackdriver console ("Monitoring" dari menu panel kiri Cloud Console) dan hapus cek uptime dan kebijakan pemberitahuan yang kami buat. Anda dapat melakukannya dari item menu tingkat teratas Pemberitahuan -> Ringkasan kebijakan dan Pemberitahuan -> Cek uptime.

Sekarang Anda siap untuk memantau aplikasi yang didukung cloud.

Yang telah kita bahas

  • Memahami halaman beranda Stackdriver.
  • Memahami dasbor dan diagram.
  • Membuat cek uptime.
  • Membuat kebijakan pemberitahuan sederhana.
  • Menangani insiden notifikasi.
  • Menjelajahi Logs Viewer.

Langkah Berikutnya

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

Pelajari More

Kirimkan masukan Anda

  • Luangkan waktu Anda untuk menyelesaikan survei singkat kami