このページでは、 システム モニタリング インスタンス。 ダッシュボードを使用して、ネットワーク モニタリングやサーバー モニタリングなど、プロジェクトでモニタリング オペレーションを実行します。
オブザーバビリティ プラットフォームが GDC プロジェクトにデプロイされたワークロードによって生成された指標を収集すると、構成によって関連する指標ラベルが保存され、すべてのデータソースからファイルが集計されます。次に、カスタマイズされたダッシュボードを作成して、モニタリング インスタンスのユーザー インターフェース(UI)から特定の指標をクエリして可視化できます。
ダッシュボードは、データソースで構成された Prometheus 指標とやり取りする 1 つ以上のカスタマイズ可能なパネルの動的な視覚的配置です。クエリを作成することで、これらの各パネルを使用して、GDC コンポーネントの特定の指標を可視化して公開できます。
オブザーバビリティ プラットフォームは、指標の視覚的な配置のカスタマイズを構成できる API を公開します。たとえば、受け入れしきい値を設定し、適切なシグナルを表示し、グラフにラベルを付け、一貫した時間分解能を選択します。
使用可能なダッシュボード
環境が稼働している場合、モニタリング インスタンスのホームページにいくつかの指標ダッシュボードがすぐに表示されます。たとえば、スイッチのステータスとシステム コンポーネントの健全性を確認できます。
スイッチとクラスタのダッシュボードを使用して、クラスタとノードの指標をモニタリングします。ロギングとモニタリングのダッシュボードにアクセスして、管理クラスタをモニタリングします。
最も関連性の高いプラットフォーム管理者(PA)の指標は次のとおりです。
- Kubernetes / API サーバー: 組織内のクラスタごとの API サーバーの健全性を示します。
- Kubernetes / コンピューティング リソース / マルチクラスタ: 組織全体のリソース使用率が表示されます。
- Kubernetes / コンピューティング リソース / クラスタ: クラスタごとのリソース使用率が表示されます。
- Kubernetes / Persistent Volumes: 各クラスタの Kubernetes 永続ボリュームの使用率が表示されます。
- ノードのステータス: 各クラスタの各ノードのリソース使用量が表示されます。
- Pod のステータス: 各クラスタの各 Pod のリソース消費量が表示されます。
次の図は、Kubernetes / コンピューティング リソース / マルチクラスタ ダッシュボードの例を示しています。
プロジェクトのモニタリング インスタンスにアクセスする
モニタリング ダッシュボードにアクセスするには、承認を取得する必要があります。プロジェクトのモニタリング インスタンスにログインして指標を表示するために必要な権限を取得するには、組織 IAM 管理者に組織 Grafana 閲覧者(organization-grafana-viewer
)ロールの付与を依頼してください。組織の IAM 管理者は、ロール バインディングを作成してアクセス権を付与できます。
kubectl --kubeconfig ADMIN_KUBECONFIG create rolebinding pa-grafana-viewer-binding -n platform-obs --user=USER_NAME --clusterrole=organization-grafana-viewer
次のように置き換えます。
- ADMIN_KUBECONFIG: 管理クラスタの kubeconfig ファイルのパス。
- USER_NAME: ロール バインディングが必要なユーザーのアカウント名。
ロールの割り当ての詳細については、次のリソースをご覧ください。
- 組織の Grafana 閲覧者ロールの説明については、事前定義ロールの説明をご覧ください。
- UI でロールを追加および削除する手順については、リソースへのアクセス権を付与するをご覧ください。
Grafana ダッシュボードを作成する
このセクションでは、Grafana インスタンスでダッシュボードを作成して管理するプロセスについて説明します。
次の手順に沿って、GDC でダッシュボードを作成します。
- 始める前にセクションの前提条件を完了します。
- プロジェクトの Grafana エンドポイントを開きます。
- ダッシュボードの
ConfigMap
オブジェクトを作成します。 Dashboard
カスタム リソース(CR)を作成します。
始める前に
ダッシュボードを作成する前に、モニタリング インスタンスへのアクセス権を取得する必要があります。詳細については、ダッシュボードへのアクセス権を取得するをご覧ください。
- ダッシュボードを作成する前に、GDC プロジェクトから指標を収集します。
- ログイン、ダッシュボードの作成、指標の可視化を行うには、プロジェクト IAM 管理者に Project Grafana 閲覧者(
project-grafana-viewer
)ロールの付与を依頼してください。 kubeconfig ファイルのパスを環境変数として設定します。
export KUBECONFIG=KUBECONFIG_FILE
KUBECONFIG_FILE は、ダッシュボードを作成する管理クラスタの kubeconfig ファイルのパスに置き換えます。
モニタリング エンドポイント
次の URL を開いて、プロジェクトのエンドポイントにアクセスします。
https://GDC_URL/PROJECT_NAMESPACE/grafana
次のように置き換えます。
- GDC_URL: GDC 内の組織の URL。
- PROJECT_NAMESPACE: プロジェクトの Namespace。
ダッシュボードの ConfigMap
オブジェクトを作成する
次の手順で、ダッシュボードの JSON モデルを含む ConfigMap
オブジェクトを作成します。
- プロジェクトのエンドポイントに移動します。
- ナビゲーション メニューで [追加] ボタンをクリックします。
- 表示されたプルダウン メニューで、[ダッシュボード] をクリックします。インスタンスによって空のダッシュボードが作成されます。
空のダッシュボードに、必要なパネルをすべて追加します。詳細をカスタマイズしたり、パネルを編集してクエリを指定したり、その他の更新を行ったりできます。
メニューバーの
[ダッシュボードの設定] ボタンをクリックして、[設定] ページを開きます。ナビゲーション メニューで [JSON モデル] オプションをクリックします。
ダッシュボードの JSON モデルをコピーし、書式なしテキスト ファイルに貼り付けて、いつでも使用できるようにします。
最上位の
id
フィールドとuid
フィールドを、JSON モデルのnull
値に置き換えます。コマンドラインから
ConfigMap
オブジェクトを作成します。ConfigMap
オブジェクトのdata
セクションに、以前に.json
ファイル内にコピーした JSON モデルを貼り付けます。cat <<EOF | kubectl --kubeconfig ${KUBECONFIG} apply -f - apiVersion: v1 kind: ConfigMap metadata: namespace: PROJECT_NAMESPACE name: DASHBOARD_CONFIGMAP_NAME data: JSON_FILE_NAME.json: | { <JSON model of the dashboard> } EOF
次のように置き換えます。
- PROJECT_NAMESPACE: プロジェクトの Namespace。
- DASHBOARD_CONFIGMAP_NAME:
ConfigMap
オブジェクトに付ける名前。 - JSON_FILE_NAME: ダッシュボードの JSON モデルを貼り付けるファイルに付ける名前。
このオブジェクトの例については、ダッシュボードの
ConfigMap
の例をご覧ください。ダッシュボードの
ConfigMap
オブジェクトを管理クラスタにデプロイします。
ダッシュボードの ConfigMap
の例
次の YAML ファイルは、platform-obs
名前空間の指標のダッシュボードの ConfigMap
オブジェクトの例を示しています。
apiVersion: v1
kind: ConfigMap
metadata:
namespace: platform-obs
name: my-project-dashboard-configmap
data:
my-project-dashboard.json: |
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"graphTooltip": 0,
"id": null,
"links": [],
"panels": [],
"schemaVersion": 27,
"style": "dark",
"tags": [],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Sample dashboard",
"uid": null,
"version": 0
}
Dashboard
カスタム リソースを作成する
次の手順に沿って、Dashboard
カスタム リソース(CR)を作成し、指定されたプロジェクトでダッシュボードを有効にします。
コマンドラインから
Dashboard
CR を作成し、ダッシュボードのConfigMap
オブジェクトに付けた名前でファイルを構成します。cat <<EOF | kubectl --kubeconfig ${KUBECONFIG} apply -f - apiVersion: observability.gdc.goog/v1alpha1 kind: Dashboard metadata: namespace: PROJECT_NAMESPACE name: CUSTOM_RESOURCE_NAME spec: configMapRef: name: DASHBOARD_CONFIGMAP_NAME namespace: PROJECT_NAMESPACE key: JSON_FILE_NAME.json foldername: Default EOF
次のように置き換えます。
- PROJECT_NAMESPACE: プロジェクトの Namespace。
- CUSTOM_RESOURCE_NAME:
Dashboard
カスタム リソースに付ける名前。 - DASHBOARD_CONFIGMAP_NAME: ダッシュボードの
ConfigMap
オブジェクトに付けた名前。 - JSON_FILE_NAME:
ConfigMap
オブジェクト内のダッシュボードの JSON モデルを含むファイルに付けた名前。
Dashboard
CR をプロジェクト Namespace にデプロイします。この操作により、事前定義されたダッシュボードをプロジェクトのモニタリング インスタンスにインポートするように Observability サービスが構成されます。
ダッシュボードは、指標やログと同様に、他のプロジェクトから分離されています。したがって、複数のプロジェクトで同じダッシュボードを使用する場合は、各プロジェクトに Dashboard
CR をデプロイします。また、ダッシュボードがアクセスするロギング データとモニタリング データは、これらのすべてのプロジェクトで使用可能である必要があります。
ダッシュボードを処理するプロセスは、Dashboard
CR と ConfigMap
オブジェクトの両方の変更を検出します。どちらかを変更すると、プログラムはモニタリング インスタンスに変更を反映します。ダッシュボードを更新または削除するには、CR で変更を適用して、再度デプロイする必要があります。モニタリング UI で直接行った更新は保存できません。
フォルダにダッシュボードを作成する、またはフォルダを変更するには、Dashboard
CR の spec
セクションで foldername
の値を変更します。それ以外の場合は、Default
のままにします。フォルダが存在しない場合は、プロセスによって自動的に作成されます。