次の手順に従って、vSphere 8.x 用の TKr を実行している TKG サービス クラスタに Alertmanager を使用する Prometheus をインストールします。

前提条件

次の前提条件を満たす必要があります。

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 用に生成されます。オプションで、指定した証明書をオーバーライドで使用することもできます。
    ingress.tlsCertificate.tls.key 自己署名 TLS プライベート キーが Ingress 用に生成されます。オプションで、指定した証明書をオーバーライドで使用することもできます。
    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 操作で「Failed to get final advertise address: No private IP address found, and explicit IP not provided」というエラーが返された場合は、パッケージ オーバーレイを適用して 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. Envoy を使用する Contour ロード バランサのパブリック(外部)IP アドレスを取得します。

    Envoy を使用する Contour のインストールを参照してください。

  3. 使用した Prometheus の FQDN(デフォルトは prometheus.system.tanzu)を Envoy ロード バランサの IP アドレスにマッピングする DNS レコードを作成します。
  4. ブラウザを使用して Prometheus の FQDN に移動して、Prometheus ダッシュボードにアクセスします。