Log dan metrik untuk layanan backend

Dokumen ini menunjukkan cara mengonfigurasi dan menggunakan Cloud Logging dan Cloud Monitoring dengan Load Balancer Aplikasi klasik, Load Balancer Aplikasi eksternal global, dan Cloud CDN.

Logging

Anda dapat mengaktifkan, menonaktifkan, dan melihat log untuk layanan backend Load Balancer Aplikasi eksternal. Untuk Load Balancer Aplikasi eksternal dengan bucket backend, logging otomatis diaktifkan dan tidak dapat dinonaktifkan.

Anda dapat mengaktifkan atau menonaktifkan logging untuk setiap layanan backend. Anda dapat mengonfigurasi apakah akan mencatat log semua permintaan atau fraksi yang diambil sampelnya secara acak.

Anda harus memastikan bahwa tidak ada pengecualian log yang berlaku untuk Load Balancer Aplikasi eksternal. Untuk petunjuk tentang cara memverifikasi bahwa log Cloud HTTP Load Balancer diizinkan, lihat Melihat pengecualian jenis resource.

Mengaktifkan logging pada layanan backend baru

Konsol

  1. Di konsol Google Cloud, buka halaman Load Balancing.

    Buka Load balancing

  2. Klik nama load balancer Anda.

  3. Klik Edit.

  4. Klik Backend Configuration.

  5. Pilih Create a backend service.

  6. Lengkapi kolom layanan backend yang wajib diisi.

  7. Di bagian Logging, centang kotak Enable logging.

  8. Di kolom Frekuensi sampel, tetapkan probabilitas pengambilan sampel. Anda dapat menetapkan angka dari 0.0 hingga 1.0, dengan 0.0 berarti tidak ada permintaan yang dicatat ke dalam log dan 1.0 berarti 100% permintaan telah dicatat ke dalam log. Nilai default-nya adalah 1.0.

  9. Untuk menyelesaikan pengeditan layanan backend, klik Update.

  10. Untuk menyelesaikan pengeditan load balancer, klik Update.

gcloud: Mode global

Buat layanan backend dan aktifkan logging menggunakan perintah gcloud compute backend-services create.

gcloud compute backend-services create BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --load-balancing-scheme=EXTERNAL_MANAGED

dengan

  • --global menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi eksternal global.
  • --enable-logging mengaktifkan logging untuk layanan backend tersebut.
  • --logging-sample-rate memungkinkan Anda menentukan nilai dari 0.0 hingga 1.0, dengan 0.0 berarti tidak ada permintaan yang dicatat ke dalam log, dan 1.0 berarti 100% permintaan telah dicatat ke dalam log. Hanya relevan dengan parameter --enable-logging. Mengaktifkan logging tetapi menetapkan frekuensi sampling ke 0.0 sama dengan menonaktifkan logging. Nilai default-nya adalah 1.0.

gcloud: Mode klasik

Buat layanan backend dan aktifkan logging menggunakan perintah gcloud compute backend-services create.

gcloud compute backend-services create BACKEND_SERVICE \
 --global \
 --enable-logging \
 --logging-sample-rate=VALUE \
 --load-balancing-scheme=EXTERNAL

dengan

  • --global menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi klasik.
  • --enable-logging mengaktifkan logging untuk layanan backend tersebut.
  • --logging-sample-rate memungkinkan Anda menentukan nilai dari 0.0 hingga 1.0, dengan 0.0 berarti tidak ada permintaan yang dicatat ke dalam log, dan 1.0 berarti 100% permintaan telah dicatat ke dalam log. Hanya relevan dengan parameter --enable-logging. Mengaktifkan logging tetapi menetapkan frekuensi sampling ke 0.0 sama dengan menonaktifkan logging. Nilai default-nya adalah 1.0.

Mengaktifkan logging pada layanan backend yang ada

Konsol

  1. Di konsol Google Cloud, buka halaman Load Balancing.

    Buka Load balancing

  2. Klik nama load balancer Anda.

  3. Klik Edit.

  4. Klik Backend Configuration.

  5. Klik Edit di samping layanan backend.

  6. Di bagian Logging, centang kotak Enable logging.

  7. Di kolom Frekuensi sampel, tetapkan probabilitas pengambilan sampel. Anda dapat menetapkan angka dari 0.0 hingga 1.0, dengan 0.0 berarti tidak ada permintaan yang dicatat ke dalam log dan 1.0 berarti 100% permintaan telah dicatat ke dalam log. Nilai default-nya adalah 1.0.

  8. Untuk menyelesaikan pengeditan layanan backend, klik Update.

  9. Untuk menyelesaikan pengeditan load balancer, klik Update.

gcloud: Mode global

Aktifkan logging di layanan backend yang ada dengan perintah gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE

dengan

  • --global menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi eksternal global.
  • --enable-logging mengaktifkan logging untuk layanan backend tersebut.
  • --logging-sample-rate memungkinkan Anda menentukan nilai dari 0.0 hingga 1.0, dengan 0.0 berarti tidak ada permintaan yang dicatat ke dalam log, dan 1.0 berarti 100% permintaan telah dicatat ke dalam log. Hanya relevan dengan parameter --enable-logging. Mengaktifkan logging tetapi menetapkan frekuensi sampling ke 0.0 sama dengan menonaktifkan logging. Nilai default-nya adalah 1.0.

gcloud: Mode klasik

