Dokumen ini memberikan informasi yang Anda perlukan untuk memahami logging dan metrik pemantauan untuk Load Balancer Aplikasi internal. Metrik logging dan pemantauan untuk Load Balancer Aplikasi internal regional dan Load Balancer Aplikasi internal lintas region sama.
Logging
Anda dapat mengaktifkan logging berdasarkan layanan backend. Satu peta URL Load Balancer Aplikasi internal dapat mereferensikan lebih dari satu layanan backend. Anda mungkin perlu mengaktifkan logging untuk beberapa layanan backend, bergantung pada konfigurasi Anda.
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.
Kolom opsional
Data log berisi kolom wajib diisi dan kolom opsional. Bagian Yang dicatat ke dalam log mencantumkan kolom yang bersifat opsional dan wajib diisi. Semua kolom wajib diisi selalu disertakan. Anda dapat menyesuaikan kolom opsional yang ingin disimpan.
Jika Anda memilih sertakan semua opsional, semua kolom opsional dalam format data log akan disertakan dalam log aliran. Saat kolom opsional baru ditambahkan ke format data, log aliran akan otomatis menyertakan kolom baru.
Jika Anda memilih kecualikan semua kolom opsional, semua kolom opsional akan dihapus.
Jika memilih kustom, Anda dapat menentukan kolom opsional yang ingin disertakan, seperti
tls.protocol,tls.cipher
.
Untuk petunjuk tentang cara menyesuaikan kolom opsional, lihat Mengaktifkan logging di layanan backend yang ada.
Mengaktifkan logging di layanan backend yang ada
Untuk Load Balancer Aplikasi internal regional, gunakan langkah-langkah berikut:
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.Klik Advanced configurations (Session affinity, connection draining timeout).
Klik Aktifkan 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 default-nya adalah1.0
.Opsional: Untuk menyertakan semua kolom opsional dalam log, di bagian Optional fields, klik Include all optional fields.
Untuk menyelesaikan pengeditan layanan backend, klik Update.
Untuk menyelesaikan pengeditan load balancer, klik Update.
gcloud
Untuk memperbarui layanan backend guna mengaktifkan logging, gunakan perintah gcloud compute
backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --enable-logging \ --logging-sample-rate=RATE \ --region=REGION \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
di mana
--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 defaultnya adalah1.0
.--logging-optional
memungkinkan Anda menentukan kolom opsional yang ingin Anda sertakan dalam log:INCLUDE_ALL_OPTIONAL
untuk menyertakan semua kolom opsional.EXCLUDE_ALL_OPTIONAL
(default) untuk mengecualikan semua kolom opsional.CUSTOM
untuk menyertakan daftar kustom kolom opsional yang Anda tentukan diOPTIONAL_FIELDS
.
--logging-optional-fields
memungkinkan Anda menentukan daftar kolom opsional yang dipisahkan koma yang ingin Anda sertakan dalam log.Misalnya,
tls.protocol,tls.cipher
hanya dapat ditetapkan jikaLOGGING_OPTIONAL_MODE
ditetapkan keCUSTOM
.
Untuk Load Balancer Aplikasi internal lintas-region, gunakan langkah-langkah berikut:
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.Klik Advanced configurations (Session affinity, connection draining timeout).
Klik Aktifkan 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 default-nya adalah1.0
.Opsional: Untuk menyertakan semua kolom opsional dalam log, di bagian Optional fields, klik Include all optional fields.
Untuk menyelesaikan pengeditan layanan backend, klik Update.
Untuk menyelesaikan pengeditan load balancer, klik Update.
gcloud
Untuk memperbarui layanan backend guna mengaktifkan logging, gunakan perintah gcloud compute
backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --enable-logging \ --logging-sample-rate=RATE \ --global \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
di mana
--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 defaultnya adalah1.0
.--logging-optional
memungkinkan Anda menentukan kolom opsional yang ingin Anda sertakan dalam log:INCLUDE_ALL_OPTIONAL
untuk menyertakan semua kolom opsional.EXCLUDE_ALL_OPTIONAL
(default) untuk mengecualikan semua kolom opsional.CUSTOM
untuk menyertakan daftar kustom kolom opsional yang Anda tentukan diOPTIONAL_FIELDS
.
--logging-optional-fields
memungkinkan Anda menentukan daftar kolom opsional yang dipisahkan koma yang ingin Anda sertakan dalam log.Misalnya,
tls.protocol,tls.cipher
hanya dapat ditetapkan jikaLOGGING_OPTIONAL_MODE
ditetapkan keCUSTOM
.
Setelah Anda mengaktifkan logging di layanan backend, setiap permintaan HTTP(S) akan dicatat ke dalam log menggunakan Cloud Logging.
Cara melihat log
Untuk melihat log, di konsol Google Cloud, buka halaman Logs Explorer.
Log Load Balancer Aplikasi internal diindeks terlebih dahulu berdasarkan jaringan, lalu berdasarkan region.
- Untuk melihat log semua Load Balancer Aplikasi internal, pilih Aturan Load Balancer Aplikasi Internal di menu pull-down pertama.
- Untuk melihat log khusus untuk satu jaringan, pilih Aturan Load Balancer Aplikasi Internal, lalu pilih nama jaringan.
- Untuk melihat log hanya untuk satu region jaringan, pilih
Internal Application Load Balancer Rule >
NETWORK
>REGION
.
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.
Anda dapat mengonfigurasi ekspor
metrik berbasis log untuk
log resource (resource.type="internal_http_lb_rule"
). Metrik
yang dibuat didasarkan pada resource "Internal Application Load Balancer Rule",
yang tersedia di dasbor Cloud Monitoring:
Apa itu log?
Entri log Load Balancer Aplikasi internal berisi informasi yang berguna untuk memantau dan men-debug traffic HTTP(S) Anda. Data log berisi kolom wajib, yang merupakan kolom default dari setiap data log, dan kolom opsional yang menambahkan informasi tambahan tentang traffic HTTP(S) Anda. Kolom opsional dapat dihilangkan untuk menghemat biaya penyimpanan. Entri log berisi jenis informasi berikut:
- Informasi umum yang ditampilkan di sebagian besar log Google Cloud, seperti tingkat keparahan, project ID, nomor project, dan stempel waktu seperti yang dijelaskan dalam LogEntry.
- Kolom log HttpRequest.
Beberapa kolom log menggunakan format multi-kolom, dengan lebih dari satu bagian data dalam kolom tertentu. Misalnya, kolom tls
memiliki format TlsDetails
, yang berisi protokol TLS dan cipher TLS dalam satu kolom.
Kolom multi-kolom ini dijelaskan dalam tabel format data berikut.
Kolom | Jenis | Jenis kolom: Wajib Diisi atau Opsional | Deskripsi |
---|---|---|---|
logName
|
string | Wajib |
Nama resource log tempat entri log ini berada. Dalam bentuk "projects/PROJECT_ID/logs/requests" .
|
timestamp
|
string | Wajib | Waktu permintaan dimulai. |
severity
|
Format LogSeverity | Wajib |
Tingkat keparahan entri log. Default-nya adalah
LogSeverity.DEFAULT .
|
httpRequest
|
Objek HttpRequest | Wajib | Proto HttpRequest yang menjelaskan permintaan HTTP(S) yang dicatat ke dalam log. |
trace
|
string | Wajib |
Nama resource trace yang terkait dengan entri log, jika ada. Jika berisi nama resource relatif, nama tersebut dianggap
relatif terhadap https://tracing.googleapis.com . Contoh:
projects/PROJECT_ID/traces/06796866738c859f2f19b7cfb3214824 .
Load Balancer Aplikasi internal tidak mendukung kolom ini. |
spanId
|
string | Wajib |
ID span dalam trace yang dikaitkan dengan entri log. Untuk
Rentang trace, string ini memiliki format yang sama dengan yang digunakan Trace API v2: encoding heksadesimal 16 karakter dari array 8 byte, seperti
000000000000004a .
Load Balancer Aplikasi internal tidak mendukung kolom ini. |
resource
|
Objek MonitoredResource | Wajib |
Resource yang dipantau yang menghasilkan entri log ini. Objek Misalnya, deskripsi resource yang dimonitor untuk Load Balancer Aplikasi internal memiliki jenis resource |
jsonPayload | objek (format Struct) | Wajib | Payload entri log yang dinyatakan sebagai objek JSON. Objek JSON berisi kolom berikut:
|
string | Wajib | Kolom Kolom tidak dicatat ke dalam log jika nilainya berupa string kosong. Hal ini dapat
terjadi jika proxy atau backend tidak menampilkan error atau kode error
yang bukan Kolom
|
|
string | Wajib | Kolom backendTargetProjectNumber menyimpan nomor project yang mengidentifikasi pemilik layanan backend atau bucket backend.
|
|
string | Wajib | Kolom serviceDirectoryService menyimpan nama
layanan Direktori Layanan tempat error Cloud FIT
dikonfigurasi. |
|
string | Wajib | Kolom cloudFitExperiment menyimpan nama eksperimen Cloud FIT. |
|
string | Wajib | Kolom cloudFitFault menyimpan nama error
yang dimasukkan oleh eksperimen error Cloud FIT di jalur permintaan ini. |
|
ServiceExtensionInfo | Wajib | Kolom serviceExtensionInfo menyimpan informasi tentang
streaming gRPC dari load balancer ke Ekstensi Layanan. Untuk mengetahui informasi
selengkapnya, lihat
yang dicatat ke dalam log untuk ekstensi info. |
|
TlsDetails | Opsional | Kolom tls menyimpan
TlsDetails yang menentukan metadata TLS untuk
koneksi antara klien dan Load Balancer Aplikasi internal. Kolom
ini hanya tersedia jika klien menggunakan enkripsi TLS/SSL. |
|
MtlsDetails | Opsional | Kolom mtls menyimpan nilai MtlsDetails yang menentukan metadata mTLS untuk koneksi antara klien dan Application Load Balancer internal. Kolom ini
hanya tersedia jika load balancer menggunakan TLS bersama (mTLS) frontend.
|
Format kolom TlsDetails
Kolom | Format kolom | Jenis kolom: Wajib Diisi atau Opsional | Deskripsi |
---|---|---|---|
protokol | string | Opsional | Protokol TLS yang digunakan klien untuk membuat koneksi dengan load balancer. Kemungkinan nilainya adalah TLS 1.0, 1.1, 1.2,
1.3 , atau QUIC .
Nilai ini ditetapkan ke NULL jika klien tidak menggunakan enkripsi TLS/SSL.
|
cipher | string | Opsional | Cipher TLS yang digunakan klien untuk membuat koneksi dengan load balancer. Nilai ini ditetapkan ke NULL jika klien
tidak menggunakan HTTP(S) atau klien tidak menggunakan enkripsi TLS/SSL.
|
Format kolom MtlsDetails
Kolom | Format kolom | Jenis kolom: Wajib Diisi atau Opsional | Deskripsi |
---|---|---|---|
clientCertPresent | bool | Opsional |
|
clientCertChainVerified | bool | Opsional |
|
clientCertError | string | Opsional | String standar yang mewakili kondisi error. Untuk mengetahui informasi selengkapnya tentang string error, lihat mode validasi klien mTLS. |
clientCertSha256Fingerprint | string | Opsional | Sidik jari SHA-256 yang dienkode Base64 dari sertifikat klien. |
clientCertSerialNumber | string | Opsional | Nomor seri sertifikat klien.
Jika nomor seri lebih panjang dari 50 byte, string
|
clientCertValidStartTime | string | Opsional | Stempel waktu (format string tanggal RFC 3339) sebelum sertifikat klien tidak valid.
Contoh, |
clientCertValidEndTime | string | Opsional | Stempel waktu (format string tanggal RFC 3339) setelah itu sertifikat klien tidak valid.
Contoh, |
clientCertSpiffeId | string | Opsional | ID SPIFFE dari kolom nama alternatif subjek (SAN). Jika nilai tidak valid atau melebihi 2.048 byte, ID SPIFFE akan ditetapkan ke string kosong. Jika ID SPIFFE lebih panjang dari 2048 byte, string
|
clientCertUriSans | string | Opsional | Daftar ekstensi SAN berenkode Base64 yang dipisahkan koma dari jenis URI. Ekstensi SAN diekstrak dari sertifikat klien.
ID SPIFFE tidak
disertakan dalam kolom Jika kolom |
clientCertDnsnameSans | string | Opsional | Daftar yang dipisahkan koma dan dienkode Base64 dari ekstensi SAN jenis DNSName. Ekstensi SAN diekstrak dari sertifikat klien. Jika kolom |
clientCertIssuerDn | string | Opsional | Kolom Penerbit lengkap yang dienkode base64 dari sertifikat. Jika kolom |
clientCertSubjectDn | string | Opsional | Kolom Subjek lengkap yang dienkode Base64 dari sertifikat. Jika kolom |
clientCertLeaf | string | Opsional | Sertifikat leaf klien untuk koneksi mTLS yang dibuat dengan sertifikat yang lulus validasi. Encoding sertifikat mematuhi RFC 9440: sertifikat DER biner dienkode menggunakan Base64 (tanpa jeda baris, spasi, atau karakter lain di luar alfabet Base64) dan dibatasi dengan titik dua di kedua sisi. Jika |
clientCertChain | string | Opsional | Daftar sertifikat yang dipisahkan koma, dalam urutan TLS standar, dari rantai sertifikat klien untuk koneksi mTLS yang dibuat saat sertifikat klien lulus validasi, tidak termasuk sertifikat akhir. Encoding sertifikat mematuhi RFC 9440. Jika ukuran gabungan |
Kolom error proxyStatus
Kolom proxyStatus
berisi string yang menentukan alasan load
balancer menampilkan error. Ada dua bagian di kolom proxyStatus
, yaitu proxyStatus error
dan proxyStatus details
.
Bagian ini menjelaskan string yang didukung di kolom proxyStatus error
.
Kolom proxyStatus error berlaku untuk load balancer berikut:
- Load Balancer Aplikasi eksternal regional
- Load Balancer Aplikasi internal lintas region
- Load Balancer Aplikasi internal regional
error proxyStatus | Deskripsi | Kode respons yang menyertainya |
---|---|---|
destination_unavailable
|
Load balancer menganggap backend tidak tersedia. Misalnya, upaya terbaru untuk berkomunikasi dengan backend telah gagal, atau pemeriksaan kesehatan mungkin telah menyebabkan kegagalan. | 500, 503 |
connection_timeout
|
Waktu tunggu upaya load balancer untuk membuka koneksi ke backend telah habis. | 504 |
connection_terminated
|
Koneksi load balancer ke backend berakhir sebelum respons lengkap diterima.
|
0, 502, 503 |
connection_refused
|
Koneksi load balancer ke backend ditolak. | 502, 503 |
connection_limit_reached
|
Load balancer dikonfigurasi untuk membatasi jumlah koneksi yang dimilikinya ke backend, dan batas tersebut telah terlampaui.
|
502, 503 |
destination_not_found
|
Load balancer tidak dapat menentukan backend yang sesuai untuk digunakan untuk permintaan ini. Misalnya, backend mungkin tidak dikonfigurasi. | 500, 404 |
dns_error
|
Load balancer mengalami error DNS saat mencoba menemukan alamat IP untuk nama host backend. | 502, 503 |
proxy_configuration_error
|
Load balancer mengalami error konfigurasi internal. | 500 |
proxy_internal_error
|
Load balancer mengalami error internal. | 0, 500, 502 |
proxy_internal_response
|
Load balancer menghasilkan respons tanpa mencoba terhubung ke backend. | Kode respons apa pun bergantung pada jenis masalah. Misalnya, kode respons
410 berarti backend tidak tersedia karena
keterlambatan pembayaran.
|
http_response_timeout
|
Load balancer mencapai batas waktu tunggu layanan backend yang telah dikonfigurasi saat menunggu respons lengkap dari backend. | 504.408 |
http_request_error
|
Load balancer mengalami error HTTP 4xx, yang menunjukkan masalah pada permintaan klien. | 400, 403, 405, 406, 408, 411, 413, 414, 415, 416, 417, atau 429 |
http_protocol_error
|
Load balancer mengalami error protokol HTTP saat berkomunikasi dengan backend. | 502 |
tls_protocol_error
|
Load balancer mengalami error TLS selama handshake TLS. | 0 |
tls_certificate_error
|
Load balancer mengalami error pada saat memverifikasi sertifikat yang ditampilkan oleh server atau oleh klien saat mTLS diaktifkan. | 0 |
tls_alert_received
|
Load balancer mengalami pemberitahuan TLS fatal selama TLS handshake. | 0 |
Kolom detail proxyStatus
Kolom proxyStatus
berisi string yang menentukan alasan load
balancer menampilkan error. Ada dua bagian di kolom proxyStatus
, yaitu proxyStatus error
dan proxyStatus details
.
Kolom proxyStatus details
bersifat opsional dan hanya ditampilkan jika
informasi tambahan tersedia.
Bagian ini menjelaskan string yang didukung di kolom proxyStatus details
.
Kolom proxyStatus details berlaku untuk load balancer berikut:
- Load Balancer Aplikasi eksternal regional
- Load Balancer Aplikasi internal regional
- Load Balancer Aplikasi internal lintas region
Detail proxyStatus | Deskripsi | Kode respons yang menyertainya |
---|---|---|
client_disconnected_before_any_response
|
Koneksi ke klien terputus sebelum load balancer mengirim respons apa pun. | 0 |
backend_connection_closed
|
Backend secara tidak terduga menutup koneksinya ke load balancer. Hal ini dapat terjadi jika load balancer mengirim traffic ke entity lain seperti aplikasi pihak ketiga yang memiliki waktu tunggu TCP yang lebih singkat dari waktu tunggu load balancer selama 10 menit (600 detik). | 502 |
failed_to_connect_to_backend
|
Load balancer gagal terhubung ke backend. Kegagalan ini mencakup waktu tunggu selama fase koneksi. | 503 |
failed_to_pick_backend
|
Load balancer gagal memilih backend yang sehat untuk menangani permintaan. | 502 |
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. |
client_timed_out
|
Koneksi antara load balancer dan klien melebihi waktu tunggu idle. Untuk informasi selengkapnya tentang Load Balancer Aplikasi eksternal regional, lihat Waktu tunggu keepalive HTTP klien. Untuk mengetahui informasi selengkapnya tentang Load Balancer Aplikasi internal, lihat Waktu tunggu keepalive HTTP klien. |
0, 408 |
backend_timeout
|
Waktu tunggu backend habis saat membuat respons. |
502 |
http_protocol_error_from_backend_response
|
Respons backend berisi error protokol HTTP. | 501, 502 |
http_protocol_error_from_request
|
Permintaan klien berisi error protokol HTTP. | 400, 503 |
http_version_not_supported
|
Versi protokol HTTP tidak didukung. Hanya HTTP 0.9, 1.0, 1.1, dan 2.0 yang didukung. | 400 |
handled_by_identity_aware_proxy
|
Respons ini dibuat oleh Identity-Aware Proxy (IAP) selama memverifikasi identitas klien sebelum mengizinkan akses. | 200, 302, 400, 401, 403, 500, 502 |
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, 404 |
ip_detection_failed
|
Alamat IP asli tidak dapat dideteksi. | Setiap kode respons mungkin bergantung pada sifat kegagalan. Nilai harus antara 400 hingga 599. |
request_body_too_large
|
Isi permintaan HTTP melebihi panjang maksimum yang didukung oleh load balancer. | 413, 507 |
request_header_timeout
|
Waktu tunggu header permintaan habis karena load balancer tidak menerima permintaan lengkap dalam waktu 5 detik. | 408.504 |
denied_by_security_policy
|
Load balancer menolak permintaan ini karena adanya kebijakan keamanan Google Cloud Armor. | 403 |
throttled_by_security_policy
|
Permintaan diblokir oleh aturan throttle Google Cloud Armor. | 429 |
client_cert_chain_invalid_eku
|
Sertifikat klien atau penerbitnya tidak memiliki extended key usage yang menyertakan clientAuth. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0 |
client_cert_chain_max_name_constraints_exceeded
|
Sertifikat intermediate yang diberikan untuk validasi memiliki lebih dari 10 batasan nama. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0 |
client_cert_invalid_rsa_key_size
|
Sertifikat klien atau sertifikat 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_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_pki_too_large
|
PKI yang akan digunakan untuk validasi memiliki lebih dari tiga sertifikat
perantara yang memiliki Subject dan
Subject Public Key Info yang sama.
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_validation_failed
|
Sertifikat klien gagal dalam validasi dengan TrustConfig .
Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup.
|
0 |
client_cert_validation_not_performed
|
Anda telah mengonfigurasi TLS bersama tanpa menyiapkan TrustConfig .
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_timed_out
|
Batas waktu terlampaui (200 md) saat memvalidasi rantai sertifikat. Untuk informasi selengkapnya, lihat Error yang dicatat ke dalam log untuk koneksi yang ditutup. | 0 |
tls_version_not_supported
|
Versi protokol TLS dikenali, tetapi tidak didukung. Error ini menyebabkan koneksi TLS ditutup. | 0 |
unknown_psk_identity
|
Server mengirimkan error ini saat pembuatan kunci PSK diperlukan, tetapi klien tidak memberikan identitas PSK yang dapat diterima. Error ini menyebabkan koneksi TLS ditutup. | 0 |
no_application_protocol
|
Dikirim oleh server saat ekstensi "application_layer_protocol_negotiation" klien hanya mengiklankan protokol yang tidak didukung server. Lihat Ekstensi negosiasi protokol lapisan aplikasi TLS. Error ini menyebabkan koneksi TLS ditutup. | 0 |
no_certificate
|
Sertifikat tidak ditemukan. Error ini menyebabkan koneksi TLS ditutup. | 0 |
bad_certificate
|
Sertifikat tidak valid, atau berisi tanda tangan yang tidak dapat diverifikasi. Error ini menyebabkan koneksi TLS ditutup. | 0 |
unsupported_certificate
|
Sertifikat memiliki jenis yang tidak didukung. Error ini menyebabkan koneksi TLS ditutup. | 0 |
certificate_revoked
|
Sertifikat dicabut oleh penandatangannya. Error ini menyebabkan koneksi TLS ditutup. | 0 |
certificate_expired
|
Sertifikat tidak berlaku lagi atau tidak valid. Error ini menyebabkan koneksi TLS ditutup. | 0 |
certificate_unknown
|
Beberapa masalah yang tidak ditentukan muncul saat memproses sertifikat, sehingga sertifikat tidak dapat diterima. Error ini menyebabkan koneksi TLS ditutup. | 0 |
unknown_ca
|
Rantai sertifikat atau rantai sebagian yang valid diterima, tetapi sertifikat tidak diterima karena sertifikat CA tidak dapat ditemukan atau dicocokkan dengan anchor kepercayaan yang diketahui. Error ini menyebabkan koneksi TLS ditutup. | 0 |
unexpected_message
|
Pesan yang tidak pantas, seperti pesan handshake yang salah atau data aplikasi yang diterima sebelum waktunya. Error ini menyebabkan koneksi TLS ditutup. | 0 |
bad_record_mac
|
Data diterima yang tidak dapat dihapus perlindungannya. Error ini menyebabkan koneksi TLS ditutup. | 0 |
record_overflow
|
Data TLSCiphertext diterima dengan panjang lebih dari 214+256 byte, atau data didekripsi ke data TLSPlaintext dengan lebih dari 214 byte (atau beberapa batas lain yang dinegosiasikan). Error ini menyebabkan koneksi TLS ditutup.
|
0 |
handshake_failure
|
Tidak dapat menegosiasikan kumpulan parameter keamanan yang dapat diterima dengan opsi yang tersedia. Error ini menyebabkan koneksi TLS ditutup. | 0 |
illegal_parameter
|
Kolom dalam handshake salah atau tidak konsisten dengan kolom lainnya. Error ini menyebabkan koneksi TLS ditutup. | 0 |
access_denied
|
Sertifikat atau PSK yang valid diterima, tetapi saat kontrol akses diterapkan, klien tidak melanjutkan negosiasi. Error ini menyebabkan koneksi TLS ditutup. | 0 |
decode_error
|
Pesan tidak dapat didekode karena beberapa kolom berada di luar rentang yang ditentukan, atau panjang pesan salah. Error ini menyebabkan koneksi TLS ditutup. | 0 |
decrypt_error
|
Operasi kriptografi handshake (bukan lapisan data) gagal, termasuk tidak dapat memverifikasi tanda tangan dengan benar atau memvalidasi pesan yang sudah selesai atau binder PSK. Error ini menyebabkan koneksi TLS ditutup. | 0 |
insufficient_security
|
Negosiasi gagal secara khusus karena server memerlukan parameter yang lebih aman daripada yang didukung oleh klien. Error ini menyebabkan koneksi TLS ditutup. | 0 |
inappropriate_fallback
|
Dikirim oleh server sebagai respons terhadap upaya percobaan ulang koneksi yang tidak valid dari klien. Error ini menyebabkan koneksi TLS ditutup. | 0 |
user_cancelled
|
Pengguna membatalkan handshake karena alasan tertentu yang tidak terkait dengan kegagalan protokol. Error ini menyebabkan koneksi TLS ditutup. | 0 |
missing_extension
|
Dikirim oleh endpoint yang menerima pesan handshake yang tidak berisi ekstensi yang wajib dikirim untuk versi TLS yang ditawarkan atau parameter lain yang dinegosiasikan. Error ini menyebabkan koneksi TLS ditutup. | 0 |
unsupported_extension
|
Dikirim oleh endpoint yang menerima pesan handshake yang berisi ekstensi
yang diketahui dilarang untuk disertakan dalam pesan handshake tertentu, atau
menyertakan ekstensi apa pun di ServerHello atau
Certificate yang tidak ditawarkan terlebih dahulu di
ClientHello atau CertificateRequest yang sesuai.
Error ini menyebabkan koneksi TLS ditutup.
|
0 |
unrecognized_name
|
Dikirim oleh server jika tidak ada server yang dapat diidentifikasi berdasarkan nama yang diberikan oleh klien melalui ekstensi "server_name". Lihat definisi ekstensi TLS. | 0 |
bad_certificate_status_response
|
Dikirim oleh klien saat respons OCSP yang tidak valid atau tidak dapat diterima diberikan oleh server melalui ekstensi "status_request". Lihat definisi ekstensi TLS. Error ini menyebabkan koneksi TLS ditutup. | 0 |
load_balancer_configured_resource_limits_reached
|
Load balancer telah mencapai batas resource yang dikonfigurasi, seperti jumlah koneksi maksimum. | 400, 500, 503 |
Entri log koneksi TLS yang gagal
Jika koneksi TLS antara klien dan load balancer gagal sebelum
backend apa pun dipilih, entri log akan mencatat error. Anda dapat mengonfigurasi layanan backend dengan frekuensi sampel log yang berbeda. Jika koneksi TLS gagal,
frekuensi sampel log koneksi TLS yang gagal adalah frekuensi sampel tertinggi untuk
layanan backend apa pun. Misalnya, jika Anda telah mengonfigurasi dua layanan backend dengan
frekuensi sampel logging sebagai 0.3
dan 0.5
, frekuensi sampel log koneksi TLS yang gagal
adalah 0.5
.
Anda dapat mengidentifikasi koneksi TLS yang gagal dengan memeriksa detail entri log berikut:
- Jenis error proxyStatus adalah
tls_alert_received
,tls_certificate_error
,tls_protocol_error
, atauconnection_terminated
. - Tidak ada informasi backend.
Contoh berikut menunjukkan entri log TLS yang gagal dengan
kolom proxyStatus error
:
json_payload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" proxyStatus: "error="tls_alert_received"; details="server_to_client: handshake_failure"" log_name: "projects/529254013417/logs/mockservice.googleapis.com%20name" } http_request { latency { nanos: 12412000 } protocol: "HTTP/1.0" remote_ip: "127.0.0.2" } resource { type: "mock_internal_http_lb_rule" labels { backend_name: "" backend_scope: "" backend_scope_type: "UNKNOWN" backend_target_name: "" backend_target_type: "UNKNOWN" backend_type: "UNKNOWN" forwarding_rule_name: "l7-ilb-https-forwarding-rule-dev" matched_url_path_rule: "UNKNOWN" network_name: "lb-network" region: "REGION" target_proxy_name: "l7-ilb-https-proxy-dev" url_map_name: "" } } timestamp: "2023-08-15T16:49:30.850785Z"
Label resource
Tabel berikut mencantumkan label resource untuk
resource.type="internal_http_lb_rule"
.
Kolom | Jenis | Deskripsi |
---|---|---|
network_name |
string | Nama jaringan VPC load balancer. |
project_id | string | ID project Google Cloud yang terkait dengan resource ini. |
region |
string | Region tempat load balancer ditentukan. |
url_map_name | string | Nama objek peta URL yang dikonfigurasi untuk memilih layanan backend. |
forwarding_rule_name |
string | Nama objek aturan penerusan. |
target_proxy_name | string | Nama objek proxy target yang direferensikan oleh aturan penerusan. |
matched_url_path_rule |
string |
Aturan jalur peta URL atau aturan rute yang dikonfigurasi sebagai bagian dari kunci peta URL. Dapat berupa UNMATCHED atau UNKNOWN sebagai penggantian.
|
backend_target_name |
string | Nama backend yang dipilih untuk menangani permintaan, berdasarkan aturan jalur peta URL atau aturan rute yang cocok dengan permintaan. |
backend_target_type | string | Jenis
target backend (BACKEND_SERVICE / UNKNOWN ). |
backend_name |
string | Nama grup instance backend atau NEG. |
backend_type |
string | Jenis backend, baik grup instance atau NEG, atau tidak diketahui. Cloud Logging mencatat log permintaan saat |
backend_scope |
string |
Cakupan backend, baik nama zona maupun nama wilayah. Mungkin
UNKNOWN setiap kali backend_name tidak diketahui.
|
backend_scope_type |
string |
Cakupan backend (REGION /ZONE ). Mungkin
UNKNOWN setiap kali backend_name tidak diketahui.
|
backend_target_cross_project_id |
String |
Project ID layanan target atau bucket backend. Kolom ini hanya tersedia jika resource target backend dibuat di project yang berbeda dengan project tempat resource url_map dibuat.
|
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.
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 . |
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.
Konsol
Di Konsol Google Cloud, buka halaman Logs Explorer.
Klik tombol Show query untuk mengaktifkan editor kueri.
Tempel perintah berikut ke dalam kolom Query. 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.
Pemantauan
Load Balancer Aplikasi Internal mengekspor data pemantauan ke Monitoring.
Metrik pemantauan dapat digunakan untuk tujuan 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 Monitoring API.
Melihat metrik Cloud Monitoring
Konsol
Untuk melihat metrik untuk resource yang dimonitor menggunakan Metrics Explorer, lakukan langkah berikut:
-
Di konsol Google Cloud, buka halaman leaderboard Metrics explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Pada elemen Metric, luaskan menu Select a metric,
masukkan
Internal Application Load Balancer Rule
di panel filter, lalu gunakan submenu untuk memilih jenis dan metrik resource tertentu:- Di menu Active resources, pilih Internal Application Load Balancer Rule.
- Untuk memilih metrik, gunakan menu Kategori metrik aktif dan Metrik aktif.
- Klik Terapkan.
Untuk menghapus deret waktu dari tampilan, gunakan elemen Filter.
Untuk menggabungkan deret waktu, gunakan menu pada elemen Agregasi. Misalnya, untuk menampilkan pemakaian CPU bagi VM Anda, berdasarkan zonanya, tetapkan menu pertama ke Rataan dan menu kedua ke zona.
Semua deret waktu ditampilkan saat menu pertama elemen Agregasi ditetapkan ke Unaggregated. Setelan default untuk elemen Agregasi ditentukan oleh jenis metrik yang Anda pilih.
- Untuk kuota dan metrik lain yang melaporkan satu sampel per hari, lakukan tindakan berikut:
- Di panel Display, tetapkan Jenis widget ke Diagram batang bertumpuk.
- Tetapkan jangka waktu setidaknya satu minggu.
Menentukan kebijakan pemberitahuan
Konsol
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.
- 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.
- Dari halaman Alerting, pilih Create policy.
- Untuk memilih metrik, luaskan menu Pilih metrik, lalu lakukan tindakan berikut:
- Untuk membatasi menu pada entri yang relevan, masukkan
Internal 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 Internal 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 Monitoring
Konsol
Anda dapat membuat dasbor Monitoring kustom melalui metrik Load Balancer Aplikasi internal:
Di konsol Google Cloud, buka halaman Monitoring.
Pilih Dashboards > Create Dashboard.
Klik Tambahkan Diagram.
Beri judul pada diagram.
Pilih metrik dan filter. Untuk metrik, jenis resourcenya adalah Load Balancer HTTP/S Internal.
Klik Simpan.
Frekuensi dan retensi pelaporan metrik
Metrik untuk load balancer diekspor ke 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.
Memantau metrik untuk Load Balancer Aplikasi internal
Metrik berikut untuk Load Balancer Aplikasi internal dilaporkan ke Monitoring:
Metrik | FQDN | Deskripsi |
---|---|---|
Jumlah permintaan | loadbalancing.googleapis.com/https/internal/request_count |
Jumlah permintaan yang ditayangkan oleh Load Balancer Aplikasi internal. |
Meminta jumlah byte | loadbalancing.googleapis.com/https/internal/request_bytes |
Jumlah byte yang dikirim sebagai permintaan dari klien ke Application Load Balancer internal. |
Jumlah byte respons | loadbalancing.googleapis.com/https/internal/response_bytes |
Jumlah byte yang dikirim sebagai respons dari load balancer HTTP(S) internal ke klien. |
Total latensi | loadbalancing.googleapis.com/https/internal/total_latencies |
Distribusi latensi, dalam milidetik. Latensi diukur dari saat proxy menerima byte pertama permintaan, hingga saat proxy mengirim byte terakhir respons. |
Latensi backend | loadbalancing.googleapis.com/https/internal/backend_latencies |
Distribusi latensi, dalam milidetik. Latensi diukur dari saat proxy mengirim byte pertama permintaan ke backend, hingga saat proxy menerima byte terakhir respons dari backend. |
Memfilter dimensi untuk metrik Load Balancer Aplikasi internal
Metrik digabungkan untuk setiap Load Balancer Aplikasi internal. Anda dapat memfilter metrik gabungan menurut dimensi berikut.
Properti | Deskripsi |
---|---|
BACKEND_SCOPE | Zona atau region Google Cloud dari grup backend yang menayangkan permintaan klien, atau string khusus untuk kasus saat grup backend tidak ditetapkan.
Contoh:
us-central1-a , europe-west1-b ,
asia-east1 , UNKNOWN .
|
PROXY_REGION | Region Load Balancer Aplikasi internal, klien, dan backend. Contoh:
us-central1 , europe-west1 , atau
asia-east1 .
|
BACKEND | Nama grup instance backend atau NEG yang menayangkan permintaan klien. |
BACKEND_TARGET | Nama layanan backend yang melayani permintaan klien. |
MATCHED_URL_RULE | Aturan jalur peta URL atau aturan rute yang cocok dengan awalan permintaan HTTP(S) klien (maksimal 50 karakter). |
Metrik Response code class fraction
didukung untuk seluruh load balancer. Tidak ada perincian lebih lanjut yang didukung.
Langkah selanjutnya
- Baca informasi konseptual tentang Load Balancer Aplikasi internal.
- Buat Load Balancer Aplikasi internal.
- Lihat Load balancing internal dan nama DNS untuk mengetahui opsi nama DNS yang tersedia yang dapat digunakan load balancer Anda.