Mengelola dan memantau AlloyDB Omni

Halaman ini menjelaskan cara mengelola peran pengguna AlloyDB Omni, memantau aktivitas server AlloyDB Omni, dan mengupdate atau menghapus penginstalan AlloyDB Omni.

Mengelola peran pengguna

AlloyDB Omni menggunakan kumpulan peran pengguna PostgreSQL yang telah ditentukan sebelumnya yang disertakan AlloyDB, dengan perbedaan berikut:

  • AlloyDB Omni menyertakan peran superuser bernama alloydbadmin, dan peran non-superuser bernama alloydbmetadata.

  • Pengguna postgres default memiliki peran superuser.

  • Semua peran pengguna standar lainnya tidak memiliki hak istimewa. Alamat tersebut dicadangkan untuk potensi penggunaan di masa mendatang.

Seperti halnya AlloyDB, praktik terbaiknya adalah mengikuti langkah-langkah berikut saat menyiapkan database:

  1. Tentukan atau impor database Anda menggunakan peran pengguna postgres. Dalam penginstalan baru, peran ini memiliki hak istimewa superuser, dan tidak memerlukan sandi.

  2. Buat peran pengguna baru yang memiliki tingkat akses yang benar ke tabel aplikasi Anda, lagi-lagi menggunakan peran pengguna postgres.

  3. Konfigurasikan aplikasi Anda untuk terhubung ke database menggunakan peran akses terbatas baru ini.

Anda dapat membuat dan menentukan peran pengguna baru sebanyak yang diperlukan. Jangan mengubah atau menghapus peran pengguna apa pun yang disertakan dengan AlloyDB Omni.

Untuk mengetahui informasi selengkapnya, lihat Mengelola peran pengguna AlloyDB.

Memantau AlloyDB Omni

Memantau penginstalan AlloyDB Omni berarti membaca dan menganalisis file log-nya.

AlloyDB Omni yang berjalan di Kubernetes juga memiliki kumpulan metrik dasar yang tersedia sebagai endpoint Prometheus. Untuk mengetahui daftar metrik yang tersedia, lihat metrik AlloyDB Omni.

Server tunggal

Secara default, untuk mengambil log AlloyDB Omni, jalankan:

Docker

  docker logs CONTAINER_NAME

Ganti CONTAINER_NAME dengan nama penampung AlloyDB Omni Anda.

Untuk mengonfigurasi perilaku logging AlloyDB Omni, lihat Menyesuaikan penginstalan AlloyDB Omni.

Podman

  podman logs CONTAINER_NAME

Ganti CONTAINER_NAME dengan nama penampung AlloyDB Omni Anda.

Untuk mengonfigurasi perilaku logging AlloyDB Omni, lihat Menyesuaikan penginstalan AlloyDB Omni.

Podman

  podman logs CONTAINER_NAME

Ganti CONTAINER_NAME dengan nama penampung AlloyDB Omni Anda.

Untuk mengonfigurasi perilaku logging AlloyDB Omni, lihat Menyesuaikan penginstalan AlloyDB Omni.

Kubernetes

Menemukan file log cluster database

Anda dapat menemukan file postgresql.audit dan postgresql.log di sistem file pod database. Untuk mengakses file ini, ikuti langkah-langkah berikut:

  1. Tentukan variabel lingkungan yang berisi nama pod database.

    export DB_POD=`kubectl get pod -l alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`

    Ganti DB_CLUSTER_NAME dengan nama cluster database Anda. Ini adalah nama cluster database yang sama dengan yang Anda deklarasikan saat membuatnya.

  2. Jalankan shell di pod database sebagai root.

    kubectl exec ${DB_POD} -it -- /bin/bash
  3. Temukan file log di direktori /obs/diagnostic/:

    • /obs/diagnostic/postgresql.audit
    • /obs/diagnostic/postgresql.log

Mencantumkan layanan pemantauan

v1.0

Saat Anda membuat cluster database, AlloyDB Omni akan membuat layanan pemantauan berikut untuk setiap instance CR cluster database di namespace yang sama:

al-INSTANCE_NAME-monitoring-system

Untuk mencantumkan layanan pemantauan, jalankan perintah berikut.

kubectl get svc -n NAMESPACE | grep monitoring

Ganti NAMESPACE dengan namespace tempat cluster Anda berada.