Aktifkan logging di layanan backend yang ada dengan perintah gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE

dengan

  • --global menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi klasik.
  • --enable-logging mengaktifkan logging untuk layanan backend tersebut.
  • --logging-sample-rate memungkinkan Anda menentukan nilai dari 0.0 hingga 1.0, dengan 0.0 berarti tidak ada permintaan yang dicatat ke dalam log, dan 1.0 berarti 100% permintaan telah dicatat ke dalam log. Hanya relevan dengan parameter --enable-logging. Mengaktifkan logging tetapi menetapkan frekuensi sampling ke 0.0 sama dengan menonaktifkan logging. Nilai default-nya adalah 1.0.

Menonaktifkan atau mengubah logging pada layanan backend yang ada

Konsol

  1. Di konsol Google Cloud, buka halaman Load Balancing.

    Buka Load balancing

  2. Klik nama load balancer Anda.

  3. Klik Edit.

  4. Klik Backend Configuration.

  5. Klik Edit di samping layanan backend.

  6. Untuk menonaktifkan logging sepenuhnya, di bagian Logging, hapus centang pada kotak Enable logging.

  7. Jika logging tetap diaktifkan, Anda dapat menetapkan probabilitas pengambilan sampel yang berbeda di kolom Frekuensi sampel. Anda dapat menetapkan angka dari 0.0 hingga 1.0, dengan 0.0 berarti tidak ada permintaan yang dicatat ke dalam log dan 1.0 berarti 100% permintaan telah dicatat ke dalam log. Nilai defaultnya adalah 1.0. Untuk mengurangi jumlah log yang disimpan hingga 20%, setel nilai ke 0.2.

  8. Untuk menyelesaikan pengeditan layanan backend, klik Update.

  9. Untuk menyelesaikan pengeditan load balancer, klik Update.

gcloud: Mode global

Nonaktifkan logging di layanan backend dengan perintah gcloud compute backend-services update.

Menonaktifkan logging sepenuhnya

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --no-enable-logging

dengan

  • --global menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi eksternal global.
  • --region menunjukkan bahwa layanan backend bersifat regional. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi eksternal regional.
  • --no-enable-logging menonaktifkan logging untuk layanan backend tersebut.

Mengubah frekuensi sampel logging

gcloud compute backend-services update BACKEND_SERVICE \
 --global \
 --logging-sample-rate=VALUE

gcloud: Mode klasik

Nonaktifkan logging di layanan backend dengan perintah gcloud compute backend-services update.

Menonaktifkan logging sepenuhnya

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --no-enable-logging

dengan

  • --global menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi klasik.
  • --no-enable-logging menonaktifkan logging untuk layanan backend tersebut.

Mengubah frekuensi sampel logging

gcloud compute backend-services update BACKEND_SERVICE \
 --global \
 --logging-sample-rate=VALUE

dengan

  • --global menunjukkan bahwa layanan backend bersifat global. Gunakan kolom ini untuk layanan backend yang digunakan dengan Load Balancer Aplikasi klasik.
  • --logging-sample-rate memungkinkan Anda menentukan nilai dari 0.0 hingga 1.0, dengan 0.0 berarti tidak ada permintaan yang dicatat ke dalam log, dan 1.0 berarti 100% permintaan telah dicatat ke dalam log. Hanya relevan dengan parameter --enable-logging. Mengaktifkan logging tetapi menetapkan frekuensi sampling ke 0.0 sama dengan menonaktifkan logging.

Melihat log


Jika ingin mengikuti panduan langkah demi langkah untuk tugas ini langsung di Konsol Google Cloud, klik Pandu saya:

Pandu saya


Log HTTP(S) diindeks terlebih dahulu oleh aturan penerusan, lalu peta URL.

Untuk melihat log, buka halaman Logs Explorer:

Buka Logs Explorer

  • Untuk melihat semua log, di menu filter Resource, pilih Cloud HTTP Load Balancer > All forwarding rules.

  • Untuk melihat log untuk satu aturan penerusan, pilih satu nama aturan penerusan.

  • Guna melihat log untuk satu peta URL, pilih aturan penerusan, lalu pilih peta URL.

Kolom log jenis boolean biasanya hanya muncul jika memiliki nilai true. Jika kolom boolean memiliki nilai false, kolom tersebut akan dihapus dari log.

Encoding UTF-8 diterapkan untuk kolom log. Karakter yang bukan karakter UTF-8 akan diganti dengan tanda tanya. Untuk Load Balancer Aplikasi klasik dan Load Balancer Aplikasi eksternal global, Anda dapat mengekspor metrik berbasis log menggunakan log resource (resource.type="http_load_balancer"). Metrik yang dibuat didasarkan pada resource "Aturan Load Balancer Aplikasi (Metrik Berbasis Log)" (l7_lb_rule), yang tersedia di dasbor Cloud Monitoring, bukan di resource https_lb_rule.

Apa itu log?

Entri log Load Balancer Aplikasi Eksternal berisi informasi yang berguna untuk memantau dan men-debug traffic HTTP(S) Anda. Kumpulan data log berisi kolom wajib diisi, yang merupakan kolom default untuk setiap kumpulan data log.

