1.6. Grafana ダッシュボードの設計
grafana-dev
インスタンスを作成して、Grafana ダッシュボードを設計できます。
1.6.1. Grafana 開発者インスタンスの設定
まず、stolostron/multicluster-observability-operator/
リポジトリーのクローンを作成し、tools
フォルダーにあるスクリプトを実行できるようにします。必ず最新の grafana-dev
インスタンスを使用してください。
Grafana 開発者インスタンスを設定するには、以下の手順を実行します。
setup-grafana-dev.sh
を実行して、Grafana インスタンスを設定します。スクリプトを実行すると、secret/grafana-dev-config
、deployment.apps/grafana-dev
、service/grafana-dev
、ingress.extensions/grafana-dev
、persistentvolumeclaim/grafana-dev
のリソースが作成されます。./setup-grafana-dev.sh --deploy secret/grafana-dev-config created deployment.apps/grafana-dev created service/grafana-dev created serviceaccount/grafana-dev created clusterrolebinding.rbac.authorization.k8s.io/open-cluster-management:grafana-crb-dev created route.route.openshift.io/grafana-dev created persistentvolumeclaim/grafana-dev created oauthclient.oauth.openshift.io/grafana-proxy-client-dev created deployment.apps/grafana-dev patched service/grafana-dev patched route.route.openshift.io/grafana-dev patched oauthclient.oauth.openshift.io/grafana-proxy-client-dev patched clusterrolebinding.rbac.authorization.k8s.io/open-cluster-management:grafana-crb-dev patched
switch-to-grafana-admin.sh
スクリプトを使用して、ユーザーロールを Grafana 管理者に切り替えます。-
Grafana の URL
https://grafana-dev-open-cluster-management-observability.{OPENSHIFT_INGRESS_DOMAIN}
を選択し、ログインします。 次に、以下のコマンドを実行して、切り替えユーザーを Grafana 管理者として追加します。たとえば、
kubeadmin
を使用してログインしたら、以下のコマンドを実行します。./switch-to-grafana-admin.sh kube:admin User <kube:admin> switched to be grafana admin
-
Grafana の URL
Grafana 開発者インスタンを設定します。
1.6.2. Grafana ダッシュボードの設計
Grafana インスタンスを設定したら、ダッシュボードを設計できます。Grafana コンソールを更新し、ダッシュボードを設計するには、以下の手順を実行します。
- Grafana コンソールのナビゲーションパネルから Create アイコンを選択してダッシュボードを作成します。Dashboard を選択し、Add new panel をクリックします。
- New Dashboard/Edit Panel ビューで、Query タブを選択します。
-
データソースセレクターから
Observatorium
を選択し、PromQL クエリーを入力してクエリーを設定します。 - Grafana ダッシュボードヘッダーから、ダッシュボードヘッダーにある Save アイコンをクリックします。
- 説明的な名前を追加し、Save をクリックします。
1.6.2.1. ConfigMap での Grafana ダッシュボードの設計
ConfigMap を使用して、Grafana ダッシュボードを設計します。generate-dashboard-configmap-yaml.sh
スクリプトを使用してダッシュボードの ConfigMap を生成し、ローカルで ConfigMap を保存できます。
./generate-dashboard-configmap-yaml.sh "Your Dashboard Name" Save dashboard <your-dashboard-name> to ./your-dashboard-name.yaml
前述のスクリプトを実行するパーミッションがない場合は、以下の手順を実行します。
- ダッシュボードを選択し、Dashboard 設定 アイコンをクリックします。
- ナビゲーションパネルから JSON Model アイコンをクリックします。
-
ダッシュボード JSON データをコピーし、
data
セクションに貼り付けます。 name
を、$your-dashboard-name
に置き換えます。data.$your-dashboard-name.json.$$your_dashboard_json
のuid
フィールドに Universally Unique Identifier (UUID) を入力します。uuidegen などのプログラムを使用して UUID を作成できます。ConfigMap は、以下のファイルのようになります。kind: ConfigMap apiVersion: v1 metadata: name: $your-dashboard-name namespace: open-cluster-management-observability labels: grafana-custom-dashboard: "true" data: $your-dashboard-name.json: |- $your_dashboard_json
注記:
ダッシュボードが
grafana-dev
インスタンス内に作成されている場合は、ダッシュボードの名前を取得して、スクリプトで引数として渡すことができます。たとえば、Demo Dashboard という名前のダッシュボードがgrafana-dev
インスタンスに作成されます。CLI から、次のスクリプトを実行できます。./generate-dashboard-configmap-yaml.sh "Demo Dashboard"
スクリプトを実行すると、次のメッセージが表示される場合があります。
Save dashboard <demo-dashboard> to ./demo-dashboard.yaml
ダッシュボードが General フォルダーにない場合は、この ConfigMap の
annotations
セクションでフォルダー名を指定できます。annotations: observability.open-cluster-management.io/dashboard-folder: Custom
ConfigMap の更新が完了したら、インストールしてダッシュボードを Grafana インスタンスにインポートできます。
CLI または OpenShift Container Platform コンソールから YAML を適用して、YAML ファイルが作成されていることを確認します。open-cluster-management-observability
namespace 内に ConfigMap が作成されます。CLI から次のコマンドを実行します。
oc apply -f demo-dashboard.yaml
OpenShift Container Platform コンソールから、demo-dashboard.yaml
ファイルを使用して、ConfigMap を作成します。ダッシュボードは Custom フォルダーにあります。
1.6.3. Grafana でマネージドクラスターラベルを使用する
ハブクラスターで可観測性が有効になっている場合、observability-managed-cluster-label-allowlist
ConfigMap が open-cluster-management-observability
namespace に作成されます。ConfigMap には、observabilty-rbac-query-proxy
Pod によって維持されるマネージドクラスターラベルのリストが含まれており、ACM - Cluster Overview Grafana ダッシュボード内からフィルタリングするラベル名のリストを入力します。デフォルトでは、可観測性は observability-managed-cluster-label-allowlist
ConfigMap のラベルのサブセットを無視します。
クラスターがマネージドクラスターフリートにインポートされるか、変更されると、observability-rbac-query-proxy
Pod は、マネージドクラスターラベルを参照して変更を監視し、observability-managed-cluster-label-allowlist
ConfigMap を自動的に更新して、変化します。ConfigMap には、ignore_labels
または labels
リストに含まれる一意のラベル名のみが含まれます。observability-managed-cluster-label-allowlist
ConfigMap は次の YAML ファイルのようになる場合があります。
data: managed_cluster.yaml: | ignore_labels: - clusterID - cluster.open-cluster-management.io/clusterset - feature.open-cluster-management.io/addon-application-manager - feature.open-cluster-management.io/addon-cert-policy-controller - feature.open-cluster-management.io/addon-cluster-proxy - feature.open-cluster-management.io/addon-config-policy-controller - feature.open-cluster-management.io/addon-governance-policy-framework - feature.open-cluster-management.io/addon-iam-policy-controller - feature.open-cluster-management.io/addon-observability-controller - feature.open-cluster-management.io/addon-search-collector - feature.open-cluster-management.io/addon-work-manager - installer.name - installer.namespace - local-cluster - name labels: - cloud - vendor
有効になっているラベルは、ACM - クラスター概要 Grafana ダッシュボードのドロップダウンフィルターに表示されます。値は、選択した label
キーの値に応じて、acm_managed_cluster_labels
メトリックから取得されます。
ConfigMap の ignore_labels
キーリストにリストされているラベルは、ACM - クラスター概要 Grafana ダッシュボードのドロップダウンフィルターから削除されます。
1.6.3.1. マネージドクラスターラベルの追加
マネージドクラスターラベルを observability-managed-cluster-label-allowlist
ConfigMap に追加すると、そのラベルは Grafana のフィルターオプションとして使用できるようになります。ハブクラスター、またはマネージドクラスターフリートに関連付けられているマネージドクラスターオブジェクトに一意のラベルを追加します。たとえば、ラベル department=finance
をマネージドクラスターに追加すると、ConfigMap が更新され、次のように変更されます。
data: managed_cluster.yaml: | ignore_labels: - clusterID - cluster.open-cluster-management.io/clusterset - feature.open-cluster-management.io/addon-application-manager - feature.open-cluster-management.io/addon-cert-policy-controller - feature.open-cluster-management.io/addon-cluster-proxy - feature.open-cluster-management.io/addon-config-policy-controller - feature.open-cluster-management.io/addon-governance-policy-framework - feature.open-cluster-management.io/addon-iam-policy-controller - feature.open-cluster-management.io/addon-observability-controller - feature.open-cluster-management.io/addon-search-collector - feature.open-cluster-management.io/addon-work-manager - installer.name - installer.namespace - local-cluster - name labels: - cloud - department - vendor
1.6.3.2. マネージドクラスターラベルの有効化
observability-managed-cluster-label-allowlist
ConfigMap の ignore_labels
リストからラベルを削除して、すでに無効になっているマネージドクラスターラベルを有効にします。
たとえば、local-cluster
および name
ラベルを有効にします。observability-managed-cluster-label-allowlist
ConfigMap は、次の内容のようになる場合があります。
data: managed_cluster.yaml: | ignore_labels: - clusterID - installer.name - installer.namespace labels: - cloud - vendor - local-cluster - name
クラスターラベルが確実に更新されるように、ConfigMap は 30 秒後に再同期します。ConfigMap を更新した後、open-cluster-management-observability
namespace の observability-rbac-query-proxy
Pod ログをチェックして、ラベルがリストされている場所を確認します。次の情報が Pod ログに表示される場合があります。
enabled managedcluster labels: <label>
Grafana ダッシュボードから、ラベルが Label ドロップダウンメニューの値としてリストされていることを確認します。
1.6.3.3. マネージドクラスターラベルの無効化
Label ドロップダウンフィルターのリストからマネージドクラスターラベルを除外します。ラベル名を ignore_labels
リストに追加します。たとえば、local-cluster
と name
を ignore_labels
リストに戻すと、YAML は次のファイルのようになります。
data: managed_cluster.yaml: | ignore_labels: - clusterID - installer.name - installer.namespace - local-cluster - name labels: - cloud - vendor
open-cluster-management-observability
namespace の observability-rbac-query-proxy
Pod ログをチェックして、ラベルがどこにリストされているかを確認します。次の情報が Pod ログに表示される場合があります。
disabled managedcluster label: <label>
1.6.4. Grafana 開発者インスタンスのアンインストール
インスタンスをアンインストールすると、関連するリソースも削除されます。以下のコマンドを実行します。
./setup-grafana-dev.sh --clean secret "grafana-dev-config" deleted deployment.apps "grafana-dev" deleted serviceaccount "grafana-dev" deleted route.route.openshift.io "grafana-dev" deleted persistentvolumeclaim "grafana-dev" deleted oauthclient.oauth.openshift.io "grafana-proxy-client-dev" deleted clusterrolebinding.rbac.authorization.k8s.io "open-cluster-management:grafana-crb-dev" deleted
環境の監視の概要 に戻ります。