Kebijakan Agen memungkinkan penginstalan dan pemeliharaan otomatis agen Kemampuan observasi Google Cloud di seluruh fleet VM yang cocok dengan kriteria yang ditentukan pengguna. Dengan satu perintah, Anda dapat membuat Kebijakan untuk project Google Cloud yang mengatur VM yang sudah ada dan yang baru terkait project Google Cloud tersebut, sehingga memastikan penginstalan yang benar dan upgrade otomatis opsional semua agen.
Sistem operasi yang didukung
Anda dapat menerapkan Kebijakan Agen ke instance Compute Engine dengan sistem operasi berikut.
Logging agent
dipetakan ke kebijakan dengan
jenis agen
logging
. Monitoring agent
dipetakan ke kebijakan dengan
jenis agen
metrics
. Ops Agent
dipetakan ke kebijakan dengan
jenis agen
ops-agent
.
Sistem operasi | Agen logging | Agen pemantauan | Agen Operasional |
---|---|---|---|
CentOS 7 | |||
CentOS 8 | |||
Linux Rocky 8 | |||
RHEL 6 | |||
RHEL 7: rhel-7, rhel-7-6-sap-ha, rhel-7-7-sap-ha, rhel-7-9-sap-ha |
1 | ||
RHEL 8: rhel-8, rhel-8-2-sap-ha, rhel-8-4-sap-ha, rhel-8-6-sap-ha, rhel-8-8-sap-ha |
1 | ||
Debian 9 (Stretch) | |||
Debian 10 (Buster) | |||
Debian 11 (Bullseye) | |||
Ubuntu LTS 18.04 (Bionic Beaver): ubuntu-1804-lts, ubuntu-minimal-1804-lts |
|||
Ubuntu LTS 20.04 (Focal Fossa): ubuntu-2004-lts, ubuntu-minimal-2004-lts |
|||
Ubuntu LTS 22.04 (Jammy Jellyfish): ubuntu-2204-lts, ubuntu-minimal-2204-lts |
|||
SLES 12: sles-12, sles-12-sp5-sap |
|||
SLES 15: sles-15, sles-15-sp2-sap, sles-15-sp3-sap, sles-15-sp4-sap, sles-15-sp5-sap |
|||
OpenSUSE Leap 15: opensuse-leap (opensuse-leap-15-3-*, Opensuse-leap-15-4-*) |
|||
Windows Server: 2016, 2019, 2022, Core 2016, Core 2019, Core 2022 |
1 Agen Monitoring tidak didukung di rhel-7-9-sap-ha
, rhel-8-2-sap-ha
, atau rhel-8-4-sap-ha
.
Membuat Kebijakan Agen
Untuk membuat Kebijakan Agen menggunakan Google Cloud CLI, selesaikan langkah-langkah berikut:
Jika Anda belum melakukannya, instal Google Cloud CLI.
Di gcloud CLI, grup perintah untuk mengelola Kebijakan Agen masih dalam tahap rilis
beta
.Jika Anda belum melakukannya, instal komponen
beta
dari gcloud CLI:gcloud components install beta
Untuk memeriksa apakah Anda sudah menginstal komponen
beta
, jalankan:gcloud components list
Jika sebelumnya Anda telah menginstal komponen
beta
, pastikan Anda memiliki versi terbaru:gcloud components update
Gunakan skrip berikut untuk mengaktifkan API dan menetapkan izin yang tepat untuk menggunakan Google Cloud CLI:
set-permissions.sh
.Untuk mengetahui informasi tentang skrip, lihat Apa yang dilakukan skrip
set-permissions.sh
?.Gunakan perintah
gcloud beta compute instances ops-agents policies create
untuk membuat Kebijakan. Untuk sintaksis perintah, lihat dokumentasigcloud beta compute instances ops-agents policies create
.Untuk mengetahui contoh cara memformat perintah, lihat bagian Contoh dalam dokumentasi Google Cloud CLI.
Untuk mengetahui informasi selengkapnya tentang perintah gcloud CLI yang tersedia dan opsi yang tersedia, lihat dokumentasi
gcloud beta compute instances ops-agents policies
.
Praktik terbaik untuk menggunakan Kebijakan Agen
Untuk mengontrol dampak terhadap sistem produksi selama peluncuran, sebaiknya gunakan label dan zona instance untuk memfilter instance tempat kebijakan diterapkan.
Berikut adalah contoh rencana peluncuran bertahap untuk VM CentOS 7:
Tahap 1: Buat kebijakan untuk menginstal agen Logging dan agen Monitoring lama di semua VM dengan label env=test
dan app=myproduct
.
gcloud beta compute instances \
ops-agents policies create ops-agents-policy-safe-rollout \
--agent-rules="type=logging,version=current-major,package-state=installed,enable-autoupgrade=true;type=metrics,version=current-major,package-state=installed,enable-autoupgrade=true" \
--os-types=short-name=centos,version=7 \
--group-labels=env=test,app=myproduct \
--project=my_project
Untuk mengetahui informasi selengkapnya tentang menentukan sistem operasi, lihat
gcloud beta compute instances ops-agents policies create
.
Fase 2: Perbarui kebijakan tersebut untuk menargetkan env=prod
dan app=myproduct
, serta hanya
satu zona.
gcloud beta compute instances \
ops-agents policies update ops-agents-policy-safe-rollout \
--group-labels=env=prod,app=myproduct \
--zones=us-central1-c \
Tahap 3: Perbarui kebijakan tersebut untuk menghapus filter zona sehingga diluncurkan secara global
gcloud beta compute instances \
ops-agents policies update ops-agents-policy-safe-rollout \
--clear-zones
Batasan
Agar Kebijakan berlaku di VM yang sudah ada Konfigurasi OS, penyiapan tambahan diperlukan untuk memastikan Agen Konfigurasi OS yang diandalkan kebijakan telah diinstal di VM. Untuk menginstal Agen Konfigurasi OS pada fleet VM, selesaikan langkah-langkah berikut:
Pastikan Anda telah menjalankan skrip
set-permissions.sh
di bagian Membuat Kebijakan Agen.Tentukan VM mana yang ingin Anda instal di Agen Konfigurasi OS dan cantumkan dalam file CSV.
Untuk menampilkan daftar semua instance yang tidak dikelola Google (misalnya oleh Google Kubernetes Engine atau Google App Engine) ke file csv, jalankan:
gcloud compute instances list \ --filter="-labels.list(show="keys"):goog-" \ --format="csv(name,zone)" \ | grep -v -x -F -f <(gcloud compute instances os-inventory list-instances \ --format="csv(name,zone)") \ | sed 's/$/,update/' > instances.csv
Bagian
grep
memfilter VM yang sudah menginstal dan mengaktifkan Agen Konfigurasi OS. Pengecualian label VM berdasarkangoog-
memfilter VM Compute Engine yang dikelola oleh GKE, App Engine, dll.Untuk memfilter instance lebih lanjut menurut zona atau label, ubah
--filter
menjadi sesuatu yang mirip dengan berikut ini:"-labels.list(show="keys"):goog- AND zone:(ZONE_1,ZONE_2) AND labels.KEY_1:VALUE_1 AND labels.KEY_2=VALUE_2"
Download dan jalankan skrip
mass-install-osconfig-agent.sh
dengan mengikuti petunjuk dalam skrip untuk menjalankan perintah seperti:bash mass-install-osconfig-agent.sh --project project-id --input-file instances.csv
Skrip ini mengotomatiskan petunjuk Menginstal agen Konfigurasi OS.
Pemecahan masalah
Perintah kebijakan ops-agents gagal
Jika perintah kebijakan ops-agents gagal, perintah tersebut akan menampilkan error validasi yang sesuai. Perbaiki error tersebut dengan memperbaiki argumen dan tanda perintah seperti yang disarankan oleh pesan error.
Selain error validasi, Anda mungkin melihat error berikut:
Izin IAM tidak memadai
Contoh error terlihat seperti ini:
ERROR: (gcloud.beta.compute.instances.ops-agents.policies.XXX) PERMISSION_DENIED: Caller does not have required permission to XXX
Pastikan Anda menjalankan skrip
set-permissions.sh
di bagian Membuat Kebijakan Agen untuk menyiapkan peran IAM khususosconfig.guestPolicy
.Untuk memastikan apakah Anda mengaktifkan peran kebijakan tamu OS Config yang memadai untuk project, Anda dapat menjalankan perintah berikut. Dalam contoh ini, perintah memeriksa apakah pengguna memiliki peran
roles/osconfig.guestPolicyAdmin
.GCLOUD_MEMBER
harus dalam formatuser:USER_EMAIL
atauserviceaccount:SERVICE_ACCOUNT_EMAIL
.gcloud projects get-iam-policy project-id \ --filter=--member=gcloud-member \ | grep "roles/osconfig.guestPolicyAdmin" -B 2
Berikut adalah output yang diinginkan:
- members: - gcloud-member role: roles/osconfig.guestPolicyAdmin
Osconfig API tidak diaktifkan
Contoh error terlihat seperti ini:
API [osconfig.googleapis.com] not enabled on project [XXX]. Would you like to enable and retry (this will take a few minutes)? (y/N)?
Pastikan Anda menjalankan skrip
set-permissions.sh
di bagian Membuat Kebijakan Agen untuk memberikan semua izin yang diperlukan.Untuk memastikan apakah OS Config API diaktifkan untuk project, Anda dapat menjalankan perintah berikut:
gcloud services list --project project-id \ | grep osconfig.googleapis.com
Berikut adalah output yang diinginkan:
osconfig.googleapis.com Cloud OS Config API
Kebijakan tidak ada
Contoh error terlihat seperti ini:
NOT_FOUND: Requested entity was not found
Hal ini menunjukkan bahwa kebijakan telah dihapus. Pastikan ID kebijakan di perintah
describe
,update
, ataudelete
dipetakan ke kebijakan yang sudah ada.
Kebijakan dibuat, tetapi tampaknya tidak berpengaruh
Agen OS Config di-deploy ke setiap instance Compute Engine untuk mengelola paket bagi agen Logging dan Monitoring. Kebijakan ini mungkin tampak tidak berpengaruh jika agen Konfigurasi OS yang mendasarinya tidak diinstal.
LINUX
Untuk memastikan agen OS Config telah diinstal, jalankan perintah berikut:
gcloud compute ssh instance-id \
--project project-id \
-- sudo systemctl status google-osconfig-agent
Contoh output-nya adalah:
google-osconfig-agent.service - Google OSConfig Agent
Loaded: loaded (/lib/systemd/system/google-osconfig-agent.service; enabled; vendor preset:
Active: active (running) since Wed 2020-01-15 00:14:22 UTC; 6min ago
Main PID: 369 (google_osconfig)
Tasks: 8 (limit: 4374)
Memory: 102.7M
CGroup: /system.slice/google-osconfig-agent.service
└─369 /usr/bin/google_osconfig_agent
WINDOWS
Untuk memastikan agen OS Config telah diinstal, jalankan langkah-langkah berikut:
Hubungkan ke instance Anda menggunakan RDP atau alat serupa, lalu login ke Windows.
Buka terminal PowerShell, lalu jalankan perintah PowerShell berikut. Anda tidak memerlukan hak istimewa administrator.
Get-Service google_osconfig_agent
Contoh output-nya adalah:
Status Name DisplayName
------ ---- -----------
Running google_osconfig_a… Google OSConfig Agent
Instance Compute Engine SUSE dan Ubuntu tidak memiliki agen OS Config bawaan, jadi Anda harus mengikuti instructions penginstalan agen OS Config untuk menginstal agen OS Config pada instance Compute Engine tersebut.
Agen OS Config telah diinstal, tetapi tidak menginstal agen Operasional
Untuk memverifikasi apakah ada error saat agen OS Config menerapkan Kebijakan, Anda dapat memeriksa log agen OS Config. Hal ini dapat dilakukan melalui Logs Explorer atau melalui SSH / RDP ke setiap instance Compute Engine.
Untuk melihat log agen Konfigurasi OS di Logs Explorer, gunakan filter berikut:
resource.type="gce_instance"
logName="projects/project-id/logs/OSConfigAgent"
Untuk melihat log agen OS Config melalui SSH untuk setiap instance Compute Engine Linux, jalankan perintah berikut:
CentOS / RHEL / SLES / SUSE
gcloud compute ssh instance-id \ --project project-id \ -- sudo cat /var/log/messages \ | grep "OSConfigAgent\|google-fluentd\|stackdriver-agent"
Debian / Ubuntu
gcloud compute ssh instance-id \ --project project-id \ -- sudo cat /var/log/syslog \ | grep "OSConfigAgent\|google-fluentd\|stackdriver-agent"
Untuk melihat log agen OS Config melalui RDP untuk setiap instance Windows Compute Engine, jalankan langkah-langkah berikut:
Hubungkan ke instance Anda menggunakan RDP atau alat serupa, lalu login ke Windows.
Buka aplikasi
Event Viewer
, di bagianWindows Logs
=>Application
, telusuri log denganSource
yang sama denganOSConfigAgent
.
Jika terjadi error saat menghubungkan ke Layanan Konfigurasi OS, pastikan Anda menjalankan skrip set-permissions.sh
di bagian Membuat Kebijakan Agen untuk menyiapkan metadata.
Untuk memastikan metadata Konfigurasi OS sudah aktif, Anda dapat menjalankan perintah berikut:
gcloud compute project-info describe \
--project project-id \
| grep "enable-osconfig\|enable-guest-attributes" -A 1
Berikut adalah output yang diinginkan:
- key: enable-guest-attributes
value: 'TRUE'
- key: enable-osconfig
value: 'TRUE'
Agen operasional sudah diinstal, tetapi tidak berfungsi dengan baik
Lihat halaman pemecahan masalah Agen logging dan Agen pemantauan untuk men-debug masalah tertentu.
Mengaktifkan log tingkat debug
Mengaktifkan logging tingkat debug agen OS Config saat melaporkan masalah akan sangat membantu.
Anda dapat menetapkan metadata osconfig-log-level: debug
untuk mengaktifkan logging tingkat debug untuk agen Konfigurasi OS. Log yang dikumpulkan memiliki lebih banyak informasi
untuk membantu penyelidikan.
Untuk mengaktifkan logging tingkat debug untuk seluruh project, jalankan perintah berikut:
gcloud compute project-info add-metadata \
--project project-id \
--metadata osconfig-log-level=debug
Untuk mengaktifkan logging tingkat debug untuk satu VM, jalankan perintah berikut:
gcloud compute instances add-metadata instance-id \
--project project-id \
--metadata osconfig-log-level=debug
Informasi tambahan
Apa fungsi skrip set-permissions.sh
?
Dengan mempertimbangkan project ID, peran Identity and Access Management (IAM), dan email atau akun layanan, skrip set-permissions.sh
akan melakukan tindakan berikut:
Mengaktifkan Cloud Logging API, Cloud Monitoring API, dan OS Config API untuk project.
Memberikan peran
roles/logging.logWriter
danroles/monitoring.metricWriter
ke akun layanan default Compute Engine sehingga agen dapat menulis log dan metrik ke Logging and Cloud Monitoring API.Mengaktifkan metadata Konfigurasi OS untuk project sehingga agen Konfigurasi OS diaktifkan di VM.
Memberikan peran IAM yang ditentukan kepada pengguna
gcloud
atau akun layanan. Pemilik project memiliki akses penuh untuk membuat dan mengelola Kebijakan. Untuk semua pengguna atau akun layanan lainnya, pemilik project harus memberikan salah satu peran berikut:roles/osconfig.guestPolicyAdmin
: Memberikan akses penuh ke Kebijakan.roles/osconfig.guestPolicyEditor
: Memungkinkan pengguna mendapatkan, memperbarui, dan mencantumkan Kebijakan.roles/osconfig.guestPolicyViewer
: Memberikan akses hanya baca untuk mendapatkan dan mencantumkan Kebijakan.
Saat menjalankan skrip, Anda hanya perlu menentukan bagian
guestPolicy*
dari nama peran. Skrip ini menyediakan bagianroles/osconfig.
dari nama tersebut.
Pemanggilan skrip berikut akan mengaktifkan API, memberikan peran yang diperlukan ke akun layanan default, dan mengaktifkan metadata Konfigurasi OS:
bash set-permissions.sh --project=PROJECT_ID
Untuk menggunakan skrip guna memberikan juga salah satu peran OS Config kepada pengguna yang tidak memiliki peran roles/owner
(Pemilik) pada project, jalankan skrip sebagai berikut:
bash set-permissions.sh --project=PROJECT_ID \ --iam-user=USER_EMAIL \ --iam-permission-role=guestPolicy[Admin|Editor|Viewer]
Untuk menggunakan skrip guna memberikan juga salah satu peran OS Config ke akun layanan non-default, jalankan skrip sebagai berikut:
bash set-permissions.sh --project=PROJECT_ID \ --iam-service-account=SERVICE_ACCT_EMAIL \ --iam-permission-role=guestPolicy[Admin|Editor|Viewer]
Untuk informasi selengkapnya, lihat konten skrip.
Apa fungsi skrip diagnose.sh
?
Dengan mempertimbangkan project, ID instance Compute Engine, dan ID Kebijakan agen Operasional, skrip diagnose.sh
secara otomatis mengumpulkan informasi yang diperlukan untuk membantu mendiagnosis masalah kebijakan:
Versi agen Konfigurasi OS
Kebijakan tamu Konfigurasi OS yang mendasarinya
Kebijakan yang berlaku untuk instance Compute Engine ini
Repositori paket agen yang ditarik ke instance Compute Engine
Integrasi Terraform
Dukungan Terraform dibangun berdasarkan perintah Google Cloud CLI. Untuk membuat Kebijakan Agen menggunakan Terraform, ikuti petunjuk modul Terraform.