Kolom Format kolom Jenis kolom: Wajib atau Opsional Deskripsi
keparahan
insertID
logName
LogEntry Diperlukan Kolom umum seperti yang dijelaskan dalam entri log.
stempel waktu string (Timestamp format) Opsional Waktu saat GFE lapisan pertama menerima permintaan.
httpRequest HttpRequest Diperlukan Protokol umum untuk mencatat permintaan HTTP.

HttpRequest.protocol tidak diisi untuk resource.type="http_load_balancer"

.
resource MonitoredResource Diperlukan

MonitoredResource adalah jenis resource yang terkait dengan entri log.

MonitoredResourceDescriptor menjelaskan skema objek MonitoredResource menggunakan nama jenis dan sekumpulan label. Untuk mengetahui informasi selengkapnya, lihat Label resource.

jsonPayload objek (format Struct) Diperlukan Payload entri log yang dinyatakan sebagai objek JSON. Objek JSON berisi kolom berikut:
  • statusDetails
  • backendTargetProjectNumber
string Diperlukan Kolom statusDetails menyimpan string yang menjelaskan alasan load balancer menampilkan status HTTP seperti itu. Untuk mengetahui informasi selengkapnya tentang string log ini, lihat statusDetail Pesan berhasil HTTP dan Pesan kegagalan HTTP statusDetails.
string Diperlukan Kolom backendTargetProjectNumber menyimpan nomor project tempat target backend—layanan backend atau bucket backend—telah dibuat. Kolom ini menggunakan format: "projects/PROJECT_NUMBER". Informasi ini hanya tersedia untuk Load Balancer Aplikasi eksternal global.

Label resource

Tabel berikut mencantumkan label resource untuk resource.type="http_load_balancer".

Kolom Jenis Deskripsi
backend_service_name string Nama layanan backend.
forwarding_rule_name string Nama objek aturan penerusan.
project_id string ID project Google Cloud yang terkait dengan resource ini.
target_proxy_name string Nama objek proxy target yang dirujuk oleh aturan penerusan.
url_map_name string Nama objek peta URL yang dikonfigurasi untuk memilih layanan backend.
zone string Zona tempat load balancer dijalankan. Zonanya adalah global.

pesan berhasil HTTP statusDetails

statusDetails (berhasil) Arti Kode respons umum yang menyertai
byte_range_caching Permintaan HTTP disalurkan menggunakan cache rentang byte Cloud CDN. Kode respons yang dapat di-cache apa pun dimungkinkan.
response_from_cache Permintaan HTTP disalurkan dari cache Cloud CDN. Kode respons yang dapat di-cache apa pun dimungkinkan.
response_from_cache_validated Kode yang ditampilkan ditetapkan dari entri yang disimpan dalam cache Cloud CDN yang divalidasi oleh backend. Kode respons yang dapat di-cache apa pun dimungkinkan.
response_sent_by_backend Permintaan HTTP berhasil di-proxy-kan ke backend, dan responsnya ditampilkan oleh backend. Kode respons HTTP ditetapkan oleh software yang berjalan di backend.

pesan kegagalan HTTP statusDetails

