Workload Manager untuk Microsoft SQL Server menggunakan Agent Google Clouduntuk SQL Server guna mendeteksi dan mengumpulkan metadata untuk mengevaluasi konfigurasi SQL Server Anda. Agen untuk SQL Server diperlukan di semua VM yang menjalankan SQL Server.
Dokumen ini menunjukkan cara menginstal, mengonfigurasi, dan memverifikasi Agen Google Clouduntuk SQL Server.
Prasyarat untuk menginstal agen
Sebelum menginstal Agen untuk SQL Server, Anda harus memastikan bahwa prasyarat berikut terpenuhi beserta membuat evaluasi beban kerja SQL Server.
Memberikan peran IAM ke akun layanan
AgenGoogle Clouduntuk SQL Server menggunakan akun layanan Identity and Access Management (IAM) yang dilampirkan ke VM untuk autentikasi dengan Google Cloud dan untuk izin mengakses resource Google Cloud . Untuk pengumpulan metrik validasi Workload Manager, gunakan akun layanan baru yang menyertakan peran IAM berikut:
- Compute Viewer (
roles/compute.viewer
) - Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor
) - Workload Manager Admin (
roles/workloadmanager.admin
) - Logs Writer (
roles/logging.logWriter
), jika Anda menggunakan fitur Cloud Logging
Untuk menambahkan peran yang diperlukan ke akun layanan Anda, ikuti langkah-langkah berikut:
Di Konsol Google Cloud, buka halaman IAM.
Pilih project Google Cloud Anda.
Identifikasi akun layanan tempat Anda ingin menambahkan peran.
- Jika akun layanan belum ada dalam daftar akun utama, akun layanan tidak memiliki peran yang ditetapkan pada akun tersebut. Klik Add, lalu masukkan alamat email akun layanan.
- Jika akun layanan sudah ada di daftar utama, berarti akun tersebut sudah memiliki peran. Klik tombol Edit untuk akun layanan yang ingin diedit.
Pilih peran yang diperlukan dari daftar peran yang tersedia:
- Compute Engine > Viewer Compute
- Secret Manager > Secret Manager Secret Accessor
Klik Add atau Save untuk menerapkan peran ke akun layanan.
Mengaktifkan akses ke Google Cloud API
Compute Engine merekomendasikan konfigurasi instance VM Anda untuk mengizinkan semua cakupan akses ke semua Cloud API dan hanya menggunakan izin IAM dari akun layanan instance untuk mengontrol akses ke resource Google Cloud . Untuk mengetahui informasi selengkapnya, lihat Membuat VM yang menggunakan akun layanan yang dikelola pengguna.
Jika Anda membatasi akses ke Cloud API, Agen untuk SQL Server memerlukan cakupan akses Cloud API minimum berikut pada instance VM host:
https://www.googleapis.com/auth/cloud-platform
Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik cakupan.
Jika Anda menjalankan aplikasi SQL Server pada instance VM yang tidak memiliki alamat IP eksternal, Anda harus mengaktifkan Akses Google Pribadi di subnet VM agar Agen untuk SQL Server dapat mengakses Google API dan layanan Google. Untuk mempelajari cara mengaktifkan Akses Google Pribadi di subnet, lihat Mengonfigurasi Akses Google Pribadi.
Izin yang diperlukan di SQL Server
Gunakan skrip berikut untuk menetapkan izin yang diperlukan ke akun pengguna yang dikonfigurasi di agen.
USE [master] GO
GRANT VIEW SERVER STATE TO [user_name] GRANT VIEW ANY DEFINITION TO [user_name]
-- Adds db_datareader role to the user EXEC sp_MSForEachDB ' USE ? IF NOT EXISTS(SELECT * FROM sys.database_principals WHERE name = ''user_name'') BEGIN CREATE USER [user_name] FOR LOGIN [user_name] END EXEC sp_addrolemember ''db_datareader'', ''user_name'' '
Menginstal agen
Windows
Di Windows, instal Agen untuk SQL Server menggunakan perintah pengelolaan paket
GooGet, googet
. Perintah pengelolaan paket akan menyelesaikan
tugas-tugas berikut:
- Mendownload versi terbaru Agen untuk SQL Server.
- Membuat layanan Windows bernama
google-cloud-sql-server-agent
dan tugas terjadwal yang berjalan setiap menit untuk memeriksa apakah layanan masih berjalan dan, jika perlu, memulai ulang layanan.
Untuk menginstal agen di VM, ikuti langkah-langkah berikut:
- Hubungkan ke instance VM Windows menggunakan RDP.
- Sebagai administrator, jalankan perintah berikut dari PowerShell:
googet addrepo google-cloud-sql-server-agent-windows https://packages.cloud.google.com/yuck/repos/google-cloud-sql-server-agent-windows googet install google-cloud-sql-server-agent
- Tinjau file konfigurasi yang terletak di bagian
%ProgramFiles%\Google\google-cloud-sql-server-agent
dan perbarui bagiancredential_configuration
menggunakan detail di Properti konfigurasi. - Mulai ulang agen agar perubahan ini diterapkan.
Linux
Di Linux, Anda menginstal Agen untuk SQL Server menggunakan perintah pengelolaan paket sistem operasi standar:
- Di RHEL, gunakan perintah
yum
- Di SLES, gunakan perintah
zypper
Perintah pengelolaan paket akan menyelesaikan tugas berikut:
- Mendownload versi terbaru Agen untuk SQL Server.
- Membuat agen sebagai layanan
systemd
Linux, yang bernamagoogle-cloud-sql-server-agent
. - Mengaktifkan dan memulai layanan,
google-cloud-sql-server-agent
.
Untuk menginstal agen di VM, ikuti langkah-langkah berikut:
- Buat koneksi SSH ke VM host Anda.
- Di terminal, instal agen dengan menjalankan perintah khusus untuk sistem operasi Anda:
RHEL
sudo tee /etc/yum.repos.d/google-cloud-sql-server-agent.repo << EOM [google-cloud-sql-server-agent] name=Google Cloud Agent for SQL Server baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-sql-server-agent-el$(cat /etc/redhat-release | cut -d . -f 1 | tr -d -c 0-9) enabled=1 gpgcheck=0 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOM sudo yum install google-cloud-sql-server-agent
SLES 15
sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sql-server-agent-sles15 google-cloud-sql-server-agent sudo zypper install google-cloud-sql-server-agent
SLES 12
sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sql-server-agent-sles12 google-cloud-sql-server-agent sudo zypper install google-cloud-sql-server-agent
- Tinjau file konfigurasi yang terletak di bagian
\etc\google-cloud-sql-server-agent
dan perbarui bagiancredential_configuration
menggunakan detail di Properti konfigurasi. - Mulai ulang agen agar perubahan ini diterapkan.
Properti konfigurasi
Tabel berikut menjelaskan properti untuk file konfigurasi agen.
Properti | |
---|---|
collection_configuration.collect_guest_os_metrics |
Untuk mengaktifkan pengumpulan metrik OS, tetapkan nilai sebagai |
collection_configuration.guest_os_metrics_collection_interval_in_seconds |
Frekuensi pengumpulan metrik OS Workload Manager dalam hitungan detik.
Defaultnya adalah |
collection_configuration.collect_sql_metrics |
Untuk mengaktifkan pengumpulan metrik SQL Server, tentukan |
collection_configuration.collect_sql_metrics_collection_interval_in_seconds |
Frekuensi pengumpulan metrik SQL Server Workload Manager dalam hitungan detik.
Defaultnya adalah |
log_level |
INFO . Jangan ubah level logging kecuali jika Anda diarahkan oleh Cloud Customer Care.
|
log_to_cloud |
Untuk mengalihkan log agen ke Cloud Logging,
tentukan |
disable_log_usage |
Untuk menonaktifkan logging metrik kesehatan agen, tentukan |
remote_collection |
Tentukan |
credential_configuration[].sql_configurations[].user_name |
Tentukan akun pengguna yang digunakan untuk membuat kueri instance SQL Server. Untuk mengonfigurasi izin akun, tinjau izin yang diperlukan dalam skrip izin dan berikan izin tersebut sesuai dengan kebijakan internal Anda. Catatan: Jika Anda menggunakan Windows Authentication, pastikan untuk menentukan nama pengguna dalam
format berikut:
|
credential_configuration[].sql_configurations[].host |
Nama host SQL Server. |
credential_configuration[].sql_configurations[].secret_name |
Untuk memberikan sandi dengan aman bagi akun pengguna database yang digunakan agen untuk mengkueri SQL Server, tentukan nama secret di Secret Manager yang berisi kredensial keamanan untuk akun pengguna database. Catatan: Secret dan instance VM host harus ada di project Google Cloud yang sama. |
credential_configuration[].sql_configurations[].port_number |
Tentukan port tempat instance SQL Server Anda menerima kueri. |
credential_configuration[].remote_win.server_name |
Alamat IP atau FQDN VM jarak jauh |
credential_configuration[].remote_win.guest_user_name |
Tentukan akun pengguna yang digunakan untuk terhubung ke VM dari jarak jauh. |
credential_configuration[].remote_win.guest_secret_name |
Untuk memberikan sandi dengan aman bagi akun pengguna yang digunakan agen untuk terhubung ke VM dari jarak jauh, tentukan nama secret di Secret Manager yang berisi kredensial keamanan untuk akun pengguna. Catatan: Secret dan instance VM host harus ada di project Google Cloud yang sama. |
credential_configuration[].remote_linux.server_name |
Alamat IP atau FQDN VM jarak jauh |
credential_configuration[].remote_linux.guest_user_name |
Tentukan akun pengguna yang digunakan untuk terhubung ke VM dari jarak jauh. |
credential_configuration[].remote_linux.guest_port_number |
Tentukan nomor port SSH untuk VM jarak jauh. |
credential_configuration[].remote_linux.linux_ssh_private_key_path |
Jalur ke file kunci pribadi SSH. |
credential_configuration[].instance_name |
Tentukan nama instance VM Compute Engine Anda. Catatan: Opsional untuk pengumpulan lokal. |
credential_configuration[].instance_id |
Tentukan ID instance VM Compute Engine Anda. Catatan: Opsional untuk pengumpulan lokal. |
Contoh berikut menunjukkan file konfigurasi untuk Agen untuk SQL Server:
Pengumpulan Lokal
{ "collection_configuration": { "collect_guest_os_metrics":true, "guest_os_metrics_collection_interval_in_seconds":3600, "collect_sql_metrics":true, "sql_metrics_collection_interval_in_seconds":3600 }, "credential_configuration": [ { "sql_configurations": [ { "host":".", "user_name":"db_user_name", "secret_name":"db_pwd_secret_name", "port_number":1433 } ], } ], "log_level":"INFO", "log_to_cloud":true, "collection_timeout_seconds":10, "max_retries":5, "retry_interval_in_seconds":3600 }
Pengumpulan Jarak Jauh
{ "collection_configuration": { "collect_guest_os_metrics":true, "guest_os_metrics_collection_interval_in_seconds":3600, "collect_sql_metrics":true, "sql_metrics_collection_interval_in_seconds":3600 }, "credential_configuration": [ { "sql_configurations": [ { "host":"sql_server_instance", "user_name":"db_user_name", "secret_name":"db_pwd_secret_name", "port_number":1433 } ], "remote_win":{ "server_name":"sql_server_instance", "guest_user_name":"user_name", "guest_secret_name":"pwd_secret_name" }, "instance_name":"db01", "instance_id":"9999999999999999999" } ], "remote_collection":true, "log_level":"INFO", "log_to_cloud":true, "collection_timeout_seconds":10, "max_retries":5, "retry_interval_in_seconds":3600 }
Memverifikasi penginstalan agen
Windows
- Hubungkan ke instance VM Windows menggunakan RDP.
Jalankan perintah berikut dari PowerShell sebagai administrator:
$(Get-Service -Name 'google-cloud-sql-server-agent' -ErrorAction Ignore).Status
Jika agen berjalan, statusnya akan menampilkan
Running
.
Linux
- Buat koneksi SSH dengan instance VM host Anda.
Jalankan perintah berikut:
systemctl status google-cloud-sql-server-agent
Jika agen berfungsi dengan baik, output akan berisi
active (running)
. Contoh:google-cloud-sql-server-agent.service - Google Cloud Agent for SQL Server Loaded: loaded (/usr/lib/systemd/system/google-cloud-sql-server-agent.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2023-12-31 18:59:12 UTC; 10s ago Main PID: 14412 (google_cloud_sq) Tasks: 7 Memory: 12.9M (max: 1.0G limit: 1.0G available: 1011.0M) CGroup: /system.slice/google-cloud-sql-server-agent.service └─ 14412 /usr/bin/google_cloud_sql_server_agent --action=run
Memeriksa versi agen
Untuk memeriksa versi agen Anda, selesaikan langkah-langkah berikut:
Windows
- Menggunakan RDP untuk terhubung ke mesin host.
- Sebagai administrator, jalankan perintah berikut dari PowerShell:
googet installed google-cloud-sql-server-agent
RHEL
- Menggunakan SSH untuk terhubung ke mesin host.
- Jalankan perintah berikut:
yum info google-cloud-sql-server-agent
SUSE
- Menggunakan SSH untuk terhubung ke mesin host.
- Jalankan perintah berikut:
zypper info google-cloud-sql-server-agent
Memulai ulang agen
Jika Agen untuk SQL Server berhenti berfungsi atau Anda memperbarui konfigurasinya, mulai ulang agen.
Pilih sistem operasi Anda, lalu ikuti langkah-langkahnya:
Windows
- Menggunakan RDP untuk terhubung ke mesin host.
- Sebagai administrator, jalankan perintah berikut dari PowerShell:
Restart-Service -Name 'google-cloud-sql-server-agent' -Force
Linux
- Menggunakan SSH untuk terhubung ke mesin host.
- Jalankan perintah berikut:
sudo systemctl restart google-cloud-sql-server-agent
Mengupdate agen
Untuk memastikan Anda memiliki agen versi terbaru, Anda harus memeriksa update secara berkala dan mengupdate agen.
Memeriksa update
Pilih sistem operasi Anda, lalu ikuti langkah-langkahnya:
Windows
- Menggunakan RDP untuk terhubung ke mesin host.
- Sebagai administrator, jalankan perintah berikut dari PowerShell:
googet latest google-cloud-sql-server-agent
RHEL
- Menggunakan SSH untuk terhubung ke mesin host.
- Jalankan perintah berikut:
sudo yum check-update google-cloud-sql-server-agent
SLES
- Menggunakan SSH untuk terhubung ke mesin host.
- Jalankan perintah berikut:
sudo zypper list-updates -r google-cloud-sql-server-agent
Menginstal update
Pilih sistem operasi Anda, lalu ikuti langkah-langkahnya:
Windows
- Menggunakan RDP untuk terhubung ke mesin host.
- Sebagai administrator, jalankan perintah berikut dari PowerShell:
googet install google-cloud-sql-server-agent
RHEL
- Menggunakan SSH untuk terhubung ke mesin host.
- Jalankan perintah berikut:
sudo yum --nogpgcheck update google-cloud-sql-server-agent
SLES
- Menggunakan SSH untuk terhubung ke mesin host.
- Jalankan perintah berikut:
sudo zypper --no-gpg-checks update google-cloud-sql-server-agent
Lihat log agen di Cloud Logging
Secara default, log untuk Agen untuk SQL Server dialihkan dari instance VM Anda ke Cloud Logging.
Untuk melihat log agen di Logging, ikuti langkah-langkah berikut:
Di Konsol Google Cloud, buka halaman Logs Explorer.
Buka panel Query.
Dari menu drop-down Resources, pilih Global, lalu klik Apply.
Di editor kueri, masukkan
google-cloud-sql-server-agent
.Klik Run query.
Anda akan melihat log yang dihasilkan oleh instance agen yang berjalan di semua instance VM Anda. Untuk memfilter log dari mesin tertentu, gunakan filter yang tersedia di antarmuka.
Menonaktifkan log agen di Cloud Logging
Untuk menonaktifkan pengalihan default log agen ke Cloud Logging, ikuti langkah-langkah berikut:
Buat koneksi RDP atau SSH dengan instance VM host Anda.
Buka file konfigurasi agen:
Windows
%ProgramFiles%\Google\google-cloud-sql-server-agent\configuration.json
Linux
/etc/google-cloud-sql-server-agent/configuration.json
Untuk properti
log_to_cloud
, perbarui nilai menjadifalse
.Simpan file konfigurasi.
Mulai ulang agen agar perubahan ini diterapkan.
Pemecahan masalah
Bagian berikut memberikan informasi tentang masalah umum terkait penggunaan Agen untuk SQL Server, penyebabnya, dan penyelesaiannya.
Cakupan autentikasi tidak memadai
Masalah: Jika Anda membatasi cakupan akses pada instance VM host, log Agen untuk SQL Server mungkin menampilkan error izin IAM yang tidak memadai.
googleapi: Error 403: Request had insufficient authentication scopes. Details: [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "domain": "googleapis.com", "metadata": { "method": "google.cloud.workloadmanager.datawarehouse.v1.DataCollectService.WriteInsight", "service": "workloadmanager.googleapis.com" }, "reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT" } ]More details: Reason: insufficientPermissions, Message: Insufficient Permission
Penyebab: Agen untuk SQL Server memerlukan cakupan akses Cloud API minimum pada instance VM host.
Penyelesaian: Untuk mengatasi masalah ini, aktifkan cakupan akses yang diperlukan
Gagal memuat file konfigurasi
Masalah: Jika file konfigurasi memiliki nilai yang tidak valid, Anda akan melihat error berikut.
"Failed to load configuration","pid":3524,"error":"proto: (line 19:42): unknown field "{field_name}"
Penyelesaian: Untuk mengatasi masalah ini, perbarui file konfigurasi menggunakan detail di Properti konfigurasi
Gagal melakukan inisialisasi pengumpulan data
Masalah: Setelah menginstal agen, jika file konfigurasi tidak diperbarui, Anda akan melihat error berikut:
"Failed to initialize guest collection","pid":2112,"error":"invalid value for "user_name" "secret_name"
Penyelesaian: Untuk mengatasi masalah ini, lakukan inisialisasi konfigurasi kredensial menggunakan Properti konfigurasi
Langkah selanjutnya
- Pelajari evaluasi workload lebih lanjut.