安装 Web 界面

选择文档版本:

本页面介绍了如何安装 AlloyDB Omni Web 用户界面,以便监控自行管理的数据库集群的运行状况和配置。Web 界面提供以下功能:

功能 说明 容器(独立) Kubernetes RPM (Linux) RPM 编排器
集群选择 一个连接界面,可让您建立、注册和保存连接凭据,以便访问目标集群。 支持 支持 支持 支持
集群概览 显示所有活跃集群实例和遥测图表的观测信息中心。 支持 支持 支持 支持
数据库 概览页面,显示集群上的目录表和数据库大小。 支持 支持 支持 支持
列式引擎 分析查询的配置设置和扫描执行统计信息。 支持 支持 支持 支持
数据库标志 观察板,显示与默认设置不同的有效标志和配置。 支持 支持 支持 支持
Query Insights 遥测和查询性能信息中心,显示结构化直方图和慢查询列表。 支持 支持 支持 支持
系统数据分析 显示 CPU 消耗、内存占用和磁盘 I/O 的遥测图表。 不支持(仅限独立容器) 支持 支持 支持

准备工作

在安装 Web 界面之前,请务必执行以下操作:

  1. 获取部署所需的映像,并下载和安装 AlloyDB Omni,以便使用 Web 界面: 使用容器编排器安装 AlloyDB Omni。

  2. 配置数据库用户。

    Web 界面依赖于一个受限用户账号,该账号具有用于访问数据库的 pg_monitor 角色。在 psql 会话中运行以下命令,在每个集群上配置此用户:

    CREATE ROLE alloydbui WITH LOGIN PASSWORD 'PASSWORD';
    GRANT pg_monitor TO alloydbui WITH INHERIT TRUE;
    
  3. 配置 Prometheus。

    如需在概览和系统分析洞见页面上查看图表数据(包括 CPU 使用率),请安装并配置 Prometheus。 AlloyDB Omni Kubernetes operator 会自动运行一个监控代理,该代理会在端口 9187 上导出与 Prometheus 兼容的指标。不过,如需在 Web 界面中查看时序图表,您必须安装并配置 Prometheus 服务器来爬取这些指标。如需详细了解指标端点,请参阅使用 Prometheus API 查看指标。如需查看将 Prometheus 配置为抓取端口 9187 的示例,请参阅选择并安装监控工具。

可选步骤

如需启用其他 Web 界面功能,请执行以下操作:

  • Query Insights 设置

    如需使用 Query Insights 功能,请启用 pg_stat_statements 扩展程序。 在 psql 会话中,运行以下命令来配置库:

    ALTER SYSTEM SET shared_preload_libraries=google_columnar_engine,google_job_scheduler,google_storage,google_db_advisor,pg_stat_statements;
    ALTER SYSTEM SET pg_stat_statements.max = 10000;
    ALTER SYSTEM SET pg_stat_statements.track_utility = on;
    ALTER SYSTEM SET track_io_timing = on;
    

    然后,在每个数据库中分别执行以下命令以创建扩展程序:

    CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
    

    重启数据库,使这些更改生效。如果您打算启用列式引擎,请等到该设置完成后再重启。

  • 列式引擎设置

    如需在 Web 界面中访问列式引擎数据,请按照列式引擎概览中的说明配置引擎。

  • AlloyDB AI 设置

    如需在 Web 界面中使用 AlloyDB AI 功能,请授予以下权限:

    • 如需填充向量索引,请向 alloydbui 用户授予对 pg_stat_ann_indexes 的 SELECT 权限。
    • 如需显示向量列,请向 alloydbui 用户授予对表的 SELECT 权限。
如需了解详情,请参阅使用 AlloyDB AI 构建生成式 AI 应用。

安装 Web 界面

您可以在任何节点上安装和运行 Web 界面;Web 界面不需要专用节点。完整安装需要大约 250 MB 的磁盘可用空间。获取部署所需的映像并下载 AlloyDB Omni 后,您就可以安装并运行 Web 界面了。