statusDetails (kegagalan) Arti Kode respons umum yang menyertai
aborted_request_due_to_backend_early_response Permintaan dengan isi dibatalkan karena backend mengirimkan respons awal dengan kode error. Respons telah diteruskan ke klien. Permintaan dihentikan. 4XX atau 5XX
backend_connection_closed_after_partial_response_sent Koneksi backend tiba-tiba ditutup setelah respons sebagian dikirim ke klien. Kode respons HTTP ditetapkan oleh software yang berjalan di backend. Kode respons HTTP 0 (nol) berarti bahwa backend mengirim header HTTP yang tidak lengkap.
backend_connection_closed_before_data_sent_to_client Backend secara tiba-tiba menutup koneksinya ke load balancer sebelum respons di-proxy-kan ke klien. Hal ini dapat terjadi jika load balancer mengirimkan traffic ke entitas lain. Entity lainnya mungkin adalah load balancer pihak ketiga yang memiliki waktu tunggu TCP yang lebih singkat daripada waktu tunggu 10 menit (600 detik) Load Balancer Aplikasi eksternal. Load balancer pihak ketiga mungkin berjalan di instance VM. Menyetel waktu tunggu TCP (keepalive) secara manual pada layanan target ke lebih dari 600 detik dapat menyelesaikan masalah ini. 502
backend_early_response_with_non_error_status Backend mengirim respons non-error (1XX atau 2XX) ke permintaan sebelum menerima seluruh isi permintaan. 502
backend_interim_response_not_supported Backend mengirim respons 1XX sementara terhadap permintaan tersebut dalam konteks yang tidak mendukung respons sementara. 502
backend_response_corrupted Isi respons HTTP yang dikirim oleh backend memiliki potongan encoding transfer yang tidak valid atau rusak. Kode respons apa pun mungkin tergantung pada sifat kerusakan. Sering kali 502.
backend_response_headers_too_long Header respons HTTP yang dikirim oleh backend melebihi batas yang diizinkan. Lihat bagian Ukuran header untuk Load Balancer Aplikasi eksternal untuk mengetahui informasi selengkapnya. 502
backend_timeout Waktu backend habis saat membuat respons. 502
banned_by_security_policy Permintaan diblokir oleh aturan pemblokiran berbasis tarif Google Cloud Armor. 429
body_not_allowed Klien mengirim permintaan HTTP dengan isi, tetapi metode HTTP yang digunakan tidak mengizinkan isi. 400
byte_range_caching_aborted Load balancer sebelumnya menerima respons yang menunjukkan bahwa resource dapat di-cache dan rentang byte didukung. Cloud CDN menerima respons yang tidak konsisten (misalnya, respons dengan kode respons selain Konten Parsial 206 yang diharapkan). Hal ini terjadi saat mencoba melakukan pengisian cache menggunakan permintaan rentang byte. Akibatnya, load balancer membatalkan respons ke klien. 2XX
byte_range_caching_forwarded_backend_response Load balancer sebelumnya menerima respons yang menunjukkan bahwa resource dapat di-cache dan rentang byte didukung. Cloud CDN menerima respons yang tidak konsisten (misalnya, respons dengan kode respons selain Konten Parsial 206 yang diharapkan). Hal ini terjadi saat mencoba melakukan pengisian cache menggunakan permintaan rentang byte. Load balancer tersebut kemudian meneruskan respons yang tidak konsisten tersebut ke klien. Ditampilkan dari backend—kode respons apa pun dapat dibuat.
byte_range_caching_retrieval_abandoned Klien membatalkan permintaan rentang byte atau permintaan validasi yang dimulai oleh Cloud CDN. Ditampilkan dari backend—kode respons apa pun dapat dibuat.
byte_range_caching_retrieval_from_backend_failed_after_partial_response Permintaan rentang byte atau permintaan validasi yang dimulai oleh Cloud CDN mengalami error. Lihat entri log Cloud Logging yang sesuai untuk permintaan yang dimulai oleh Cloud CDN untuk mengetahui status backend mendetail. 2XX
cache_lookup_failed_after_partial_response Load balancer gagal menampilkan respons penuh dari cache Cloud CDN karena terjadi error internal. 2XX
cache_lookup_timeout_after_partial_response Waktu streaming pencarian cache Cloud CDN habis karena klien tidak mengambil konten secara tepat waktu. 2XX
client_disconnected_after_partial_response Koneksi ke klien terputus setelah load balancer mengirim respons parsial. Ditampilkan dari backend—kode respons apa pun dapat dibuat.
client_disconnected_before_any_response Koneksi ke klien terputus sebelum load balancer mengirim respons apa pun. 0
client_timed_out Google Front End (GFE) menghentikan koneksi klien karena kurangnya progres saat melakukan proxy permintaan atau respons. 0 atau 408
client_cert_invalid_rsa_key_size Ukuran kunci RSA atau leaf klien atau intermediate certificate tidak valid. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi tertutup. 0
client_cert_unsupported_elliptic_curve_key Klien atau sertifikat perantara menggunakan kurva eliptik yang tidak didukung. Untuk informasi lebih lanjut, lihat Error yang dicatat ke dalam log untuk koneksi tertutup. 0
client_cert_unsupported_key_algorithm Klien atau sertifikat perantara menggunakan algoritma non-RSA atau non-ECDSA. Untuk informasi lebih lanjut, lihat Error yang dicatat ke dalam log untuk koneksi tertutup. 0
client_cert_pki_too_large IKP yang akan digunakan untuk validasi memiliki lebih dari tiga intermediate certificate yang memiliki Info Kunci Publik Subjek dan Subjek yang sama. Untuk informasi lebih lanjut, lihat Error yang dicatat ke dalam log untuk koneksi tertutup. 0
client_cert_chain_max_name_constraints_exceeded Sertifikat perantara yang disediakan untuk validasi memiliki lebih dari sepuluh batasan nama. Untuk informasi lebih lanjut, lihat Error yang dicatat ke dalam log untuk koneksi tertutup. 0
client_cert_chain_invalid_eku Sertifikat klien atau penerbitnya tidak memiliki Extended Key Usage (EKU) yang menyertakan clientAuth. Untuk informasi lebih lanjut, lihat Error yang dicatat ke dalam log untuk koneksi tertutup. 0
client_cert_validation_timed_out Batas waktu terlampaui saat memvalidasi rantai sertifikat. Untuk informasi lebih lanjut, lihat Error yang dicatat ke dalam log untuk koneksi tertutup. 0
client_cert_validation_search_limit_exceeded Batas kedalaman atau iterasi tercapai saat mencoba memvalidasi rantai sertifikat. Untuk informasi lebih lanjut, lihat Error yang dicatat ke dalam log untuk koneksi tertutup. 0
client_cert_validation_not_performed Anda telah mengonfigurasi mTLS tanpa menyiapkan TrustConfig. Untuk informasi lebih lanjut, lihat Error yang dicatat ke dalam log untuk koneksi tertutup. 0
client_cert_not_provided Klien tidak memberikan sertifikat yang diminta selama handshake. Untuk informasi lebih lanjut, lihat Error yang dicatat ke dalam log untuk koneksi tertutup. 0
client_cert_validation_failed Sertifikat klien gagal divalidasi dengan TrustConfig. Untuk informasi lebih lanjut, lihat Error yang dicatat ke dalam log untuk koneksi tertutup. 0
config_not_found Load balancer tidak memiliki konfigurasi project. Hal ini mungkin terjadi sesekali, terutama setelah Anda membuat perubahan konfigurasi yang menambahkan resource baru. 404 atau 503
direct_response Load balancer mengganti permintaan ini dan menampilkan respons tetap. Anda mungkin melihat kode respons HTTP bergantung pada sifat masalahnya. Misalnya, kode respons HTTP 410 berarti backend tidak tersedia karena adanya tunggakan pembayaran.
denied_by_security_policy Load balancer menolak permintaan ini karena kebijakan keamanan Google Cloud Armor. Dikonfigurasi dalam kebijakan keamanan.
error_uncompressing_gzipped_body Terjadi error saat membuka kompresi respons HTTP dengan gzip. 503
failed_to_connect_to_backend Load balancer gagal terhubung ke backend. Hal ini termasuk waktu tunggu selama fase koneksi.

