請按照下列指示,在執行適用於 vSphere 8.x 的 TKr 的 TKG 服務 叢集上安裝 Prometheus with Alertmanager。

必要條件

請遵循以下必要條件。

建立 Prometheus 資料值

準備透過建立資料值檔案來安裝 Prometheus。

  1. 取得存放庫的最新 Prometheus 套件版本。
    tanzu package available get prometheus.tanzu.vmware.com -n tkg-system

    或者,使用 kubectl。

    kubectl -n tkg-system get packages | grep prometheus
    備註: 通常,應使用最新版本,除非需求不同。
  2. 產生 prometheus-data-values.yaml 檔案。
    tanzu package available get prometheus.tanzu.vmware.com/2.45.0+vmware.1-tkg.2 --default-values-file-output prometheus-data-values.yaml
    其中:
    • 2.45.0+vmware.1-tkg.2 是目標套件版本
    • prometheus-data-values.yaml 是要產生的資料值檔案的名稱和路徑
  3. 編輯 prometheus-data-values.yaml 檔案,並設定存取 Prometheus 儀表板所需的以下值。如需範例資料值檔案和組態參數的完整清單,請參閱 Prometheus 套件參考
    參數 說明
    ingress.tlsCertificate.tls.crt 針對入口產生自我簽署的 TLS 憑證。(可選) 可覆寫此憑證並提供您自己的憑證。
    ingress.tlsCertificate.tls.key 針對入口產生自我簽署的 TLS 私密金鑰。(可選) 可覆寫此憑證並提供您自己的憑證。
    ingress.enabled 將值設定為 true (預設值為 false)。
    ingress.virtual_host_fqdn 將值設定為 prometheus.<your.domain> (預設值為 prometheus.system.tanzu)。
    alertmanager.pvc.storageClassName 輸入vSphere儲存區原則的名稱。
    prometheus.pvc.storageClassName 輸入vSphere儲存區原則的名稱。

安裝 Prometheus

完成下列步驟以安裝 Prometheus 套件。
  1. 建立命名空間。
    kubectl create ns tanzu-system-monitoring
  2. 安裝 Prometheus。
    tanzu package install prometheus -p prometheus.tanzu.vmware.com -v 2.45.0+vmware.1-tkg.2 --values-file prometheus-data-values.yaml -n tanzu-system-monitoring
  3. 確認 Prometheus 安裝。
    tanzu package installed list -n tanzu-system-monitoring
    tanzu package installed get prometheus -n tanzu-system-monitoring
  4. 確認 Prometheus 和 Altermanager 物件。
    kubectl -n tanzu-system-monitoring get all
    kubectl -n tanzu-system-monitoring get pvc
    
    NAME                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    alertmanager        Bound    pvc-a53f7091-9823-4b70-a9b4-c3d7a1e27a4b   2Gi        RWO            k8s-policy     2m30s
    prometheus-server   Bound    pvc-41745d1d-9401-41d7-b44d-ba430ecc5cda   20Gi       RWO            k8s-policy     2m30s

對 Prometheus 安裝進行疑難排解

如果 tanzu package install prometheus 作業傳回錯誤「無法取得最終通告位址: 找不到私人 IP 位址,並且未提供顯式 IP 位址」,請套用套件覆疊以重新設定 alertmanager 元件。
  1. 建立檔案 overlay-alertmanager.yaml
    ---
    #@ load("@ytt:overlay", "overlay")
    
    #@overlay/match by=overlay.and_op(overlay.subset({"kind": "Deployment"}), overlay.subset({"metadata": {"name": "alertmanager"}}))
    ---
    spec:
      template:
        spec:
          containers:
            #@overlay/match by="name",expects="0+"
            - name: alertmanager
              args:
                - --cluster.listen-address=
  2. 使用 Kubectl 從檔案 overlay-alertmanager.yaml 建立密碼。
    kubectl create secret generic alertmanager-overlay -n tkg-system -o yaml --dry-run=client --from-file=overlay-alertmanager.yaml | kubectl apply -f -
  3. 使用 Kubectl 為 Prometheus 套件加上覆疊密碼的註解。
    kubectl annotate PackageInstall prometheus -n tkg-system ext.packaging.carvel.dev/ytt-paths-from-secret-name.1=alertmanager-overlay
  4. 再次執行安裝命令。
    tanzu package install prometheus -p prometheus.tanzu.vmware.com -v 2.37.0+vmware.3-tkg.1 --values-file prometheus-data-values.yaml -n tanzu-system-monitoring

存取 Prometheus 儀表板

安裝 Prometheus 後,請完成下列步驟以存取 Prometheus 儀表板。
  1. 確保 prometheus-data-values.yaml 檔案的 ingress 部分已填入所有必填欄位。
    ingress:
      enabled: true
      virtual_host_fqdn: "prometheus.system.tanzu"
      prometheus_prefix: "/"
      alertmanager_prefix: "/alertmanager/"
      prometheusServicePort: 80
      alertmanagerServicePort: 80
      #! [Optional] The certificate for the ingress if you want to use your own TLS certificate.
      #! We will issue the certificate by cert-manager when it's empty.
      tlsCertificate:
        #! [Required] the certificate
        tls.crt:
        #! [Required] the private key
        tls.key:
        #! [Optional] the CA certificate
        ca.crt:
  2. 取得 Contour with Envoy 負載平衡器的公用 (外部) IP 位址。

    請參閱安裝 Contour with Envoy

  3. 建立 DNS 記錄,以將使用的 Prometheus FQDN (預設為 prometheus.system.tanzu) 對應到 Envoy 負載平衡器的 IP 位址。
  4. 使用瀏覽器導覽至 Prometheus FQDN,以存取 Prometheus 儀表板。