このページでは、Google Distributed Cloud(GDC)エアギャップ アプライアンス プロジェクトのログと指標の可視化に使用される Grafana インスタンス内でダッシュボードを作成して管理するプロセスについて説明します。
ダッシュボードには、システムのパフォーマンスが動的に視覚的に表示されます。これは、カスタマイズ可能な 1 つ以上のパネルで構成され、各パネルは GDC コンポーネントから特定の指標をクエリして表示するように構成されています。これらのパネルでは、次のことができます。
- さまざまなグラフタイプで指標を可視化します。
- 指標値に基づいて通知をトリガーするアラートしきい値を定義します。
- ラベル、単位、期間などの表示プロパティをカスタマイズします。
- 正確な比較を行うために、時間分解能を一定に設定します。
Grafana ダッシュボードを効果的に使用することで、GDC 環境のパフォーマンスと健全性に関する貴重な分析情報を得ることができます。
使用可能なダッシュボード
環境が稼働している場合、モニタリング インスタンスのホームページにいくつかの指標ダッシュボードがすぐに表示されます。たとえば、スイッチのステータスとシステム コンポーネントの健全性を確認できます。
スイッチとクラスタのダッシュボードを使用して、クラスタとノードの指標をモニタリングします。
最も関連性の高いプラットフォーム管理者(PA)の指標は次のとおりです。
- Kubernetes / API サーバー: 組織内のクラスタごとの API サーバーの健全性を示します。
- Kubernetes / コンピューティング リソース / マルチクラスタ: 組織全体のリソース使用率が表示されます。
- Kubernetes / コンピューティング リソース / クラスタ: クラスタごとのリソース使用率が表示されます。
- Kubernetes / Persistent Volumes: 各クラスタの Kubernetes 永続ボリュームの使用率が表示されます。
- ノードのステータス: 各クラスタの各ノードのリソース使用量が表示されます。
- Pod のステータス: 各クラスタの各 Pod のリソース消費量が表示されます。
次の図は、Kubernetes / コンピューティング リソース / マルチクラスタ ダッシュボードの例を示しています。
始める前に
Grafana ダッシュボードにアクセスして表示するために必要な権限を取得するには、組織の IAM 管理者またはプロジェクトの IAM 管理者に、事前定義された Grafana 閲覧者ロールのいずれかを付与するよう依頼してください。
また、ダッシュボードの作成に必要な API オブジェクトを管理するために必要な権限を取得するには、組織の IAM 管理者またはプロジェクトの IAM 管理者に、関連する ConfigMap
ロールと Dashboard
ロールの付与を依頼してください。
必要なアクセスレベルと権限に応じて、組織またはプロジェクトでこれらのリソースの作成者、編集者、閲覧者のロールを取得できます。詳細については、IAM 権限を準備するをご覧ください。
対応するロールを取得したら、ダッシュボードを作成する前に次の操作を行います。
- ワークロードから指標を収集する。
kubeconfig ファイルのパスを環境変数として設定します。
export KUBECONFIG=KUBECONFIG_PATH
KUBECONFIG_PATH
は、ダッシュボードを作成する Management API サーバーの kubeconfig ファイルのパスに置き換えます。
Grafana エンドポイントを特定する
次の URL は、プロジェクトの Grafana インスタンスのエンドポイントです。
https://GDC_URL/PROJECT_NAMESPACE/grafana
次のように置き換えます。
GDC_URL
: GDC 内の組織の URL。PROJECT_NAMESPACE
: プロジェクトの Namespace。
たとえば、org-1
組織の platform-obs
プロジェクトの Grafana エンドポイントは https://org-1/platform-obs/grafana
です。
カスタム ダッシュボードを作成する
Grafana ダッシュボードを作成して設定をカスタマイズする手順は次のとおりです。
- Grafana エンドポイントを開いて、ユーザー インターフェースを表示します。
- ナビゲーション メニューで [追加] をクリックします。
- プルダウン メニューで [ダッシュボード] をクリックします。Grafana によって空のダッシュボードが作成されます。
空のダッシュボードに、必要なパネルをすべて追加します。
各パネルの [データソース] メニューで、パネルに必要なデータソース(指標(
prometheus
)、監査ログ(auditloki
)、運用ログ(oploki
)など)を選択します。マルチゾーン ユニバースの場合、Grafana にはゾーンラベル付きのデータソースがあり、これを使用して複数のゾーンの指標とログを含むダッシュボードの可視化を作成できます。これらのデータソースには
DATA_SOURCE-ZONE_ID
という形式の名前が付けられます。ここで、DATA_SOURCE
には、次のいずれかの値を指定できます。- 指標を表示する Prometheus(
prometheus
またはmetrics
)。 - 監査ログを表示する 監査ログ(
auditloki
)。 - オペレーション ログ(
oploki
): オペレーション ログを表示します。
- 指標を表示する Prometheus(
ZONE_ID
は、ダッシュボードにデータを表示するゾーンの ID です。
また、クロスゾーン リソースの可視化ダッシュボードを作成する場合、データソース名は
--Mixed--
です。このデータソースを使用すると、ゾーンごとに複数のクエリを追加し、単一のダッシュボードでゾーン間のデータ可視化を行うことができます。この機能を使用すると、たとえば、ユニバースの複数のゾーンにわたる単一の指標またはログクエリの動作を比較できます。詳細をカスタマイズし、パネルを編集してクエリを指定したり、その他の更新を行ったりします。
メニューバーで
[ダッシュボードの設定] をクリックして、[設定] ページを開きます。ナビゲーション メニューから [JSON モデル] を選択します。
ダッシュボードの JSON モデルをコピーし、後で使用できるようにプレーン テキスト ファイルに貼り付けます。
ConfigMap
オブジェクトを作成する
次の手順で、ダッシュボードの JSON モデルを含む ConfigMap
オブジェクトを作成します。
- ターミナル ウィンドウを開きます。
ConfigMap
オブジェクトを作成します。ConfigMap
オブジェクトのdata
セクションに、先ほどコピーした JSON モデルを貼り付けます。apiVersion: v1 kind: ConfigMap metadata: namespace: PROJECT_NAMESPACE name: CONFIGMAP_NAME data: JSON_FILE_NAME.json: | { JSON_MODEL }
次のように置き換えます。
PROJECT_NAMESPACE
: プロジェクトの Namespace。CONFIGMAP_NAME
:ConfigMap
オブジェクトに付ける名前。JSON_FILE_NAME
: ダッシュボードの JSON モデルのファイルに付ける名前。JSON_MODEL
: カスタム ダッシュボードの JSON モデル。
このオブジェクトの例については、
ConfigMap
の例をご覧ください。ConfigMap
オブジェクトを Management API サーバーに適用します。kubectl --kubeconfig ${KUBECONFIG} apply -f CONFIGMAP_NAME.yaml
ConfigMap
の例
次の YAML ファイルは、platform-obs
Namespace のダッシュボードの ConfigMap
オブジェクトの例を示しています。
apiVersion: v1
kind: ConfigMap
metadata:
namespace: platform-obs
name: my-project-dashboard-configmap
data:
my-project-dashboard.json: |
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "--",
"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
カスタム リソースを作成し、カスタム ダッシュボードをプロジェクトの Grafana インスタンスにインポートします。
- ターミナル ウィンドウを開きます。
Dashboard
カスタム リソースを作成し、ConfigMap
オブジェクトに指定した名前でファイルを構成します。apiVersion: observability.gdc.goog/v1 kind: Dashboard metadata: namespace: PROJECT_NAMESPACE name: DASHBOARD_NAME spec: configMapRef: name: CONFIGMAP_NAME namespace: PROJECT_NAMESPACE key: JSON_FILE_NAME.json foldername: Default
次のように置き換えます。
PROJECT_NAMESPACE
: プロジェクトの Namespace。DASHBOARD_NAME
:Dashboard
カスタム リソースに付ける名前。CONFIGMAP_NAME
:ConfigMap
オブジェクトに付けた名前。JSON_FILE_NAME
:ConfigMap
オブジェクトのダッシュボードの JSON モデルを含むファイルに付けた名前。
Dashboard
カスタム リソースを Management API サーバーに適用します。kubectl --kubeconfig ${KUBECONFIG} apply -f DASHBOARD_NAME.yaml
システムは、Dashboard
カスタム リソースと関連する ConfigMap
オブジェクトの両方の変更をモニタリングします。ダッシュボードを更新または削除するには、これらのリソースを変更します。変更を行うと、Grafana の更新がトリガーされます。Grafana ユーザー インターフェースで直接実行した更新は保存できません。