503 untuk Load Balancer Aplikasi eksternal global

502 untuk Load Balancer Aplikasi klasik

failed_to_pick_backend Load balancer gagal memilih backend yang responsif untuk menangani permintaan. 502
failed_to_negotiate_alpn Load balancer dan backend gagal menegosiasikan protokol lapisan aplikasi (seperti HTTP/2) untuk digunakan guna berkomunikasi satu sama lain melalui TLS. 502
headers_too_long Header permintaan lebih besar dari batas maksimum yang diizinkan. 413
http_version_not_supported Versi HTTP tidak didukung. Saat ini, hanya HTTP 0.9, 1.0, 1.1, dan 2.0 yang didukung. 400
internal_error Terjadi error internal pada load balancer. Biasanya mewakili error sementara dalam infrastruktur load balancer. Coba lagi kueri Anda. 4XX
invalid_external_origin_endpoint Konfigurasi untuk backend eksternal tidak valid. Tinjau konfigurasi NEG internet dan pastikan konfigurasi tersebut menentukan port dan alamat FQDN/IP yang valid. 4XX
invalid_request_headers Header permintaan HTTP dari klien tidak valid. 400
invalid_http2_client_header_format Header HTTP/2 dari klien tidak valid. 400
multiple_iap_policies Beberapa kebijakan Identity-Aware Proxy (IAP) tidak dapat digabungkan. Jika Anda memiliki kebijakan IAP yang terpasang ke layanan backend dan kebijakan lain yang disertakan ke objek serverless, hapus salah satu kebijakan tersebut dan coba lagi. Objek serverless mencakup App Engine, Cloud Run, dan Cloud Functions. 500
malformed_chunked_body Isi permintaan tidak dienkode dengan benar dalam potongan. 411
request_loop_detected Load balancer mendeteksi loop permintaan. Loop ini mungkin disebabkan oleh kesalahan konfigurasi saat backend meneruskan permintaan kembali ke load balancer. 502
required_body_but_no_content_length Permintaan HTTP memerlukan isi, tetapi header permintaan tidak menyertakan panjang konten atau header potongan encoding transfer. 400 atau 403
secure_url_rejected Permintaan dengan URL https:// diterima melalui koneksi HTTP/1.1 teks biasa. 400
ssl_san_verification_failed Load balancer tidak dapat menemukan SAN (Nama Alternatif Subjek) dalam sertifikat SSL yang diberikan oleh backend yang cocok dengan nama host yang dikonfigurasi. 502
ssl_certificate_chain_verification_failed Sertifikat SSL yang ditampilkan oleh verifikasi sertifikat SSL yang gagal di backend. 502
throttled_by_security_policy Permintaan diblokir oleh aturan throttle Google Cloud Armor. 429
unsupported_method Klien memberikan metode permintaan HTTP yang tidak didukung. 400
unsupported_100_continue Permintaan klien menyertakan header 'Expect: 100-continue' pada protokol yang tidak mendukungnya. 400
upgrade_header_rejected Permintaan HTTP klien berisi header Upgrade dan ditolak. 400
websocket_closed Koneksi WebSocket ditutup. 101
websocket_handshake_failed Handshake WebSocket gagal. Kode respons apa pun mungkin, bergantung pada sifat kegagalan handshake.
request_body_too_large Isi permintaan HTTP melebihi batas maksimum yang didukung oleh backend. Tidak berlaku untuk backend VM. 413
handled_by_identity_aware_proxy Respons ini dibuat oleh Identity-Aware Proxy selama verifikasi identitas klien sebelum mengizinkan akses. 200, 302, 400, 401, 403, 500, 502
serverless_neg_routing_failed Permintaan NEG serverless tidak dapat dikirim. Error ini dapat terjadi jika region yang ditentukan dalam NEG tidak dapat dijangkau, atau saat nama resource (misalnya, nama Cloud Functions) tidak dapat ditemukan. 404.502
fault_filter_abort Error ini dapat terjadi jika pelanggan telah mengonfigurasi filter kesalahan dan filter kesalahan dipicu untuk permintaan tertentu. Nilainya harus dari 200 hingga 599.

Lihat log untuk validasi sertifikat klien mTLS

Untuk melihat error yang dicatat ke dalam log untuk koneksi tertutup selama validasi sertifikat klien TLS bersama, selesaikan langkah-langkah berikut.

Kueri konsol

  1. Di konsol Google Cloud, buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Klik tombol Tampilkan kueri.

  3. Tempelkan perintah berikut ke dalam kolom kueri. Ganti FORWARDING_RULE_NAME dengan nama aturan penerusan Anda.

    jsonPayload.statusDetails=~"client_cert"
    jsonPayload.@type="type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
    resource.labels.forwarding_rule_name=FORWARDING_RULE_NAME
    
  4. Klik Jalankan kueri.

Logging untuk bucket backend

