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. カスタム値ファイルを準備する
-
kube-prometheus-stack
のサンプル ファイル scalar-prometheus-custom-values.yaml を保存します。 -
次のように
scalar-prometheus-custom-values.yaml
にカスタム値を追加します。- 設定
prometheus.service.type
をLoadBalancer
に設定します。alertmanager.service.type
をLoadBalancer
に設定します。grafana.service.type
をLoadBalancer
に設定します。grafana.service.port
を3000
に設定します。
- 例
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
およびruleSelectorNilUsesHelmValues
をfalse
(デフォルトではtrue
) に設定します。
- Prometheus Operator が Scalar 製品の
-
Scalar Manager を使用する場合は、Scalar Manager が CPU およびメモリ リソースを収集できるように次の構成を設定する必要があります。
kubeStateMetrics.enabled
、nodeExporter.enabled
、およびkubelet.enabled
をtrue
に設定します。
-
Scalar Manager を使用する場合は、Scalar Manager が Grafana を組み込みきるように次の構成を設定する必要があります。
grafana.ini.security.allow_embedding
およびgrafana.ini.auth.anonymous.enabled
をtrue
に設定します。grafana.ini.auth.anonymous.org_name
を使用中の組織に設定します。Scalar のサンプルを使う場合では、Main Org.
に設定します。grafana.ini.auth.anonymous.org_role
をEditor
に設定します。
-
- 設定
ステップ 3. kube-prometheus-stack
をデプロイする
-
prometheus-community
helm リポジトリを追加します。helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
-
Kubernetes 上に名前空間
monitoring
を作成します。kubectl create namespace monitoring
-
kube-prometheus-stack
をデプロイします。helm install scalar-monitoring prometheus-community/kube-prometheus-stack -n monitoring -f scalar-prometheus-custom-values.yaml
ステップ 4. Helm Chart を使用して Scalar 製品をデプロイ (またはアップグレード)
- 注記:
- 最低限の手順を説明します。 ScalarDB および ScalarDL のデプロイメントについて詳しく知りたい場合は、以下のドキュメントを参照してください。
-
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
- ScalarDB (scalardb-custom-values.yaml)
- 構成
-
上記のカスタム値ファイルを含む 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
- ScalarDB
- 例
ステップ 5. ダッシュボードにアクセスする
minikube を使用する場合
-
各サービス リソースを
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 -
各ダッシュボードにアクセスします。
- 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
- ユーザー
- Grafana のユーザーとパスワードは以下で確認できます。
- 注記:
- Prometheus
minikube 以外の Kubernetes を使用する場合
minikube 以外の Kubernetes クラスターを使用する場合は、各 Kubernetes クラスターの方式に従って LoadBalancer サービスにアクセスする必要があります。 たとえば、クラウド サービスによって提供されるロード バランサーや kubectl port-forward
コマンドを使用します。
ステップ 6. すべてのリソースを削除する
Kubernetes クラスターでのモニタリング テストが完了したら、すべてのリソースを削除します。
-
minikube tunnel
コマンドを終了します。 (minikubeを使用する場合)Ctrl + C
-
kube-prometheus-stack
をアンインストールします。helm uninstall scalar-monitoring -n monitoring
-
minikube を削除します。 (オプション / minikube を使用する場合)
minikube delete --all
- 注記:
- ScalarDB または ScalarDL をデプロイする場合は、minikube を削除する前にそれらを削除する必要があります。
- 注記: