Logging
Anda dapat mengaktifkan, menonaktifkan, dan melihat log untuk layanan backend Load Balancer Aplikasi eksternal. Untuk Load Balancer Aplikasi eksternal dengan bucket backend, logging akan otomatis diaktifkan dan tidak dapat dinonaktifkan.
Anda mengaktifkan atau menonaktifkan logging untuk setiap layanan backend. Anda dapat mengonfigurasi apakah akan mencatat log semua permintaan atau fraksi sampel acak.
Anda harus memastikan bahwa Anda tidak memiliki pengecualian log yang berlaku untuk Load Balancer Aplikasi eksternal. Untuk mengetahui informasi tentang cara memverifikasi bahwa log Cloud HTTP Load
Balancer
diizinkan, lihat
Filter pengecualian.
Pengambilan sampel dan pengumpulan log
Permintaan (dan respons yang sesuai) yang ditangani oleh instance virtual machine (VM) backend load balancer diambil sampelnya. Permintaan sampel ini kemudian
diproses untuk membuat log. Anda mengontrol fraksi permintaan yang
dimunculkan sebagai entri log sesuai dengan
parameter logConfig.sampleRate
.
Jika logConfig.sampleRate
adalah 1.0
(100%), artinya log
dibuat untuk semua permintaan dan ditulis ke Cloud Logging.
Mengaktifkan logging di layanan backend baru
Konsol
Di konsol Google Cloud, buka halaman Load Balancing.
Klik nama load balancer Anda.
Klik
Edit.Klik Backend Configuration.
Pilih Create a backend service.
Lengkapi kolom layanan backend yang diperlukan.
Di bagian Logging, centang kotak Enable logging.
Tetapkan pecahan Sample rate. Anda dapat menetapkan angka dari
0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Nilai defaultnya adalah1.0
.Untuk menyelesaikan pengeditan layanan backend, klik Update.
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
di mana
--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 dari0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Hanya berguna dengan parameter--enable-logging
. Mengaktifkan logging, tetapi menetapkan frekuensi sampling ke0.0
sama dengan menonaktifkan logging. Nilai default-nya adalah1.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
di mana
--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 dari0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Hanya berguna dengan parameter--enable-logging
. Mengaktifkan logging, tetapi menetapkan frekuensi sampling ke0.0
sama dengan menonaktifkan logging. Nilai default-nya adalah1.0
.
Mengaktifkan logging di layanan backend yang ada
Konsol
Di konsol Google Cloud, buka halaman Load Balancing.
Klik nama load balancer Anda.
Klik
Edit.Klik Backend Configuration.
Klik
Edit di samping layanan backend Anda.Di bagian Logging, centang kotak Enable logging.
Di kolom Sample rate, tetapkan probabilitas sampling. Anda dapat menetapkan angka dari
0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Nilai default-nya adalah1.0
.Untuk menyelesaikan pengeditan layanan backend, klik Update.
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
di mana
--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 dari0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Hanya berguna dengan parameter--enable-logging
. Mengaktifkan logging, tetapi menetapkan frekuensi sampling ke0.0
sama dengan menonaktifkan logging. Nilai default-nya adalah1.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
di mana
--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 dari0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Hanya berguna dengan parameter--enable-logging
. Mengaktifkan logging, tetapi menetapkan frekuensi sampling ke0.0
sama dengan menonaktifkan logging. Nilai default-nya adalah1.0
.
Menonaktifkan atau mengubah logging di layanan backend yang ada
Konsol
Di konsol Google Cloud, buka halaman Load Balancing.
Klik nama load balancer Anda.
Klik
Edit.Klik Backend Configuration.
Klik
Edit di samping layanan backend Anda.Untuk menonaktifkan logging sepenuhnya, di bagian Logging, hapus centang pada kotak Enable logging.
Jika Anda mengaktifkan logging, Anda dapat menetapkan fraksi Sample rate yang berbeda. Anda dapat menetapkan angka dari
0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Nilai defaultnya adalah1.0
. Misalnya,0.2
berarti 20% permintaan sampel menghasilkan log.Untuk menyelesaikan pengeditan layanan backend, klik Update.
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
di mana
--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
di mana
--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
di mana
--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 dari0.0
hingga1.0
, dengan0.0
berarti tidak ada permintaan yang dicatat ke dalam log dan1.0
berarti 100% permintaan dicatat ke dalam log. Hanya berguna dengan parameter--enable-logging
. Mengaktifkan logging, tetapi menetapkan frekuensi sampling ke0.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:
Log HTTP(S) diindeks terlebih dahulu oleh aturan penerusan, lalu oleh peta URL.
Untuk melihat log, buka halaman Logs Explorer:
Untuk melihat semua log, di menu filter Resource, pilih Cloud HTTP Load Balancer > All forwarding rules.
Untuk melihat log satu aturan penerusan, pilih satu nama aturan penerusan.
Untuk melihat log untuk satu peta URL, pilih aturan penerusan, lalu pilih peta URL.
Kolom log berjenis boolean biasanya hanya muncul jika memiliki nilai
true
. Jika kolom boolean memiliki nilai false
, kolom tersebut akan dihilangkan 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. Data log berisi kolom wajib diisi, yang merupakan kolom default dari setiap data log.
Kolom | Format kolom | Jenis kolom: Wajib Diisi atau Opsional | Deskripsi |
---|---|---|---|
severity insertID logName |
LogEntry | Wajib | Kolom umum seperti yang dijelaskan dalam entri log. |
stempel waktu | string (format Timestamp) | Opsional | Waktu saat GFE lapisan pertama menerima permintaan. |
httpRequest | HttpRequest | Wajib | Protokol umum untuk mencatat permintaan HTTP.
|
resource | MonitoredResource | Wajib | MonitoredResource adalah jenis resource yang terkait dengan entri log. MonitoredResourceDescriptor
menjelaskan skema objek |
jsonPayload | objek (format Struct) | Wajib | Payload entri log yang dinyatakan sebagai objek JSON. Objek JSON berisi kolom berikut:
|
string | Wajib | Kolom statusDetails
menyimpan string yang menjelaskan alasan load balancer menampilkan
kode status HTTP yang ditampilkan. Untuk informasi selengkapnya tentang string log ini, lihat pesan keberhasilan HTTP statusDetails dan pesan kegagalan HTTP statusDetails. |
|
string | Wajib | Kolom backendTargetProjectNumber menyimpan nomor project tempat target backend—layanan backend atau bucket backend—telah dibuat. Kolom ini memiliki format:
"projects/PROJECT_NUMBER" . Informasi ini hanya tersedia untuk Load Balancer Aplikasi eksternal global yang menggunakan respons error kustom. |
|
bilangan bulat | Wajib | overrideResponseCode menyimpan kode respons penggantian
yang diterapkan ke respons yang dikirim ke klien. Informasi ini hanya tersedia untuk Load Balancer Aplikasi eksternal global yang menggunakan respons error kustom. |
|
string | Wajib | Kolom errorService menyimpan layanan backend yang menyediakan respons error kustom. Informasi ini hanya tersedia untuk Load Balancer Aplikasi eksternal global yang menggunakan respons error kustom. |
|
string | Wajib | Kolom errorBackendStatusDetails menyimpan
statusDetails respons akhir yang ditayangkan ke klien.
Informasi ini hanya tersedia untuk Load Balancer Aplikasi eksternal global yang menggunakan respons error kustom. |
|
AuthzPolicyInfo | Wajib | Kolom authzPolicyInfo menyimpan informasi tentang
hasil kebijakan otorisasi. Informasi ini hanya tersedia untuk Load Balancer Aplikasi eksternal global yang telah mengaktifkan
kebijakan otorisasi. Untuk mengetahui informasi selengkapnya, lihat
yang dicatat ke dalam log untuk kebijakan otorisasi. |
|
string | Opsional | Kolom loadBalancingScheme hanya diisi untuk
pelanggan yang menggunakan fitur migrasi Load Balancer Aplikasi klasik. Kolom ini menyimpan string yang menjelaskan skema load balancing
yang digunakan untuk merutekan permintaan. Kemungkinan nilainya adalah
EXTERNAL atau EXTERNAL_MANAGED . |
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 berjalan. Zonanya adalah
global . |
Pesan berhasil HTTP statusDetails
statusDetails (berhasil) | Arti | Kode respons yang menyertainya |
---|---|---|
byte_range_caching
|
Permintaan HTTP ditayangkan menggunakan caching rentang byte Cloud CDN. | Semua kode respons yang dapat di-cache dapat digunakan. |
response_from_cache
|
Permintaan HTTP ditayangkan dari cache Cloud CDN. | Semua kode respons yang dapat di-cache dapat digunakan. |
response_from_cache_validated
|
Kode yang ditampilkan ditetapkan dari entri cache Cloud CDN yang divalidasi oleh backend. | Semua kode respons yang dapat di-cache dapat digunakan. |
response_sent_by_backend
|
Permintaan HTTP berhasil di-proxy ke backend, dan respons ditampilkan oleh backend. | Kode respons HTTP ditetapkan oleh software yang berjalan di backend. |
Pesan kegagalan HTTP statusDetails
statusDetails (kegagalan) | Arti | Kode status yang menyertainya |
---|---|---|
aborted_request_due_to_backend_early_response
|
Permintaan dengan isi dibatalkan karena backend mengirimkan respons awal dengan kode status. Respons diteruskan ke klien. Permintaan dihentikan. | 4XX atau 5XX
|
backend_connection_closed_after_partial_response_sent
|
Koneksi backend ditutup secara tidak terduga setelah respons parsial dikirim ke klien. | Kode status HTTP ditetapkan oleh software yang berjalan di backend.
Kode status HTTP Kode status HTTP adalah |
backend_connection_closed_before_data_sent_to_client
|
Backend tiba-tiba menutup koneksinya ke load balancer sebelum respons di-proxy ke klien. | 502, 503 Kode status HTTP adalah |
backend_early_response_with_non_error_status
|
Backend mengirim kode status non-error (1XX atau 2XX ) ke permintaan sebelum menerima seluruh isi permintaan.
|
502 , 503
|
backend_interim_response_not_supported
|
Backend mengirim kode status 1XX sementara ke permintaan dalam konteks saat respons sementara tidak didukung.
|
|
backend_response_corrupted
|
Isi respons HTTP yang dikirim oleh backend memiliki encoding transfer chunked yang tidak valid atau rusak. | Setiap kode status mungkin bergantung pada sifat kerusakan.
Sering kali 502 , 503 .
|
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 , 503
|
backend_timeout
|
Waktu tunggu backend habis saat membuat respons. Untuk koneksi websocket:
|
Kode status HTTP adalah |
banned_by_security_policy
|
Permintaan tersebut dilarang oleh aturan larangan berbasis kapasitas 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 mendukung rentang byte. Cloud CDN
menerima respons yang tidak konsisten (misalnya, respons dengan kode status
selain 206 Partial Content yang diharapkan). Hal ini terjadi
saat mencoba mengisi 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 mendukung rentang byte. Cloud CDN
menerima respons yang tidak konsisten (misalnya, respons dengan kode status
selain 206 Partial Content yang diharapkan). Hal ini terjadi
saat mencoba mengisi cache menggunakan
permintaan rentang byte.
Load balancer kemudian meneruskan respons yang tidak konsisten ke klien.
|
Ditampilkan dari backend—kode status apa pun dapat digunakan. |
byte_range_caching_retrieval_abandoned
|
Klien membatalkan permintaan rentang byte atau permintaan validasi yang dimulai oleh Cloud CDN. | Ditampilkan dari backend—kode status apa pun dapat digunakan. |
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 yang mendetail. | 2XX
|
cache_lookup_failed_after_partial_response
|
Load balancer gagal menayangkan respons lengkap dari cache Cloud CDN karena error internal. | 2XX
|
cache_lookup_timeout_after_partial_response
|
Waktu tunggu 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 sebagian. | Ditampilkan dari backend—kode status apa pun dapat digunakan. Kode status HTTP adalah |
client_disconnected_before_any_response
|
Koneksi ke klien terputus sebelum load balancer mengirim respons apa pun. |
Kode status HTTP adalah |
client_timed_out
|
Google Front End (GFE) membuat koneksi klien tidak ada aktivitas karena tidak ada progres saat membuat proxy permintaan atau respons. | 0 atau 408
|
client_cert_invalid_rsa_key_size
|
Sertifikat klien akhir atau perantara memiliki ukuran kunci RSA yang tidak valid. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0
|
client_cert_unsupported_elliptic_curve_key
|
Sertifikat klien atau perantara menggunakan kurva ekliptik yang tidak didukung. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0
|
client_cert_unsupported_key_algorithm
|
Sertifikat klien atau perantara menggunakan algoritma non-RSA atau non-ECDSA. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0
|
client_cert_pki_too_large
|
PKI yang akan digunakan untuk validasi memiliki lebih dari tiga sertifikat perantara yang memiliki Subjek dan Info Kunci Publik Subjek yang sama. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi tertutup. | 0
|
client_cert_chain_max_name_constraints_exceeded
|
Sertifikat intermediate yang diberikan untuk validasi memiliki lebih dari sepuluh batasan nama. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0
|
client_cert_chain_invalid_eku |
Sertifikat klien atau penerbitnya tidak memiliki
Penggunaan Kunci yang Diperluas
(EKU) yang menyertakan clientAuth . Untuk informasi selengkapnya, lihat
Error yang dicatat ke dalam log untuk koneksi yang ditutup.
|
0
|
client_cert_validation_timed_out
|
Batas waktu terlampaui saat memvalidasi rantai sertifikat. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0
|
client_cert_validation_search_limit_exceeded
|
Batas kedalaman atau iterasi tercapai saat mencoba memvalidasi rantai sertifikat. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0
|
client_cert_validation_not_performed
|
Anda telah mengonfigurasi mTLS tanpa menyiapkan TrustConfig .
Untuk informasi selengkapnya, lihat
Error yang dicatat ke dalam log untuk koneksi yang ditutup.
|
0
|
client_cert_not_provided
|
Klien tidak memberikan sertifikat yang diminta selama handshake. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0
|
client_cert_validation_failed
|
Sertifikat klien gagal dalam validasi dengan TrustConfig
saat algoritma hashing seperti MD4, MD5, dan SHA-1 digunakan.
Untuk informasi selengkapnya, lihat
Error yang dicatat ke dalam log untuk koneksi yang ditutup.
|
0
|
config_not_found
|
Load balancer tidak memiliki konfigurasi project. Hal ini mungkin terjadi secara berkala, terutama setelah Anda melakukan perubahan konfigurasi yang menambahkan resource baru. Karena ada dua lapisan proxy, terkadang GFE lapisan pertama mungkin gagal menjangkau GFE lapisan kedua. Hal ini dapat disebabkan oleh error internal, seperti peluncuran yang sedang berlangsung, kelebihan beban load balancer, atau masalah konfigurasi yang terputus-putus. |
404 , 502 , 503
|
direct_response
|
Load balancer mengganti permintaan ini dan menampilkan respons tetap. | Anda mungkin melihat kode status HTTP apa pun, bergantung pada sifat masalah. Misalnya, kode status 410 HTTP berarti
backend tidak tersedia karena keterlambatan pembayaran.
|
denied_by_security_policy
|
Load balancer menolak permintaan ini karena adanya kebijakan keamanan Google Cloud Armor. | Dikonfigurasi dalam kebijakan keamanan. |
error_uncompressing_gzipped_body
|
Terjadi error saat mengekstrak respons HTTP yang di-gzip. | 502 , 503
|
failed_to_connect_to_backend
|
Load balancer gagal terhubung ke backend. Hal ini mencakup waktu tunggu selama fase koneksi. | 502 , 503 |
failed_to_pick_backend
|
Load balancer gagal memilih backend yang sehat untuk menangani permintaan. | 502 , 503
|
failed_to_negotiate_alpn
|
Load balancer dan backend gagal menegosiasikan protokol lapisan aplikasi (seperti HTTP/2) yang akan digunakan untuk berkomunikasi satu sama lain melalui TLS. | 502 , 503
|
headers_too_long
|
Header permintaan lebih besar dari batas maksimum yang diizinkan. | 413
|
http_version_not_supported
|
Versi HTTP tidak didukung. Hanya HTTP 0.9, 1.0, 1.1, dan 2.0 yang didukung. | 400
|
internal_error
|
Terjadi error internal di load balancer. Biasanya mewakili error sementara di 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 alamat FQDN/IP dan port yang valid. | 4XX
|
invalid_request_headers
|
Header permintaan HTTP yang diterima dari klien berisi minimal satu karakter yang tidak diizinkan berdasarkan spesifikasi HTTP yang berlaku. Misalnya, nama kolom header yang menyertakan tanda kutip ganda
( Untuk informasi selengkapnya, lihat: |
400
|
invalid_http2_client_header_format
|
Header HTTP/2 dari klien tidak valid. Untuk informasi selengkapnya, lihat
invalid_request_headers .
|
400
|
invalid_http2_client_request_path
|
Jalur permintaan HTTP/2 dari klien berisi setidaknya satu karakter yang tidak diizinkan berdasarkan spesifikasi URI. Untuk mengetahui informasi selengkapnya, lihat bagian "3.3. Path" di RFC 3986. |
400
|
multiple_iap_policies
|
Beberapa kebijakan Identity-Aware Proxy (IAP) tidak dapat digabungkan. Jika Anda memiliki kebijakan IAP yang dilampirkan ke layanan backend dan kebijakan lain yang dilampirkan ke objek serverless, hapus salah satu kebijakan dan coba lagi. Objek serverless mencakup fungsi App Engine, Cloud Run, dan Cloud Functions. | 500
|
malformed_chunked_body
|
Isi permintaan tidak dienkode dengan benar. | 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 , 503
|
required_body_but_no_content_length
|
Permintaan HTTP memerlukan isi, tetapi header permintaan tidak menyertakan panjang konten atau header chunked encoding transfer. | 400 atau 403
|
secure_url_rejected
|
Permintaan dengan URL https:// diterima melalui koneksi HTTP/1.1 teks biasa.
|
400
|
ssl_certificate_san_verification_failed
|
Load balancer tidak dapat menemukan Nama Alternatif Subjek (SAN) dalam sertifikat SSL yang ditampilkan oleh backend yang cocok dengan nama host yang dikonfigurasi. | 502 , 503
|
ssl_certificate_chain_verification_failed
|
Sertifikat SSL yang ditampilkan oleh backend gagal dalam melakukan validasi sertifikat SSL. | 502 , 503
|
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. | Setiap kode status yang 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. |
|
serverless_neg_routing_failed
|
Permintaan NEG serverless tidak dapat dikirim. Error ini dapat terjadi saat region yang ditentukan dalam NEG tidak dapat dijangkau, atau saat nama resource (misalnya, nama fungsi Cloud Run) tidak dapat ditemukan. | 404 , 502 , 503
|
fault_filter_abort
|
Error ini dapat terjadi jika pelanggan telah mengonfigurasi filter error dan filter error dipicu untuk permintaan tertentu. | Nilai harus dari 200 hingga 599 .
|
Melihat log untuk validasi sertifikat klien mTLS
Untuk melihat error yang dicatat ke dalam log untuk koneksi tertutup selama validasi sertifikat klien TLS timbal balik, selesaikan langkah-langkah berikut.
Kueri konsol
Di konsol Google Cloud, buka halaman Logs Explorer.
Klik tombol Show query.
Tempel 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
Klik Run query.
Log permintaan kebijakan otorisasi
Objek authz_info
dalam payload JSON Entri Log Load Balancer berisi
informasi tentang kebijakan otorisasi. Anda dapat mengonfigurasi metrik berbasis log
untuk traffic yang diizinkan atau ditolak oleh kebijakan ini. Periksa
detail log kebijakan otorisasi lainnya.
Kolom | Jenis | Deskripsi |
---|---|---|
authz_info.policies[] |
objek | Daftar kebijakan yang cocok dengan permintaan. |
authz_info.policies[].name |
string | Nama kebijakan otorisasi yang cocok dengan permintaan.
Nama kosong karena alasan berikut:
|
authz_info.policies[].result |
enum | Hasilnya dapat berupa ALLOWED atau DENIED . |
authz_info.policies[].details |
string | Detailnya mencakup hal berikut:
|
authz_info.overall_result |
enum | Hasilnya dapat berupa ALLOWED atau DENIED . |
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 selengkapnya tentang log yang disimpan 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 yang ditetapkan. Fungsi ini mengekspor log yang cocok ke Cloud Logging, Cloud Storage, BigQuery, atau Pub/Sub. Untuk mengetahui informasi selengkapnya tentang Logging API, lihat Ringkasan Logging API.
Pemantauan
Load balancer mengekspor data pemantauan ke 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 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 standar untuk memantau load balancer Anda. Dasbor ini diisi secara otomatis oleh Monitoring.
Load balancer tidak muncul sebagai resource yang dapat dipantau kecuali jika load balancer ada dalam project saat ini.
Lakukan langkah-langkah berikut untuk mengakses dasbor standar:
Di konsol Google Cloud, buka halaman Monitoring.
Di panel navigasi Monitoring, klik Dasbor.
Di bagian Kategori, klik GCP.
Untuk melihat daftar dasbor untuk semua load balancer Google Cloud , pilih dasbor bernama Load Balancer Google Cloud. Untuk melihat dasbor load balancer tertentu, temukan load balancer tersebut dalam daftar, lalu klik namanya.
Untuk melihat dasbor standar hanya untuk Load Balancer Aplikasi eksternal, pilih dasbor bernama Load Balancer HTTP(S) Eksternal. Halaman ini menampilkan dasbor yang menunjukkan rasio respons 5XX dan latensi backend untuk semua Load Balancer Aplikasi eksternal di project Anda. Halaman ini juga menyediakan daftar dasbor untuk semua Load Balancer Aplikasi eksternal di project Anda.
Anda dapat mengklik dasbor setiap load balancer. Setiap dasbor menyertakan hal berikut:
- Grafik yang telah diisi sebelumnya yang menampilkan perincian respons menurut
class kode status (
5XX
,4XX
,3XX
,2XX
) - Total latensi
- Latensi backend
- RTT frontend
- Jumlah permintaan
- Link ke log untuk load balancer
- Grafik yang telah diisi sebelumnya yang menampilkan perincian respons menurut
class kode status (
Untuk melihat dasbor layanan pihak ketiga, kembali ke halaman Dasbor. Di bagian Kategori, klik Lainnya.
- Untuk melihat dasbor layanan pihak ketiga tertentu, temukan dasbor tersebut dalam daftar, lalu klik namanya.
Menentukan kebijakan pemberitahuan
Jika ingin mengikuti panduan langkah demi langkah untuk tugas ini langsung di Konsol Google Cloud, klik Pandu saya:
Anda dapat membuat kebijakan pemberitahuan untuk memantau nilai metrik dan memberi tahu Anda saat metrik tersebut melanggar ketentuan.
-
Di konsol Google Cloud, buka halaman notifications Alerting:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Jika 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.
- Dari halaman Alerting, pilih Create policy.
- Untuk memilih metrik, luaskan menu Select a metric, lalu lakukan tindakan berikut:
- 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. - Untuk Resource type, pilih Global External Application Load Balancer Rule.
- Pilih Kategori metrik dan Metrik, lalu pilih Terapkan.
- Untuk membatasi menu pada entri yang relevan, masukkan
- Klik Berikutnya.
- 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.
- Klik Berikutnya.
- Opsional: Untuk menambahkan notifikasi ke kebijakan pemberitahuan, klik Notification channels. Dalam dialog ini, pilih satu atau beberapa saluran notifikasi dari menu, lalu klik OK.
- Opsional: Perbarui Incident autoclose duration. Kolom ini menentukan kapan Monitoring akan menutup insiden jika data metrik tidak ada.
- Opsional: Klik Documentation, lalu tambahkan informasi apa pun yang ingin Anda sertakan dalam pesan notifikasi.
- Klik Alert name dan masukkan nama untuk kebijakan pemberitahuan itu.
- Klik Create Policy.
Menentukan dasbor kustom Cloud Monitoring
Anda dapat membuat dasbor Cloud Monitoring kustom untuk metrik load balancer:
Di konsol Google Cloud, buka halaman Monitoring.
Pilih Dashboards > Create Dashboard.
Klik Tambahkan Diagram, lalu beri judul diagram.
Untuk mengidentifikasi deret waktu yang akan ditampilkan, pilih jenis resource dan jenis metrik:
- 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.
- Klik Terapkan.
- Di bagian Resource & Metric, klik diagram, lalu di bagian Select a metric, pilih dari opsi yang tersedia:
Untuk menentukan filter pemantauan, klik Filter > Tambahkan filter.
Klik Simpan.
Frekuensi dan retensi pelaporan metrik
Metrik untuk Load Balancer Aplikasi eksternal diekspor ke Cloud Monitoring dalam batch perincian 1 menit. Data Monitoring disimpan selama enam (6) minggu.
Dasbor ini menyediakan analisis data dalam interval default 1H (satu jam), 6H (enam jam), 1D (satu hari), 1W (satu minggu), dan 6W (enam minggu). Anda dapat meminta analisis secara manual dalam interval berapa pun dari 6W hingga 1 menit.
Metrik pemantauan
Anda dapat memantau metrik berikut untuk Load Balancer Aplikasi eksternal.
Metrik berikut untuk Load Balancer Aplikasi eksternal global
dilaporkan ke Cloud Monitoring.
Metrik ini diawali dengan loadbalancing.googleapis.com/
.
Metrik | Nama | Deskripsi |
---|---|---|
Jumlah permintaan | https/request_count |
Jumlah permintaan yang ditayangkan 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 total latensi. Total latensi adalah waktu dalam milidetik antara byte pertama permintaan yang diterima oleh proxy dan byte terakhir respons yang dikirim oleh proxy. Hal ini mencakup: waktu yang diperlukan proxy untuk memproses permintaan, waktu yang diperlukan untuk mengirim permintaan dari proxy ke backend, waktu yang diperlukan backend untuk memproses permintaan, waktu yang diperlukan untuk mengirim respons kembali ke proxy, dan waktu yang diperlukan proxy untuk memproses respons dan mengirim respons ke klien. RTT ini tidak mencakup RTT antara klien dan proxy. Selain itu,
jeda di antara permintaan pada koneksi yang sama yang menggunakan Untuk koneksi websocket, kolom ini merujuk pada seluruh durasi waktu koneksi.* 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 menit tertentu, ada 60 permintaan dari Inggris Raya dan 540 permintaan dari Amerika Serikat. Metrik pemantauan mempertahankan distribusi di semua dimensi. Anda dapat meminta informasi seperti berikut:
|
RTT Frontend† | https/frontend_tcp_rtt |
Distribusi RTT frontend. RTT frontend adalah waktu dalam milidetik yang diperlukan data untuk berpindah dari klien ke proxy dan kembali lagi. Ini mencakup waktu yang diperlukan untuk permintaan berpindah dari klien ke proxy dan kembali dari proxy ke klien. Nilai ini tidak diperbarui selama masa aktif koneksi. Misalnya, menyiapkan koneksi (TCP) dengan handshake 3 arah akan memerlukan 1,5 RTT. Saat permintaan diproses, load balancer mengambil sampel dan menghitung rata-rata waktu yang diperlukan data untuk berpindah bolak-balik antara klien dan proxy, lalu mencatat nilai RTT yang dihaluskan ke dalam log. RTT yang dihaluskan adalah algoritma yang menangani variasi dan anomali yang mungkin terjadi dalam pengukuran RTT. |
Latensi backend† | https/backend_latencies |
Distribusi latensi backend. Latensi backend adalah waktu dalam milidetik antara byte pertama permintaan yang diterima oleh backend dan byte terakhir respons yang diterima oleh proxy. Hal ini mencakup: waktu yang diperlukan untuk mengirim permintaan dari proxy ke backend, waktu yang diperlukan oleh backend untuk memproses permintaan, dan waktu yang diperlukan untuk mengirim respons kembali ke proxy. |
Fraksi class kode respons | Fraksi dari total respons Load Balancer Aplikasi eksternal yang ada di setiap
class kode respons (2XX , 4XX , ...).
Di Pemantauan, nilai ini
hanya tersedia di dasbor default. Fitur ini tidak tersedia untuk dasbor
kustom. Anda dapat menggunakan Monitoring API untuk menetapkan pemberitahuan. |
|
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. |
* Untuk memantau koneksi websocket, buat layanan backend khusus untuk websocket.
† Jumlah RTT Frontend dan latensi Backend mungkin tidak kurang dari atau sama dengan Total latensi. Hal ini karena meskipun kami melakukan polling RTT melalui socket dari GFE ke klien pada saat respons HTTP dikonfirmasi, kami mengandalkan pelaporan kernel untuk beberapa pengukuran ini, dan kami tidak dapat memastikan bahwa kernel akan memiliki pengukuran RTT untuk respons HTTP tertentu. Hasil akhirnya adalah nilai RTT yang dihaluskan yang juga terpengaruh oleh respons HTTP sebelumnya, SYN/ACK, dan handshake SSL yang tidak memengaruhi waktu sebenarnya permintaan HTTP saat ini.
Memfilter dimensi untuk metrik
Anda dapat menerapkan filter untuk metrik untuk Load Balancer Aplikasi eksternal.
Metrik digabungkan untuk setiap Load Balancer Aplikasi klasik dan Load Balancer Aplikasi eksternal global. Anda dapat memfilter metrik gabungan menurut dimensi berikut untuk resource.type="http_load_balancer"
atau resource.type="https_lb_rule"
. Perhatikan bahwa tidak semua dimensi tersedia di
semua metrik.
Properti | Deskripsi |
---|---|
backend_scope |
Cakupan Google Cloud (region atau zona) grup instance layanan backend yang menyalurkan koneksi. Jika tidak ada grup instance yang tersedia atau jika permintaan ditayangkan oleh entity lain, Anda akan melihat salah satu nilai berikut, bukan region atau zona grup instance layanan backend.
Jika pengelompokan ini dipilih, diagram akan menampilkan metrik backend (load balancer-to-backend), bukan metrik frontend (client-to-load balancer). |
backend_type |
Nama grup backend yang melayani permintaan klien.
Dapat berupa
|
backend_target_type |
Nama layanan backend yang melayani permintaan. Dapat berupa
BACKEND_SERVICE , BACKEND_BUCKET ,
UNKNOWN jika backend tidak ditetapkan, atau
NO_BACKEND_SELECTED jika error atau gangguan lainnya
terjadi sebelum backend dipilih atau terjadi pengalihan URL. |
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. |
url_map_name |
Aturan jalur peta URL atau aturan rute yang dikonfigurasi sebagai bagian dari kunci peta URL. Dapat berupa
|
target_proxy_name |
Nama objek proxy HTTP(S) target yang dirujuk oleh aturan penerusan. |
backend_target_name |
Nama target backend. Target dapat berupa layanan backend atau bucket backend. UNKNOWN ditampilkan jika backend tidak ditetapkan.
|
backend_name |
Nama grup instance, bucket, atau NEG backend.
UNKNOWN ditampilkan jika backend tidak ditetapkan, atau
NO_BACKEND_SELECTED jika error atau gangguan lainnya terjadi
sebelum backend dipilih atau pengalihan URL terjadi. |
backend_scope_type |
Jenis cakupan grup backend. Dapat berupa
|
proxy_continent |
Benua GFE HTTP(S) yang menghentikan koneksi HTTP(S)—misalnya, America , Europe ,
Asia |
protocol |
Protokol yang digunakan oleh klien, salah satu dari HTTP/1.0 ,
HTTP/1.1 , HTTP/2.0 , QUIC/HTTP/2.0 ,
UNKNOWN . |
response_code |
Kode status HTTP permintaan. |
response_code_class |
Class kode status HTTP permintaan: 200 ,
300 , 400 , 500 , atau 0 untuk
tidak ada. |
cache_result |
Hasil cache untuk menayangkan permintaan HTTP melalui proxy: HIT ,
MISS , DISABLED , PARTIAL_HIT (untuk
permintaan yang ditayangkan sebagian dari cache dan sebagian dari backend), atau
UNKNOWN . |
client_country |
Negara klien yang mengeluarkan permintaan HTTP—misalnya,
United States atau Germany . |
load_balancing_scheme |
Skema load balancing yang digunakan. Jika Load Balancer Aplikasi klasik digunakan, nilainya adalah EXTERNAL . Jika Load Balancer Aplikasi eksternal global digunakan, nilainya adalah EXTERNAL_MANAGED . |