Instance Compute Engine memiliki empat port serial virtual. Sistem operasi instance, BIOS, dan entitas level sistem lainnya sering menulis output ke port serial, sehingga output port serial berguna untuk memecahkan masalah error, booting gagal, masalah startup, atau masalah shutdown.
Halaman ini menjelaskan metode untuk melihat output port serial, termasuk menggunakan Cloud Logging untuk mempertahankan output port serial bahkan setelah instance dihentikan. Jika Anda perlu mengirim perintah ke port serial saat instance sedang berjalan, lihat Berinteraksi dengan konsol serial.
Untuk melihat output port serial untuk instance komputasi yang sedang berjalan, gunakan konsol Google Cloud , gcloud CLI, atau REST. Metode ini hanya memberikan output 1 MB terbaru per port. Untuk melihat output yang melebihi 1 MB per port, atau untuk melihat output dari instance yang dihentikan, gunakan Cloud Logging.
Sebelum memulai
- Jika ingin mencatat output port serial ke dalam log di Cloud Logging, pahami Cloud Logging.
-
Siapkan autentikasi jika Anda belum melakukannya.
Autentikasi memverifikasi identitas Anda untuk mengakses layanan Google Cloud dan API. Untuk menjalankan
kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan konsol Google Cloud untuk mengakses layanan Google Cloud dan API, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
- Tetapkan region dan zona default.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI.
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Persyaratan dan batasan jaringan
Untuk melihat output port serial menggunakan konsol Google Cloud atau berinteraksi dengan konsol, jaringan dan lingkungan sisi klien Anda harus memenuhi persyaratan berikut:
- TCP Port 9600: Jika Anda menggunakan link Serial port 1 (console) di konsolGoogle Cloud , jaringan Anda harus mengizinkan traffic keluar di port TCP 9600 untuk terhubung ke gateway konsol serial.
- Kontrol Layanan VPC: Konsol serial interaktif tidak didukung dalam perimeter Kontrol Layanan VPC.
- Akses Google Pribadi: VIP Akses Google Pribadi
(
private.googleapis.comataurestricted.googleapis.com) tidak mendukung traffic SSH yang diperlukan untuk konsol serial. VIP ini hanya mendukung protokol berbasis HTTP.
Jika jaringan Anda membatasi port atau protokol ini, gunakan Cloud Logging untuk melihat log port serial, karena menggunakan HTTPS standar (port 443).
Memecahkan masalah kegagalan SSH
Jika Anda melihat log port serial karena tidak dapat terhubung ke VM menggunakan SSH, lihat panduan pemecahan masalah SSH untuk mengetahui daftar error umum dan langkah-langkah perbaikan.
Mengaktifkan dan menonaktifkan logging output port serial
Anda dapat mengontrol apakah instance Anda mengirim output port serial ke Cloud Logging dengan menetapkan metadata level project atau instance. Anda juga dapat menonaktifkan fitur ini untuk semua pengguna di organisasi dengan menyetel kebijakan organisasi.
Secara default, logging output port serial ke Cloud Logging dinonaktifkan. Jika Anda mengaktifkan logging output port serial, Cloud Logging akan menyediakan logging 50 gibibyte (GiB) pertama per bulan secara gratis dan mempertahankan log selama 30 hari.
Menetapkan metadata project dan instance
Jika logging output port serial ke Cloud Logging tidak
dibatasi untuk organisasi Anda,
Anda dapat mengaktifkan atau menonaktifkannya untuk project dan setiap instance
komputasi dengan menetapkan entri metadata serial-port-logging-enable ke true
atau false.
Jika Anda menetapkan entri metadata di seluruh project, semua instance komputasi dalam project akan mewarisi setelan tersebut secara implisit. Jika Anda menetapkan entri metadata instance, entri metadata tersebut hanya akan diaktifkan untuk instance komputasi tersebut, terlepas dari setelan project.
Anda dapat menetapkan entri metadata menggunakan konsol Google Cloud , gcloud CLI, atau Compute Engine API. Untuk mengetahui informasi selengkapnya, lihat Menetapkan metadata kustom.
Misalnya, perintah gcloud CLI berikut memungkinkan logging output port serial ke Cloud Logging untuk project Anda:
gcloud compute project-info add-metadata \
--metadata serial-port-logging-enable=trueDemikian pula, perintah gcloud CLI berikut memungkinkan logging output port serial ke Cloud Logging untuk instance tertentu:
gcloud compute instances add-metadata INSTANCE_NAME \
--metadata serial-port-logging-enable=trueUntuk menonaktifkan logging output port serial ke Cloud Logging, tetapkan
serial-port-logging-enable ke false:
gcloud compute instances add-metadata INSTANCE_NAME \
--metadata serial-port-logging-enable=falseFilter pengecualian
Dari dalam Cloud Logging, Anda dapat
membuat filter pengecualian untuk
menghapus entri port serial tertentu dari Logs Explorer. Misalnya, dengan
entri metadata tingkat project yang ditetapkan ke serial-port-logging-enable=true,
Anda dapat menonaktifkan logging output port serial untuk instance komputasi tertentu dengan
menggunakan filter lanjutan:
logName = "projects/PROJECT_ID/logs/serialconsole.googleapis.com%2Fserial_port_1_output" resource.type = "gce_instance" resource.labels.instance_id != "INSTANCE_1_ID" resource.labels.instance_id != "INSTANCE_2_ID"
Menetapkan kebijakan organisasi
Anda dapat menonaktifkan logging output port serial ke Cloud Logging untuk seluruh
organisasi dengan menetapkan
Kebijakan Organisasi, yang
membatasi konfigurasi tertentu resource Google Cloud . Secara khusus,
tetapkan batasan boolean berikut:
constraints/compute.disableSerialPortLogging. Untuk mengetahui informasi selengkapnya, lihat
Membuat dan mengelola kebijakan organisasi.
Menonaktifkan logging port serial dengan menetapkan
constraints/compute.disableSerialPortLogging ke true tidak
berlaku. Instance komputasi yang ada dengan entri metadata yang memungkinkan
logging port serial ke Cloud Logging akan terus dicatat ke Cloud Logging
kecuali jika Anda mereset metadata untuk
instance tersebut.
Setelah menetapkan batasan organisasi ini ke true, Anda tidak dapat menetapkan metadata instance atau project
untuk mengaktifkan logging output port serial ke Cloud Logging untuk
instance apa pun dalam organisasi.
Melihat output port serial
Gunakan konsol Google Cloud , gcloud CLI, atau REST untuk melihat output 1 MB terbaru per port serial dari instance yang sedang berjalan. Untuk melihat output yang melebihi 1 MB per port, atau untuk melihat output dari instance yang dihentikan, gunakan Cloud Logging.
Konsol
Di konsol Google Cloud , buka halaman VM instances.
Pilih instance komputasi yang ingin Anda lihat output port serialnya.
Di bagian Log, klik Port serial 1 (konsol), Port serial 2 (konsol), Port serial 3, atau Port serial 4.
Entitas level sistem biasanya menggunakan Port serial 1, yang juga dikenal sebagai konsol serial.
gcloud
Untuk melihat output port serial dari instance komputasi yang sedang berjalan, gunakan
perintah gcloud compute instances get-serial-port-output.
gcloud compute instances get-serial-port-output INSTANCE_NAME \ --port PORT \ --start START \ --zone ZONE
Ganti kode berikut:
INSTANCE_NAME: nama instance.PORT: jumlah port (1,2,3, atau4) yang ingin Anda lihat output-nya. Entity level sistem biasanya menggunakan port serial pertama (port 1), yang juga dikenal sebagai konsol serial. Secara default, output port serial pertama akan ditampilkan.START: indeks byte (berbasis nol) dari byte pertama yang ingin Anda tampilkan. Gunakan flag ini jika Anda ingin terus mendapatkan output dari permintaan sebelumnya yang terlalu panjang untuk ditampilkan dalam satu kali percobaan.ZONE: zona instance Anda.
REST
Di API, buat permintaan get ke metode instances.getSerialPortOutput.
GET https://compute.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/serialPort
Cloud Logging
Sebelum dapat melihat log ini, Anda harus mengirim output port serial ke Cloud Logging.
- Di konsol Google Cloud , buka halaman Logs Explorer.
Di panel Query, masukkan kueri berikut, lalu klik Run query:
resource.type="gce_instance" logName="projects/PROJECT_ID/logs/serialconsole.googleapis.com%2Fserial_port_1_output" resource.labels.instance_id="INSTANCE_ID"
Ganti kode berikut:
PROJECT_ID: ID project yang berisi instance.INSTANCE_ID: ID instance komputasi.
Untuk mengetahui informasi selengkapnya tentang pemfilteran di Logs Explorer, lihat Melihat log menggunakan Logs Explorer.
Menangani karakter non-UTF8
Output port serial di-escape dengan menggunakan
metode CHexEscape()
library C++ Abseil open source,
sehingga karakter non-UTF8 dienkode sebagai string heksadesimal. Anda dapat menggunakan
metode CUnescape()
yang sesuai untuk mendapatkan output yang tepat yang dikirim ke port serial.