メインコンテンツまでスキップ
バージョン: 3.9

Helm Charts の入門 (Prometheus Operator を使用したモニタリング)

注記

このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。

このドキュメントでは、Prometheus Operator (kube-prometheus-stack) を使用して Kubernetes 上で Scalar 製品の監視を開始する方法について説明します。 ここでは、テスト用の Mac または Linux 環境がすでにあることを前提としています。 このドキュメントでは Minikube を使用しますが、これから説明する手順はどの Kubernetes クラスターでも機能するはずです。

私たちが作るもの

次のように、次のコンポーネントを Kubernetes クラスターにデプロイします。

+--------------------------------------------------------------------------------------------------+
| +------------------------------------------------------+ +-----------------+ |
| | kube-prometheus-stack | | Scalar 製品 | |
| | | | | |
| | +--------------+ +--------------+ +--------------+ | -----(監視)----> | +-----------+ | |
| | | Prometheus | | Alertmanager | | Grafana | | | | ScalarDB | | |
| | +-------+------+ +------+-------+ +------+-------+ | | +-----------+ | |
| | | | | | | +-----------+ | |
| | +----------------+-----------------+ | | | ScalarDL | | |
| | | | | +-----------+ | |
| +--------------------------+---------------------------+ +-----------------+ |
| | |
| | Kubernetes |
+----------------------------+---------------------------------------------------------------------+
| <- localhost (127.0.0.1) に公開するか、ロードバランサーなどを使用してアクセスします
|
(HTTP 経由でダッシュボードにアクセスする)
|
+----+----+
| ブラウザ |
+---------+

ステップ 1. Kubernetes クラスターを開始する

まず、Kubernetes クラスターを準備する必要があります。 minikube 環境を使用する場合は、Scalar Helm Charts の入門 を参照してください。 すでに Kubernetes クラスターを開始している場合は、この手順をスキップできます。

ステップ 2. カスタム値ファイルを準備する

  1. kube-prometheus-stack のサンプル ファイル scalar-prometheus-custom-values.yaml を保存します。

  2. 次のように scalar-prometheus-custom-values.yaml にカスタム値を追加します。

    • 設定
      • prometheus.service.typeLoadBalancer に設定します。
      • alertmanager.service.typeLoadBalancer に設定します。
      • grafana.service.typeLoadBalancer に設定します。
      • grafana.service.port3000 に設定します。
    • alertmanager:

      service:
      type: LoadBalancer

      ...

      grafana:

      service:
      type: LoadBalancer
      port: 3000

      ...

      prometheus:

      service:
      type: LoadBalancer

      ...
    • 注記:
      • Helm Chart を使用して Prometheus Operator デプロイメントをカスタマイズする場合は、Scalar 製品を監視するために次の構成を設定する必要があります。

        • Prometheus Operator が Scalar 製品の ServiceMonitor および PrometheusRule を検出できるように、serviceMonitorSelectorNilUsesHelmValues および ruleSelectorNilUsesHelmValuesfalse (デフォルトでは true) に設定します。
      • Scalar Manager を使用する場合は、Scalar Manager が CPU およびメモリ リソースを収集できるように次の構成を設定する必要があります。

        • kubeStateMetrics.enablednodeExporter.enabled、および kubelet.enabledtrue に設定します。
      • Scalar Manager を使用する場合は、Scalar Manager が Grafana を組み込みきるように次の構成を設定する必要があります。

        • grafana.ini.security.allow_embedding および grafana.ini.auth.anonymous.enabledtrue に設定します。
        • grafana.ini.auth.anonymous.org_name を使用中の組織に設定します。Scalar のサンプルを使う場合では、Main Org. に設定します。
        • grafana.ini.auth.anonymous.org_roleEditor に設定します。

ステップ 3. kube-prometheus-stack をデプロイする

  1. prometheus-community helm リポジトリを追加します。

    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
  2. Kubernetes 上に名前空間 monitoring を作成します。

    kubectl create namespace monitoring
  3. kube-prometheus-stack をデプロイします。

    helm install scalar-monitoring prometheus-community/kube-prometheus-stack -n monitoring -f scalar-prometheus-custom-values.yaml

