Dokumen ini memberikan informasi untuk membantu Anda memecahkan masalah otorisasi Ops Agent dan kredensial di instance VM Compute Engine.
Jika Ops Agent melaporkan error akses atau otorisasi, atau jika agen tampaknya berjalan normal tetapi tidak ada data atau kebijakan pemberitahuan Anda tidak berfungsi seperti yang diharapkan, periksa apakah kredensial instance VM Anda sudah benar, termasuk apakah kredensial tersebut menentukan project yang benar:
Jika Anda menggunakan instance VM Compute Engine dengan kredensial standar (bukan kunci pribadi), data kemungkinan tidak akan masuk ke project yang salah, tetapi kredensial Anda mungkin masih kurang. Untuk mengetahui informasi tentang kredensial, lihat Memberikan Otorisasi pada Agen Operasional. Untuk memverifikasi kredensial Anda, lihat Memverifikasi kredensial Compute Engine.
Jika Anda menggunakan kredensial kunci pribadi di instance Compute Engine, kredensial tersebut mungkin tidak valid atau berasal dari project yang salah. Untuk informasi tentang kredensial, lihat Memberi otorisasi Agen Operasional. Untuk memverifikasi kredensial Anda, lihat Memverifikasi kredensial kunci pribadi.
Memverifikasi kredensial Compute Engine
Gunakan halaman Instance VM Compute Engine di konsol Google Cloud untuk memverifikasi bahwa instance VM Compute Engine Anda memiliki kredensial yang memadai untuk Ops Agent. Kredensial biasanya ditambahkan di akun layanan default dari semua instance VM Compute Engine baru, tetapi Anda dapat menimpa default tersebut saat membuat instance.
Di Konsol Google Cloud, buka halaman Instance VM:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Compute Engine.
- Jika perlu, ubah project Google Cloud saat ini menjadi project yang terkait dengan instance VM Compute Engine Anda. Misalnya, jika Anda diminta untuk Mengaktifkan penagihan, berarti project saat ini tidak memiliki instance VM Compute Engine.
- Di halaman VM Instances, klik nama instance VM Anda. Halaman detail untuk instance VM Anda akan muncul.
- Di halaman VM instance details, lihat di bagian judul Cloud API access
scopes:
- Jika Anda melihat "Allow full access to all Cloud APIs", berarti Anda memiliki kredensial yang memadai.
- Jika Anda melihat, di samping Stackdriver Monitoring API, nama lama untuk Cloud Monitoring API, bahwa Anda memiliki izin Hanya Tulis atau Penuh, berarti Anda memiliki kredensial yang memadai.
- Jika tidak, akun layanan default instance Anda tidak memiliki kredensial yang diperlukan oleh agen. Untuk menggunakan agen di instance, Anda harus menambahkan kredensial akun layanan kunci pribadi. Untuk mengetahui petunjuknya, lihat Menambahkan kredensial.
Jika Anda memiliki kredensial default yang benar, lanjutkan ke Menginstal di Linux dan Windows.
Memverifikasi kredensial kunci pribadi
Untuk memverifikasi bahwa kredensial kunci pribadi yang valid diinstal di instance VM Anda, verifikasi terlebih dahulu bahwa file kredensial ada di lokasi yang diharapkan, lalu verifikasi bahwa informasi dalam file kredensial valid. Kredensial yang sebelumnya valid dapat dicabut menggunakan bagian IAM & Admin > Service accounts di konsol Google Cloud. Jika tidak ada kredensial yang valid, lihat Menambahkan kredensial untuk mengganti kredensial yang ada atau menambahkan kredensial baru.
Apakah kredensial tersedia?
Untuk melihat apakah kredensial akun layanan kunci pribadi ada di instance Anda, jalankan perintah Linux berikut di instance Anda:
sudo cat $GOOGLE_APPLICATION_CREDENTIALS
sudo cat /etc/google/auth/application_default_credentials.json
Jika salah satu perintah menampilkan file seperti yang ditunjukkan di bawah, instance Anda
mungkin memiliki kredensial kunci pribadi yang valid. Jika kedua perintah menampilkan file, maka
file yang ditunjukkan oleh GOOGLE_APPLICATION_CREDENTIALS
akan digunakan.
{
"type": "service_account",
"project_id": "{your-project-id}",
"private_key_id": "{your-private-key-id}",
"private_key": "{your-private-key}",
"client_email": "{your-project-number}-{your-key}@",
"client_id": "{your-client-id}",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "{x509-cert-url}",
"client_x509_cert_url": "{client-x509-cert-url}"
}
Jika tidak ada file kredensial, lihat Menambahkan kredensial.
Apakah kredensial valid?
Dalam file kredensial, kolom project_id
adalah project Google Cloud Anda,
client_email
mengidentifikasi akun layanan dalam project,
dan private_key_id
mengidentifikasi
kunci pribadi di akun layanan. Cocokkan informasi ini dengan informasi yang
ditampilkan di bagian IAM & Admin > Service accounts di
konsol Google Cloud.
File kredensial tidak valid jika salah satu hal berikut berlaku:
- Anda memeriksa instance VM Compute Engine, tetapi project Google Cloud dalam file kredensial bukan project yang berisi instance Anda.
- Akun layanan yang tercantum tidak ada. Mungkin telah dihapus.
- Akun layanan yang tercantum tidak mengaktifkan peran yang tepat. Akun tersebut harus
memiliki setidaknya
roles/monitoring.metricWriter
(Monitoring Metric Writer) untuk pengumpulan metrik danroles/logging.logWriter
(Logs Writer) untuk menulis log. - Kunci pribadi tidak ada. Izin tersebut mungkin telah dicabut.
Jika akun layanan tidak masalah, tetapi kunci pribadi telah dicabut, Anda dapat membuat kunci pribadi baru dan menyalinnya ke instance. Jika tidak, Anda harus membuat akun layanan baru seperti yang dijelaskan di bagian berikut, Menambahkan kredensial.
Membuat kredensial baru
Jika kredensial tidak valid, lakukan langkah-langkah berikut:
- Untuk setiap project terhubung yang berisi instance yang perlu diberi otorisasi dengan kunci pribadi — instance Compute Engine yang dibuat tanpa menyertakan cakupan akses
https://www.googleapis.com/auth/monitoring.write
— buat akun layanan dan buat kunci pribadi, jika belum ada. Ikuti langkah-langkah di bawah ini:-
Di konsol Google Cloud, buka halaman settings Settings:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Pilih tab Cakupan metrik.
- Identifikasi project yang berisi resource Compute Engine yang dimaksud dan buka konsol Google Cloud.
- Buka halaman IAM Service Accounts di konsol Google Cloud, pilih project Google Cloud Anda, buat akun layanan baru, lalu buat kunci pribadi baru untuk akun layanan tersebut.
Untuk melakukan langkah-langkah ini, lakukan salah satu hal berikut:
Buka halaman IAM Service Accounts, pilih project Google Cloud Anda, lalu ikuti langkah-langkah di Buat akun layanan:
Klik tombol berikut, lalu pilih project Google Cloud Anda:
Membuat akun layanan dan mendownload kunci
Tombol sebelumnya mengotomatiskan proses pembuatan dan mendownload kunci ke sistem lokal Anda untuk akun layanan khusus agen. Jika perlu, proses ini juga akan membuat akun layanan yang diperlukan dan memastikan bahwa akun layanan memiliki izin yang benar. Akun layanan khusus agen memiliki nama yang mirip dengan
stackdriver-1234@PROJECT_ID.
. Anda akan diberi tahu tentang penyelesaian tindakan ini dengan dialog yang mirip dengan berikut:
-
Ganti kunci pribadi pada instance yang sesuai dengan akun layanan yang dimaksud.
- Di Linux, ganti kunci pribadi yang berada di
/etc/google/auth/application_default_credentials.json
. - Di Windows, ganti kunci pribadi yang terletak di
C:\ProgramData\Google\Auth\application_default_credentials.json
. Untuk informasi selengkapnya, lihat Menyalin kunci pribadi ke instance Anda.
- Di Linux, ganti kunci pribadi yang berada di
Memulai ulang agen
- Di Linux, jalankan
sudo service stackdriver-agent restart
- Di Windows, buka konsol pengelolaan layanan dan mulai ulang
layanan
Cloud Monitoring
.
- Di Linux, jalankan
Jika Anda memiliki beberapa project yang memerlukan kunci pribadi baru, ulangi prosedur ini untuk setiap project.
Untuk memverifikasi bahwa kunci pribadi sudah benar, lihat Apakah kredensial ada?. Secara khusus:
- Baca file JSON kunci pribadi di instance, misalnya (di Linux):
sudo cat /etc/google/auth/application_default_credentials.json
- Pastikan nilai kolom
project_id
cocok dengan nilai project yang dipantau yang baru saja Anda buat kredensialnya.