Contoh respons berikut menampilkan layanan al-1060-dbc-monitoring-system, al-3de6-dbc-monitoring-system, dan al-4bc0-dbc-monitoring-system. Setiap layanan sesuai dengan satu instance.

al-1060-dbc-monitoring-system   ClusterIP   10.0.15.227   <none>        9187/TCP   7d20h
al-3de6-dbc-monitoring-system   ClusterIP   10.0.5.205    <none>        9187/TCP   7d19h
al-4bc0-dbc-monitoring-system   ClusterIP   10.0.15.92    <none>        9187/TCP   7d19h

Versi < 1.0

Saat Anda membuat cluster database, AlloyDB Omni akan membuat layanan pemantauan berikut di namespace yang sama dengan cluster database:

  • DB_CLUSTER-monitoring-db

  • DB_CLUSTER-monitoring-system

Untuk mencantumkan layanan pemantauan, jalankan perintah berikut.

kubectl get svc -n NAMESPACE | grep monitoring

Ganti NAMESPACE dengan namespace tempat cluster Anda berada.

Contoh respons berikut menunjukkan layanan al-2953-dbcluster-foo7-monitoring-system dan al-2953-dbcluster-foo7-monitoring-db.

al-2953-dbcluster-foo7-monitoring-db           ClusterIP   10.36.3.243    <none>        9187/TCP   44m
al-2953-dbcluster-foo7-monitoring-system       ClusterIP   10.36.7.72     <none>        9187/TCP   44m

Melihat metrik Prometheus dari command line

Port 9187 diberi nama metricsalloydbomni untuk semua layanan pemantauan.

  1. Siapkan penerusan port dari lingkungan lokal Anda ke layanan pemantauan.

    kubectl port-forward service/MONITORING_SERVICE -n NAMESPACE MONITORING_METRICS_PORT:metricsalloydbomni
    

    Ganti kode berikut:

    • MONITORING_SERVICE: Nama layanan pemantauan yang ingin Anda teruskan—misalnya, al-1060-dbc-monitoring-system.

    • NAMESPACE: Namespace tempat cluster Anda berada.

    • MONITORING_METRICS_PORT: Port TCP lokal yang tersedia.

    Respons berikut menunjukkan bahwa layanan sedang diteruskan.

    Forwarding from 127.0.0.1:9187 -> 9187
    Forwarding from [::1]:9187 -> 9187
    
  2. Saat perintah sebelumnya berjalan, Anda dapat mengakses metrik pemantauan melalui HTTP di port yang Anda tentukan. Misalnya, Anda dapat menggunakan curl untuk melihat semua metrik sebagai teks biasa:

    curl http://localhost:MONITORING_METRICS_PORT/metrics
    

Melihat metrik menggunakan Prometheus API

Kunci label alloydbomni.internal.dbadmin.goog/task-type dan port metricsalloydbomni tersedia sebagai default untuk semua layanan pemantauan di AlloyDB Omni. Anda dapat menggunakannya bersama dengan satu resource kustom serviceMonitor untuk memilih semua layanan untuk semua namespace di cluster database Anda.

Untuk informasi selengkapnya tentang cara menggunakan Prometheus API, lihat dokumentasi Prometheus Operator.

Berikut adalah contoh kolom spec dari resource kustom serviceMonitor yang menyertakan kunci label alloydbomni.internal.dbadmin.gdc.goog/task-type dan port metricsalloydbomni. Resource kustom serviceMonitor memantau dan mengumpulkan semua layanan kubernetes di semua namespace

Untuk mengetahui informasi selengkapnya tentang definisi ServiceMonitor lengkap, lihat definisi resource kustom ServiceMonitor .

v1.0

    spec:
      selector:
        matchLabels:
          alloydbomni.internal.dbadmin.goog/task-type: monitoring
      namespaceSelector:
        any: true
      endpoints:
        - port: metricsalloydbomni

Versi < 1.0

    spec:
      selector:
        matchExpressions:
        - key: alloydbomni.internal.dbadmin.gdc.goog/task-type
          operator: Exists
          values: []
      namespaceSelector:
        any: true
      endpoints:
      - port: metricsalloydbomni

Mengupgrade AlloyDB Omni

Untuk mengupgrade dari AlloyDB Omni 15.5.2 atau yang lebih lama ke 15.5.4, ikuti petunjuk di Bermigrasi dari AlloyDB Omni versi sebelumnya ke versi terbaru.