Logging diaktifkan secara otomatis untuk load balancer dengan bucket backend. Anda tidak dapat mengubah atau menonaktifkan logging untuk bucket backend.

Logging untuk Google Cloud Armor

Tabel untuk pesan kegagalan HTTP statusDetail berisi beberapa pesan yang berlaku untuk Google Cloud Armor. Untuk mengetahui informasi lebih lanjut tentang apa yang dicatat dalam log Google Cloud Armor, lihat Menggunakan logging permintaan.

Logging untuk deployment VPC Bersama

Log dan metrik Load Balancer Aplikasi biasanya diekspor ke project yang memiliki aturan penerusan. Oleh karena itu, admin layanan—pemilik atau pengguna project tempat layanan backend dibuat—tidak akan memiliki akses ke log dan metrik load balancer secara default. Anda dapat menggunakan peran IAM untuk memberikan izin ini kepada admin layanan. Untuk mempelajari lebih lanjut peran IAM yang tersedia, dan langkah-langkah untuk memberikan akses, lihat Memberikan akses ke Monitoring.

Berinteraksi dengan log

Anda dapat berinteraksi dengan log Load Balancer Aplikasi eksternal menggunakan Cloud Logging API. Logging API menyediakan cara untuk memfilter log secara interaktif yang memiliki kolom tertentu. Alat ini mengekspor log yang cocok ke Cloud Logging, Cloud Storage, BigQuery, atau Pub/Sub. Untuk informasi selengkapnya tentang Logging API, lihat Ringkasan Cloud Logging API.

Pemantauan

Load balancer mengekspor data pemantauan ke Cloud Monitoring.

Anda dapat menggunakan metrik pemantauan untuk melakukan hal berikut:

  • Mengevaluasi konfigurasi, penggunaan, dan performa load balancer
  • Memecahkan masalah
  • Meningkatkan pemanfaatan resource dan pengalaman pengguna

Selain dasbor standar di Cloud Monitoring, Anda dapat membuat dasbor kustom, menyiapkan pemberitahuan, dan membuat kueri metrik melalui Cloud Monitoring API.

Melihat dasbor Cloud Monitoring standar

Cloud Monitoring menyediakan dasbor yang telah ditentukan untuk memantau load balancer Anda. Dasbor ini diisi secara otomatis oleh Cloud Monitoring.

Lakukan langkah-langkah berikut untuk mengakses dasbor standar:

  1. Buka Monitoring di konsol Google Cloud.

    Buka Monitoring

  2. Di panel navigasi Monitoring, klik Dasbor.

  3. Di bagian Kategori, klik GCP.

    • Guna melihat daftar dasbor untuk semua load balancer Google Cloud, pilih dasbor bernama Load Balancer Google Cloud. Untuk melihat dasbor load balancer tertentu, cari load balancer dalam daftar, lalu klik namanya.

    • Untuk melihat dasbor yang telah ditentukan hanya untuk Load Balancer Aplikasi eksternal Anda, pilih dasbor bernama External HTTP(S) Load Balancer. Halaman ini menampilkan dasbor yang menunjukkan rasio respons 5XX dan latensi backend untuk semua Load Balancer Aplikasi eksternal di project Anda. Panduan ini juga menyediakan daftar dasbor untuk semua Load Balancer Aplikasi eksternal di project Anda.

      Anda dapat mengklik setiap dasbor load balancer. Setiap dasbor menyertakan hal berikut:

      • Grafik yang terisi otomatis dan menampilkan perincian respons menurut class kode respons (5XX, 4XX, 3XX, 2XX)
      • Total latensi
      • Latensi backend
      • RTT Frontend
      • Jumlah permintaan
      • Link ke log untuk load balancer
  4. Untuk melihat dasbor layanan pihak ketiga, kembali ke halaman Dasbor. Di bagian Kategori, klik Lainnya.

    • Untuk melihat dasbor layanan pihak ketiga tertentu, cari dasbor tersebut dalam daftar, lalu klik namanya.

Menetapkan kebijakan pemberitahuan


Jika ingin mengikuti panduan langkah demi langkah untuk tugas ini langsung di Konsol Google Cloud, klik Pandu saya:

Pandu saya


Anda dapat membuat kebijakan pemberitahuan untuk memantau nilai metrik dan memberi tahu Anda saat metrik tersebut melanggar ketentuan.

  1. Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih  Alerting:

    Buka Alerting

  2. ika Anda belum membuat saluran notifikasi dan ingin menerima notifikasi, klik Edit Notification Channels dan tambahkan saluran notifikasi Anda. Kembali ke halaman Alerting setelah menambahkan saluran.
  3. Dari halaman Alerting, pilih Create policy.
  4. Untuk memilih metrik, luaskan menu Pilih metrik, lalu lakukan tindakan berikut:
    1. Untuk membatasi menu pada entri yang relevan, masukkan Global External Application Load Balancer Rule ke kolom filter. Jika tidak ada hasil setelah memfilter menu, nonaktifkan tombol Hanya tampilkan resource & metrik aktif.
    2. Untuk Resource type, pilih Global External Application Load Balancer Rule.
    3. Pilih Kategori metrik dan Metrik, lalu pilih Terapkan.
  5. Klik Next.
  6. Setelan di halaman Konfigurasi pemicu notifikasi menentukan kapan notifikasi dipicu. Pilih jenis kondisi dan, jika perlu, tentukan batasnya. Untuk informasi selengkapnya, lihat Membuat kebijakan pemberitahuan batas metrik.
  7. Klik Next.
  8. Opsional: Untuk menambahkan notifikasi ke kebijakan pemberitahuan, klik Notification channels. Dalam dialog ini, pilih satu atau beberapa saluran notifikasi dari menu, lalu klik OK.
  9. Opsional: Perbarui Incident autoclose duration. Kolom ini menentukan kapan Monitoring akan menutup insiden jika data metrik tidak ada.
  10. Opsional: Klik Documentation, lalu tambahkan informasi apa pun yang ingin Anda sertakan dalam pesan notifikasi.
  11. Klik Alert name dan masukkan nama untuk kebijakan pemberitahuan itu.
  12. Klik Create Policy.
