リファレンスアーキテクチャに関する注意: このセットアップではサードパーティ製コンポーネント(Prometheus、Grafana など)を使用しています。バージョン、デフォルト値、コマンド構文は変更される可能性があります。SambaStack に固有でない問題については、該当コンポーネントを所有するベンダーまたはプロジェクトにお問い合わせください。
前提条件
作業を始める前に、以下の要件を満たしていることを確認してください。- kubectl – 対象の Kubernetes クラスターへのアクセスが設定済みであること
- Helm(最新バージョン) –
helm versionで確認してください - jq – 動作確認時の JSON 出力の解析に使用
- monitoring 名前空間 – 存在しない場合は、ステップ 1 で作成します
- ストレージクラス – Prometheus の永続ストレージ用の有効なストレージクラス
任意の前提条件
- OpenSearch – Grafana でログを可視化する場合にのみ必要です。OpenSearch 連携を含めてデプロイする場合は、先に OpenSearch のデプロイ を完了してください。
opensearch-initial-admin-passwordSecret が存在している必要があります。
デプロイ順序: フルモニタリングスタックを使用する場合は、OpenSearch → Fluent Bit → Prometheus/Grafana の順にデプロイしてください。メトリクスのみが必要な場合(ログの可視化が不要な場合)は、Prometheus/Grafana を単独でデプロイできます。
リソース要件
以下は、モニタリングスタックの最小リソース推奨値です。大規模なデプロイメント(100 ノード以上、または高カーディナリティのメトリクス)では、Prometheus のメモリを 4〜8Gi、ストレージを 50〜100Gi に増やしてください。合わせて、values ファイルの
retentionSize も調整してください。アーキテクチャ概要
データフロー
メトリクスの経路:SambaStack サービス / Node Exporter → /metrics → Prometheus → Grafana ダッシュボードログの経路(OpenSearch が必要):
Pod / システムログ → Fluent Bit → OpenSearch → Grafana(ログパネル)
デプロイ手順
ステップ 1: monitoring 名前空間の作成
OpenSearch のデプロイによって名前空間がすでに存在する場合は、このステップをスキップしてください。~/.sambastack-observability/monitoring-namespace.yaml に名前空間の設定ファイルを作成します。
ステップ 2: Helm リポジトリの追加
ステップ 3: Grafana 管理者認証情報の Secret の作成
base64 エンコードしたユーザー名とパスワードを含む Secret を、~/.sambastack-observability/monitoring/grafana-initial-admin-credentials-secret.yaml に作成します。
ステップ 4: values ファイルの作成
~/.sambastack-observability/monitoring/prometheus-grafana-values.yaml を作成します。OpenSearch と連携するかどうかに応じて、適切な設定を選択してください。
- OpenSearch 連携あり
- OpenSearch なし(メトリクスのみ)
OpenSearch をデプロイ済みで、Grafana でログを可視化する場合は、こちらの設定を使用します。
values ファイル全文を表示(OpenSearch あり)
values ファイル全文を表示(OpenSearch あり)
<your-storage-class> は、クラスターのストレージクラスに置き換えてください。利用可能なストレージクラスの確認: kubectl get storageclassコンポーネント設定の概要
ステップ 5: kube-prometheus-stack のインストール
Helm のインストールコマンドを実行します。ステップ 6: 推論ルーター用 ServiceMonitor の作成
Prometheus は、ServiceMonitor を使用して SambaStack の推論ルーターを検出し、メトリクスをスクレイプします。~/.sambastack-observability/monitoring/inference-router-sm.yaml に以下のファイルを作成します。
動作確認
Pod ステータスの確認
Prometheus の Pod を確認します。UI へのアクセス
- Prometheus
- Grafana
Grafana 認証情報の取得
Prometheus ターゲットの確認
- http://localhost:9090 で Prometheus UI にアクセスします
- Status → Targets に移動します
node-exporterターゲットが UP と表示されることを確認しますinference-router-smターゲットが UP と表示されることを確認します(SambaStack が稼働している場合)
Grafana データソースの確認
- http://localhost:8080 で Grafana にログインします
- Connections → Data sources に移動します
- Prometheus データソースに「Data source is working」と表示されることを確認します
- OpenSearch 連携を使用している場合は、OpenSearch-Logs データソースに「Data source is working」と表示されることを確認します
成功基準
以下の条件を満たしていれば、インストールは完了です。monitoring名前空間で Prometheus の Pod(2 レプリカ)が稼働している- Grafana の Pod が稼働しており、アクセスできる
- すべてのノードで Node Exporter の Pod が稼働している
- Prometheus で Node Exporter のターゲットが UP と表示される
- 設定した管理者認証情報で Grafana にログインできる
- Grafana の Prometheus データソースに「Data source is working」と表示される
- (設定した場合)Grafana の OpenSearch データソースに「Data source is working」と表示される
Node Exporter ダッシュボードのインポート
Node Exporter が公開するノード/ラックレベルのメトリクスを可視化するには、次の手順を実行します。1
Grafana にログイン
動作確認セクションで取得した認証情報を使用します。
2
Import に移動
Dashboards → New → Import に移動します。
3
ダッシュボードのインポート
ダッシュボード ID
1860 を入力し、Load をクリックします。4
データソースの選択
データソースとして Prometheus を選択し、Import をクリックします。
ダッシュボード ID 1860 は、コミュニティ製の「Node Exporter Full」ダッシュボードです。SambaStack デプロイメントにおけるラック単位の可視化に最適です。
設定リファレンス
トラブルシューティング
Prometheus の Pod が Pending のまま進まない
症状: Prometheus の Pod がPending 状態のまま進まない。
原因: PersistentVolumeClaim を満たすことができない。
対処方法:
Grafana で OpenSearch データソースが「Data source is not working」になる
症状: Grafana で OpenSearch データソースのテストが失敗する。 考えられる原因:- OpenSearch が未デプロイ: 先に OpenSearch をデプロイしてください。詳細は ログストレージ - OpenSearch をご参照ください。
-
Secret の欠落: Secret が存在することを確認します。
-
OpenSearch が起動していない: OpenSearch の Pod ステータスを確認します。
ServiceMonitor がターゲットをスクレイプしない
症状: カスタム ServiceMonitor のターゲットが Prometheus に表示されない。 対処方法: ServiceMonitor がmonitoring 名前空間にあり、ラベルが一致していることを確認します。
Node Exporter の Pod が一部のノードで起動しない
症状: Node Exporter の Pod 数がクラスターのノード数より少ない。 原因: ノードに taint が設定されており、スケジューリングが妨げられている可能性があります。 対処方法: Node Exporter の設定に toleration を追加するか、ノードの taint を削除してください。次のステップ
Prometheus と Grafana が稼働したら、次に進みます。- カスタムダッシュボードの作成 – 推論レイテンシ、QPS、アクセラレーター使用率など、SambaStack 固有のメトリクスのダッシュボードを構築します。
- ServiceMonitor の追加 – Prometheus メトリクスを公開する他の SambaStack コンポーネント用に、ServiceMonitor を作成します。
-
アラートの有効化 – 本番の監視用に Alertmanager を設定します。values ファイルで
alertmanager.enabled: trueを設定してください。 -
ログの探索 – OpenSearch と Fluent Bit がデプロイされている場合は、Grafana の Explore 機能で
logs-7dインデックスをクエリできます。
クリーンアップ
クラスターからモニタリングスタックを削除するには、以下を実行します。 Helm リリースをアンインストールします。OpenSearch や Fluent Bit を含むモニタリングスタック全体を削除する場合は、名前空間ごと削除できます:
kubectl delete namespace monitoring。これによりすべてのリソースが削除され、元に戻すことはできません。