ステップ 4. Helm Chart を使用して Scalar 製品をデプロイ (またはアップグレード)

  1. Scalar 製品の Prometheus 監視を有効にするには、カスタム値ファイルで次の構成に true を設定します。

    • 構成
      • *.prometheusRule.enabled
      • *.grafanaDashboard.enabled
      • *.serviceMonitor.enabled
    • サンプル設定ファイル
      • ScalarDB (scalardb-custom-values.yaml)
        envoy:
        prometheusRule:
        enabled: true
        grafanaDashboard:
        enabled: true
        serviceMonitor:
        enabled: true

        scalardb:
        prometheusRule:
        enabled: true
        grafanaDashboard:
        enabled: true
        serviceMonitor:
        enabled: true
      • ScalarDL Ledger (scalardl-ledger-custom-values.yaml)
        envoy:
        prometheusRule:
        enabled: true
        grafanaDashboard:
        enabled: true
        serviceMonitor:
        enabled: true

        ledger:
        prometheusRule:
        enabled: true
        grafanaDashboard:
        enabled: true
        serviceMonitor:
        enabled: true
      • ScalarDL Auditor (scalardl-auditor-custom-values.yaml)
        envoy:
        prometheusRule:
        enabled: true
        grafanaDashboard:
        enabled: true
        serviceMonitor:
        enabled: true

        auditor:
        prometheusRule:
        enabled: true
        grafanaDashboard:
        enabled: true
        serviceMonitor:
        enabled: true
  2. 上記のカスタム値ファイルを含む Helm Charts を使用して、Scalar 製品をデプロイ (またはアップグレード) します。

      • ScalarDB
        helm install scalardb scalar-labs/scalardb -f ./scalardb-custom-values.yaml
        helm upgrade scalardb scalar-labs/scalardb -f ./scalardb-custom-values.yaml
      • ScalarDL Ledger
        helm install scalardl-ledger scalar-labs/scalardl -f ./scalardl-ledger-custom-values.yaml
        helm upgrade scalardl-ledger scalar-labs/scalardl -f ./scalardl-ledger-custom-values.yaml
      • ScalarDL Auditor
        helm install scalardl-auditor scalar-labs/scalardl-audit -f ./scalardl-auditor-custom-values.yaml
        helm upgrade scalardl-auditor scalar-labs/scalardl-audit -f ./scalardl-auditor-custom-values.yaml

ステップ 5. ダッシュボードにアクセスする

minikube を使用する場合

  1. 各サービス リソースを localhost (127.0.0.1) として公開するには、別のターミナルを開き、minikube tunnel コマンドを実行します。

    minikube tunnel

    minikube tunnel コマンドを実行すると、各サービスリソースの EXTERNAL-IP が 127.0.0.1 として表示されます。

    kubectl get svc -n monitoring scalar-monitoring-kube-pro-prometheus scalar-monitoring-kube-pro-alertmanager scalar-monitoring-grafana

    【コマンド実行結果】

    NAME                                      TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
    scalar-monitoring-kube-pro-prometheus LoadBalancer 10.98.11.12 127.0.0.1 9090:30550/TCP 26m
    scalar-monitoring-kube-pro-alertmanager LoadBalancer 10.98.151.66 127.0.0.1 9093:31684/TCP 26m
    scalar-monitoring-grafana LoadBalancer 10.103.19.4 127.0.0.1 3000:31948/TCP 26m
  2. 各ダッシュボードにアクセスします。

    • Prometheus
      http://localhost:9090/
    • Alertmanager
      http://localhost:9093/
    • Grafana
      http://localhost:3000/
      • 注記:
        • Grafana のユーザーとパスワードは以下で確認できます。
          • ユーザー
            kubectl get secrets scalar-monitoring-grafana -n monitoring -o jsonpath='{.data.admin-user}' | base64 -d
          • パスワード
            kubectl get secrets scalar-monitoring-grafana -n monitoring -o jsonpath='{.data.admin-password}' | base64 -d

minikube 以外の Kubernetes を使用する場合

minikube 以外の Kubernetes クラスターを使用する場合は、各 Kubernetes クラスターの方式に従って LoadBalancer サービスにアクセスする必要があります。 たとえば、クラウド サービスによって提供されるロード バランサーや kubectl port-forward コマンドを使用します。

ステップ 6. すべてのリソースを削除する

Kubernetes クラスターでのモニタリング テストが完了したら、すべてのリソースを削除します。

  1. minikube tunnel コマンドを終了します。 (minikubeを使用する場合)

    Ctrl + C
  2. kube-prometheus-stack をアンインストールします。

    helm uninstall scalar-monitoring -n monitoring
  3. minikube を削除します。 (オプション / minikube を使用する場合)

    minikube delete --all
    • 注記:
      • ScalarDB または ScalarDL をデプロイする場合は、minikube を削除する前にそれらを削除する必要があります。