Untuk mengetahui informasi selengkapnya, lihat Kebijakan pemberitahuan.

Menentukan dasbor kustom Cloud Monitoring

Anda dapat membuat dasbor Cloud Monitoring kustom untuk metrik load balancer:

  1. Di konsol Google Cloud, buka halaman Monitoring.

    Buka Monitoring

  2. Pilih Dasbor > Buat Dasbor.

  3. Klik Add Chart, lalu beri judul pada diagram.

  4. Untuk mengidentifikasi deret waktu yang akan ditampilkan, pilih jenis resource dan jenis metrik:

    1. Di bagian Resource & Metric, klik diagram, lalu di bagian Select a metric, pilih dari opsi yang tersedia:
      • Untuk Load Balancer Aplikasi eksternal global, pilih jenis resource Global External Application Load Balancer Rule.
    2. Klik Terapkan.
  5. Untuk menentukan filter pemantauan, klik Filter > Tambahkan filter.

  6. Klik Save.

Frekuensi dan retensi pelaporan metrik

Metrik untuk Load Balancer Aplikasi eksternal diekspor ke Cloud Monitoring dalam batch perincian 1 menit. Data pemantauan disimpan selama enam (6) minggu. Metrik didasarkan pada traffic sampel (frekuensi sampling bersifat dinamis dan tidak dapat disesuaikan). Dasbor ini menyediakan analisis data dalam interval default 1 jam (satu jam), 6 jam (enam jam), 1 hari (satu hari), 1 W (satu minggu), dan 6 W (enam minggu). Anda dapat meminta analisis secara manual dalam interval apa pun mulai dari 6 W hingga 1 menit.

Metrik pemantauan

Anda dapat memantau metrik berikut untuk Load Balancer Aplikasi eksternal.

Metrik untuk Load Balancer Aplikasi eksternal global berikut dilaporkan ke Cloud Monitoring. Metrik ini diawali dengan loadbalancing.googleapis.com/.

Metrik Nama Deskripsi
Jumlah permintaan https/request_count Jumlah permintaan yang dilayani oleh Load Balancer Aplikasi eksternal
Jumlah byte permintaan https/request_bytes_count Jumlah byte yang dikirim sebagai permintaan dari klien ke Load Balancer Aplikasi eksternal
Jumlah byte respons https/response_bytes_count Jumlah byte yang dikirim sebagai respons dari Load Balancer Aplikasi eksternal ke klien
Total latensi https/total_latencies

Distribusi latensi. Latensi adalah waktu antara byte pertama permintaan diterima hingga byte terakhir respons yang dikirim oleh GFE.

Total latensi diukur berdasarkan permintaan/respons. Jeda di antara permintaan pada koneksi sama yang menggunakan Connection: keep-alive tidak memengaruhi pengukuran. Pengukuran ini biasanya dikurangi hingga persentil ke-95 dalam tampilan Cloud Monitoring.

Contoh: Load balancer memiliki 1 permintaan per detik dari Inggris Raya, semuanya dengan latensi 100 md, dan 9 permintaan per detik dari Amerika Serikat, semuanya dengan latensi 50 md. Selama satu menit tertentu, ada 60 permintaan dari Inggris Raya dan 540 permintaan dari AS. Metrik pemantauan mempertahankan distribusi ke semua dimensi. Anda dapat meminta informasi seperti berikut:

  • median latensi keseluruhan (300/600) - 50 md
  • median latensi Inggris Raya (30/60) - 100 md
  • Latensi keseluruhan persentil ke-95 (570/600) - 100 md
RTT frontend* https/frontend_tcp_rtt Distribusi waktu round trip (RTT) yang dihaluskan yang diukur untuk setiap koneksi antara klien dan GFE (diukur dengan stack TCP GFE). Smoothed RTT adalah algoritma yang menangani variasi dan anomali yang mungkin terjadi dalam pengukuran RTT.
Latensi backend* https/backend_latencies

Distribusi latensi yang diukur dari saat byte permintaan pertama dikirim oleh GFE ke backend, hingga GFE menerima byte respons terakhir dari backend.

Untuk koneksi WebSocket, latensi backend berlaku untuk seluruh durasi sesi WebSocket.