使用 Kubernetes 清单安装 Web 界面

  1. 如需在 Pod 重启后保留连接详情,请创建 PersistentVolumeClaim (PVC) 清单并将其应用于集群:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: alloydb-omni-ui-pvc
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 256Mi
    
  2. 如需将网页界面部署为 Pod,请应用以下 Kubernetes 清单。

    ---
    # This is a secret to protect web UI data on disk.
    # It is not used to connect to the DB.
    apiVersion: v1
    kind: Secret
    metadata:
      name: alloydb-omni-ui-secret
    type: Opaque
    data:
      ALLOYDB_OMNI_UI_KEYSTORE: BASE64-ENCODED-PASSWORD
    ---
    apiVersion: v1
    kind: Pod
    metadata:
      name: alloydb-omni-ui-pod
      labels:
        app: alloydb-omni-ui
    spec:
      containers:
      - name: alloydb-omni-ui
        image: ALLOYDB_OMNI_UI_IMAGE_TAG
    
        # --- Container Port ---
        ports:
        - containerPort: 9080
    
        # --- Environment Variables ---
        env:
        - name: ALLOYDB_OMNI_UI_KEYSTORE
          valueFrom:
            secretKeyRef:
              name: alloydb-omni-ui-secret
              key: ALLOYDB_OMNI_UI_KEYSTORE
    
        # --- Resources ---
        resources:
          requests:
            memory: "256Mi"
            cpu: "500m"
          limits:
            memory: "512Mi"
            cpu: "1"
    
        # --- Optional Configurations ---
        # --- Volume Mounts ---
        volumeMounts:
        - name: ui-config-storage
          mountPath: /root/.config/alloydb-omni-ui
    
      # --- Optional Volumes Configuration ---
      volumes:
      - name: ui-config-storage
        persistentVolumeClaim:
          claimName: alloydb-omni-ui-pvc
    

启动 Web 界面

Web 界面使用 Java 密钥库来保护用于加密连接数据的 256 位 AES 密钥。启动 Web 界面时,请指定包含密码的环境变量。

您可以通过访问作为 Pod 部署的 Web 界面来启动 Web 界面,也可以使用端口转发将外部 Web 界面实例连接到 Kubernetes 集群。

访问部署为 Pod 的 Web 界面

如果您使用清单将 Web 界面部署为 Kubernetes Pod,请启用端口转发,以便在本地访问 Web 界面:

kubectl port-forward pod/alloydb-omni-ui-pod 9080:9080

为外部 Web 界面实例转发集群端口

如果您在 Kubernetes 集群外部运行 Web 界面(例如,使用容器或 RPM),请启用端口转发,以便将流量转发到运行数据库和 Prometheus 的 Pod:

kubectl port-forward --address 0.0.0.0 pod/DB_POD 5432:5432
kubectl port-forward --address 0.0.0.0 pod/PROMETHEUS_POD 9090:9090

进行以下替换:

  • DB_POD:数据库 Pod 的名称。
  • PROMETHEUS_POD:Prometheus pod 的名称。

打开 Web 界面

如需查看 Web 界面,请在浏览器中打开 http://HOST:9080。

将 HOST 替换为安装了 Web 界面的节点的主机名或 IP 地址。

  • 如果您使用可选的 ALLOYDB_OMNI_BASE_PATH 环境变量配置了自定义基本路径(例如,在现有反向代理后面托管时),则必须将该路径附加到网址:http://HOST:9080/BASE_PATH。
  • 您可以配置不带前导斜杠的基本路径,例如 ALLOYDB_OMNI_BASE_PATH=PATH。以下所有选项都是有效的替代方案:

    • /test/
    • test/
    • test
    • /test

限制

Web 界面具有以下限制:

  • 连接到 AlloyDB Omni 独立容器部署时,概览图表和系统数据分析不可用,因为独立容器部署不提供容器化监控代理。所有其他非图表功能和指标仍可正常使用。

  • 如需查看给定表的列式引擎数据,alloydbui 用户需要对该表至少拥有一项权限,例如 SELECT。

  • 如需查看向量索引数据,alloydbui 用户需要对 pg_stat_ann_indexes 拥有 SELECT 权限。

  • 如需查看给定表的向量列数据,alloydbui 用户需要对该表拥有 SELECT 权限。

最佳实践和注意事项

在安装和配置 Web 界面时,请遵循以下最佳实践和注意事项:

  • 密钥库密码保护:Web 界面会生成 Java 密钥库,以保护 256 位 AES 数据库加密密钥。为 ALLOYDB_OMNI_UI_KEYSTORE 使用安全系数高的口令。如果您转移配置文件并使用不匹配的密钥库密码进行连接,则会发生解密错误。
  • Prometheus 指标抓取:将抓取工具配置为以标准时间间隔(15 秒到 30 秒)轮询目标实例,以便在不使数据库节点过载的情况下查询统计信息。

    后续步骤