Untuk mengupgrade dari versi 15.5.4 dan yang lebih baru:

  1. Mulai ulang AlloyDB Omni menggunakan versi image baru.

  2. Pastikan untuk menentukan direktori data Anda agar cocok dengan jalur yang sama seperti yang digunakan di AlloyDB Omni versi sebelumnya.

Meng-uninstal AlloyDB Omni

Server tunggal

Untuk meng-uninstal AlloyDB Omni, hentikan dan hapus penampung AlloyDB Omni menggunakan perintah berikut:

Docker

 docker container stop CONTAINER_NAME
   docker container rm CONTAINER_NAME

Ganti CONTAINER_NAME dengan nama penampung AlloyDB Omni Anda.

Podman

 podman container stop CONTAINER_NAME
   podman container rm CONTAINER_NAME

Ganti CONTAINER_NAME dengan nama penampung AlloyDB Omni Anda.

Podman

 podman container stop CONTAINER_NAME
   podman container rm CONTAINER_NAME

Ganti CONTAINER_NAME dengan nama penampung AlloyDB Omni Anda.

Anda dapat memindahkan, mengarsipkan, atau menghapus direktori data eksternal, bergantung pada apakah dan bagaimana Anda ingin mempertahankan data setelah meng-uninstal AlloyDB Omni.

Kubernetes

Menghapus cluster database

Untuk menghapus cluster database, tetapkan isDeleted ke true dalam manifesnya. Anda dapat melakukannya dengan perintah berikut.

kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"isDeleted":true}}' --type=merge

Ganti DB_CLUSTER_NAME dengan nama cluster database Anda. Ini adalah nama cluster database yang sama dengan yang Anda deklarasikan saat membuatnya.

Meng-uninstal Operator AlloyDB Omni

Untuk meng-uninstal Operator AlloyDB Omni Kubernetes dari cluster Kubernetes, lakukan langkah-langkah berikut:

  1. Hapus semua cluster database Anda:

    for ns in $(kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces -o=jsonpath='{range .items[*]}{.metadata.namespace}{"\n"}{end}'); do
    for cr in $(kubectl get dbclusters.alloydbomni.dbadmin.goog -n $ns -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'); do
    kubectl patch dbclusters.alloydbomni.dbadmin.goog $cr -n $ns --type=merge -p '{"spec":{"isDeleted":true}}'
    done
    done
  2. Tunggu Operator Kubernetes AlloyDB Omni menghapus semua cluster database Anda. Gunakan perintah berikut untuk memeriksa apakah ada resource database yang tersisa:

    kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces
  3. Hapus resource lain yang dibuat oleh Operator Kubernetes AlloyDB Omni:

    kubectl delete failovers.alloydbomni.dbadmin.goog --all --all-namespaces
    kubectl delete restores.alloydbomni.dbadmin.goog --all --all-namespaces
    kubectl delete switchovers.alloydbomni.dbadmin.goog --all --all-namespaces
  4. Uninstal Operator Kubernetes AlloyDB Omni:

    helm uninstall alloydbomni-operator --namespace alloydb-omni-system
  5. Bersihkan secret, deskripsi resource kustom, dan namespace yang terkait dengan Operator Kubernetes AlloyDB Omni:

    kubectl delete certificate -n alloydb-omni-system --all
    kubectl get secrets --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,ANNOTATION:.metadata.annotations.cert-manager\.io/issuer-name | grep -E 'alloydbomni|dbs-al' | awk '{print $1 " " $2}' | xargs -n 2 kubectl delete secret -n
    kubectl delete crd -l alloydb-omni=true
    kubectl delete ns alloydb-omni-system

Mengubah ukuran cluster database berbasis Kubernetes

Untuk mengubah ukuran CPU, memori, atau penyimpanan cluster database berbasis Kubernetes, update kolom resources manifes yang menentukan pod-nya. Operator AlloyDB Omni akan segera menerapkan spesifikasi baru ke pod database Anda.

Untuk informasi selengkapnya tentang sintaksis manifes Operator AlloyDB Omni, lihat Membuat cluster database.

Batasan berikut berlaku untuk mengubah resource cluster database yang sedang berjalan:

  • Anda hanya dapat meningkatkan ukuran disk jika storageClass yang ditentukan mendukung ekspansi volume.
  • Anda tidak dapat mengurangi ukuran disk.