Fraksi class kode respons Fraksi total respons Load Balancer Aplikasi eksternal yang berada di setiap class kode respons (2XX, 4XX, ...). Di Cloud Monitoring, nilai ini hanya tersedia di dasbor default. Tidak tersedia untuk dasbor kustom. Anda dapat menggunakan API untuk menyetel pemberitahuannya.
Jumlah permintaan backend https/backend_request_count Jumlah permintaan yang dikirim dari Load Balancer Aplikasi eksternal ke backend.
Jumlah byte permintaan backend https/backend_request_bytes_count Jumlah byte yang dikirim sebagai permintaan dari Load Balancer Aplikasi eksternal ke backend.
Jumlah byte respons backend https/backend_response_bytes_count Jumlah byte yang dikirim sebagai respons dari backend (termasuk cache) ke Load Balancer Aplikasi eksternal.
* Jumlah latensi Frontend RTT dan Backend tidak dijamin kurang dari atau sama dengan Total latensi. Hal ini karena meskipun kami melakukan polling RTT melalui soket dari GFE ke klien pada saat respons HTTP di-ACK, kami mengandalkan pelaporan kernel untuk beberapa pengukuran ini, dan kami tidak dapat menjamin bahwa kernel akan memiliki pengukuran RTT untuk respons HTTP yang diberikan. Hasil akhirnya adalah nilai RTT yang lancar dan juga dipengaruhi oleh respons HTTP, SYN/ACK, dan handshake SSL sebelumnya yang tidak memengaruhi pengaturan waktu sebenarnya permintaan HTTP saat ini.

Memfilter dimensi untuk metrik

Anda dapat menerapkan filter untuk metrik untuk Load Balancer Aplikasi eksternal.

Metrik akan digabungkan untuk setiap Load Balancer Aplikasi eksternal global. Anda dapat memfilter metrik gabungan berdasarkan dimensi berikut untuk resource.type="http_load_balancer".

Properti Deskripsi
backend_scope Cakupan Google Cloud (region atau zona) dari grup instance layanan backend yang menyalurkan koneksi.

Jika tidak ada grup instance yang tersedia atau jika permintaan dilayani oleh entity lain, Anda akan melihat salah satu nilai berikut, bukan region atau zona grup instance layanan backend.

  • FRONTEND_5XX - Error internal terjadi sebelum GFE dapat memilih backend. GFE mengembalikan 5XX ke klien.
  • INVALID_BACKEND - GFE tidak dapat menemukan backend yang responsif untuk ditetapkan permintaannya, sehingga menampilkan respons 5XX ke pemohon.
  • NO_BACKEND_SELECTED - Error atau gangguan lainnya terjadi sebelum backend dapat dipilih.
  • SERVED_FROM_BACKEND_BUCKET - Bucket backend menangani permintaan.
  • SERVED_FROM_CACHE - Cache GFE menangani permintaan, sehingga tidak ada backend yang ditetapkan.
  • MULTIPLE_BACKENDS - Permintaan ditayangkan oleh kemungkinan beberapa backend. Cache telah mengirim satu atau beberapa permintaan rentang byte ke backend yang berbeda. Gunakan perincian BACKEND_SCOPE untuk memvisualisasikan setiap permintaan load balancer-ke-backend.

Jika pengelompokan ini dipilih, diagram akan menampilkan metrik backend (load balancer-ke-backend), bukan metrik frontend (client-to-load balancer).
backend_scope = "backend_zone" Jika grup instance adalah grup instance zona, zona Google Cloud dari grup instance yang melayani permintaan klien. (Contoh: us-central1-a, europe-west1-b, asia-east1-c)

Saat pengelompokan ini dipilih, diagram akan menampilkan metrik backend (load balancer-ke-backend), bukan metrik frontend (client-to-load balancer).
backend_scope = "backend_region" Jika grup instance adalah grup instance regional, region Google Cloud dari grup instance yang melayani permintaan klien. (Contoh: us-central1, europe-west1, asia-east1)

Saat pengelompokan ini dipilih, diagram akan menampilkan metrik backend (load balancer-ke-backend), bukan metrik frontend (client-to-load balancer).
proxy_continent Benua HTTP(S) GFE yang menghentikan koneksi HTTP(S). (Contoh: America, Europe, Asia)
backend_type = "INSTANCE GROUP" Nama grup instance yang melayani permintaan klien.

Jika tidak ada grup instance yang tersedia atau jika permintaan dilayani oleh entity lain, Anda akan melihat salah satu nilai berikut, bukan grup instance.

  • FRONTEND_5XX - Error internal terjadi sebelum GFE dapat memilih backend. GFE mengembalikan 5XX ke klien.
  • INVALID_BACKEND - GFE tidak dapat menemukan backend yang responsif untuk ditetapkan permintaannya, sehingga menampilkan respons 5XX ke pemohon.
  • NO_BACKEND_SELECTED - Error atau gangguan lainnya terjadi sebelum backend dapat dipilih.
  • SERVED_FROM_BACKEND_BUCKET - Bucket backend menangani permintaan.
  • SERVED_FROM_CACHE - Cloud CDN menangani permintaan, sehingga tidak ada backend yang ditetapkan.
  • MULTIPLE_BACKENDS - Beberapa backend melayani permintaan.

Jika pengelompokan ini dipilih, diagram akan menampilkan metrik backend (load balancer-ke-backend), bukan metrik frontend (client-to-load balancer).
backend_target_type = "KEMBALIEND_SERVICE" Nama layanan backend yang melayani permintaan.
matched_url_path_rule Aturan jalur peta URL yang cocok dengan awalan permintaan HTTP(S) (maksimal 50 karakter).
forwarding_rule_name Nama aturan penerusan yang digunakan oleh klien untuk mengirim permintaan.

Langkah selanjutnya