このドキュメントでは、Grafana JSON 形式のダッシュボード ファイルを Cloud Monitoring にインポートする方法について説明します。Grafana ダッシュボードは次の方法でインポートできます。
- Google Cloud コンソールを使用する。
- インポータ ツールを使用する。
インポート プロセスは、Grafana で使用される JSON 形式のダッシュボード ファイルを Cloud Monitoring で使用される JSON 形式に変換します。変換されたダッシュボードは、元の Grafana ダッシュボードとは異なる場合があります。たとえば、Cloud Monitoring ダッシュボードで利用できない機能を Grafana ダッシュボードで使用している場合、Grafana ダッシュボードのこうした機能は変換されません。こうした違いは、インポートの結果に表示されます。
インポートできるのは、PromQL 式と Prometheus データソースを使用するダッシュボードのみです。他の形式のクエリまたはデータソースを使用するダッシュボードは、正常にインポートされない場合があります。
Prometheus アラートを Cloud Monitoring にインポートする方法については、Prometheus からアラートルールとレシーバーを移行するをご覧ください。
インポートしたダッシュボードの管理に関する一般的な情報については、カスタム ダッシュボードの作成と管理をご覧ください。
始める前に
Google Cloud コンソールまたはインポータ ツールを使用してダッシュボードをインポートする場合は、十分な認可が必要です。また、インポートするダッシュボードも必要です。インポータ ツールを使用する場合は、追加の前提条件があります。
認可
カスタム ダッシュボードの作成と変更に必要な権限を取得するには、プロジェクトに対するモニタリング編集者 (roles/monitoring.editor
)の IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
ロールの詳細については、Identity and Access Management を使用してアクセスを制御するをご覧ください。
インポートする Grafana ダッシュボードを収集する
Grafana ダッシュボードをインポートするには、JSON 形式のファイルとしてローカルに保存しておく必要があります。これらのダッシュボード ファイル専用のディレクトリを作成することをおすすめします。
Google Cloud コンソールを使用してダッシュボードをインポートする
Google Cloud コンソールの次の場所から、Grafana ダッシュボードを Cloud Monitoring にインポートできます。
- Monitoring の [ダッシュボード] ページの [ダッシュボード リスト] タブ。
- Monitoring の [概要] ページにあるオンボーディング チェックリストのダッシュボード セクション。
Grafana ダッシュボードをインポートする
1 つ以上の Grafana ダッシュボードをインポートする手順は次のとおりです。
Monitoring の [ダッシュボード] ページまたは [概要] ページに移動します。
-
Google Cloud コンソールで [ダッシュボード] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。
-
Google Cloud コンソールで Monitoring [概要] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。
-
save_alt [Grafana ダッシュボードをインポートする] をクリックします。
[参照] をクリックして、Grafana ダッシュボードを JSON 形式で保存したディレクトリに移動し、インポートするダッシュボードを選択します。
各 JSON ファイルは選択後にステージングされます。[ステージング ファイル] ペインには、変換に問題があるかどうかが表示されます。
- [code 変換後の JSON を表示] をクリックして、変換の結果を確認します。
- close [ファイルを削除] をクリックして、インポート オペレーションからダッシュボードを削除します。
[save_alt インポート] をクリックします。[インポート結果] ペインには、各ダッシュボードが正常にインポートされたかどうかが表示されます。
インポートに成功したダッシュボードを表示するには、open_in_new [表示] をクリックします。
インポートしたダッシュボードを表示する
ダッシュボードを表示するには、次のようにします。
-
Google Cloud コンソールで [ダッシュボード] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。
表示するダッシュボードをリストで探します。ダッシュボードのリストをフィルタするには、次の操作を行います。
- [カスタム] カテゴリを選択すると、ユーザー定義のダッシュボードのみが表示されます。
cloud-monitoring-dashboard-importer
ラベルを選択すると、Google Cloud コンソールを使用してインポートされた Grafana ダッシュボードのみが表示されます。- フィルタバーを使用して名前で検索します。
インポート ツールを使用してダッシュボードをインポートする
インポータ ツールを使用して、1 回のオペレーションとして Grafana ダッシュボードを変換し、Cloud Monitoring にアップロードすることも、変換ステップとアップロード手順を個別に実行することもできます。アップロードする前に変換後のダッシュボードを編集する場合は、このアプローチを選択できます。
追加の前提条件
ダッシュボード インポータをインストールして実行する前に、次のことを行う必要があります。
- Bash シェル スクリプトをサポートする環境を使用します。
- Git をインストールします(インストールしていない場合)。
- バージョン 20.4.1 以降の Node.js をインストールします(インストールしていない場合)。
- Google Cloud CLI をインストールします(インストールしていない場合)。すでに gcloud CLI をインストールしている場合は、
gcloud components update
コマンドを実行して最新バージョンであることを確認します。
ダッシュボード インポータを取得する
ダッシュボード インポータは、monitoring-dashboard-samples
GitHub リポジトリに保存されています。インポータを取得するには、次の操作を行います。
リポジトリのクローンを作成します。
git clone https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples
ダッシュボード インポータのディレクトリに移動します。
cd monitoring-dashboard-samples/scripts/dashboard-importer
ダッシュボード インポータには、次のスクリプトが含まれています。
import.sh
、ダッシュボードを変換します。また、必要に応じて、変換されたダッシュボードを Cloud Monitoring にアップロードします。upload.sh
。変換されたダッシュボードまたは Monitoring ダッシュボードを Cloud Monitoring にアップロードします。import.sh
スクリプトがこのスクリプトを呼び出してアップロードを行います。
import.sh
スクリプトを使用する場合は、変換する Grafana ダッシュボードの場所を指定する必要があります。インポータは、変換されたダッシュボードとその他の情報を含むディレクトリを作成します。以降のセクションでは、これらのディレクトリについて説明します。
変換する Grafana ダッシュボード
ダッシュボード インポータを使用してダッシュボード ファイルのパスを指定すると、1 つ以上のダッシュボードを一度に変換できます。
ダッシュボードを含むディレクトリへのパスを指定できます。ディレクトリ内の
.json
拡張子を持つファイルのみが処理されます。単一の JSON ファイルへのパスを指定できます。ファイル名の拡張子は
.json
にする必要があります。
変換されたダッシュボードとその他の情報
インポータを初めて実行する場合は、reports
サブディレクトリが作成されます。インポータを実行するたびに、reports
ディレクトリの下に、名前に日時を含む新しい出力ディレクトリが作成されます。出力ディレクトリの名前は、次の構造になります。
reports/YYYY-M-D/HH:MM:SS
インポータが呼び出されるたびに、出力ディレクトリには次のものが含まれます。
- 元の Grafana ダッシュボードと同じ名前のファイル。ただし、形式は Cloud Monitoring JSON 形式に変換されています。
report.json
ファイル。変換されたダッシュボードごとに次の情報が記録されています。- 変換された Grafana ダッシュボード ファイルの名前と場所。
- 変換されたモニタリング ダッシュボード ファイルの名前と場所。
- Cloud Monitoring に対応する機能がないため、変換されたダッシュボードに含めることができない Grafana ダッシュボードの機能に関する通知。
- 変換で発生したすべてのエラー。
ダッシュボードをアップロードしている場合、レポート ディレクトリに upload_HH:MM:SS.txt
ファイルも含まれます。このファイルには、ダッシュボードのアップロード先となる URL が含まれています。
Grafana ダッシュボードをインポートする
Grafana ダッシュボードを変換して Cloud Monitoring にアップロードするには、import.sh
スクリプトを使用します。
./import.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID
このスクリプトは次の処理を行います。
PATH_TO_DIRECTORY_OR_FILE
のダッシュボードを Grafana の JSON 形式から Cloud Monitoring の JSON 形式に変換します。Google Cloud CLI を使用して、変換されたダッシュボードを Google Cloud プロジェクト PROJECT_ID にアップロードします。
gcloud CLI で認証を行っていない場合は、
import.sh
スクリプトを実行する前にgcloud auth login
コマンドを実行します。
すべての Grafana ダッシュボードをディレクトリにインポートすることも、インポートするダッシュボードを指定することもできます。
GRAFANA_DASHBOARDS_DIR
ディレクトリ内のすべてのダッシュボードを PROJECT_ID Google Cloud プロジェクトにインポートするには、スクリプトを呼び出すときに、インポータ ディレクトリからの相対ディレクトリと宛先プロジェクト ID を指定します。./import.sh GRAFANA_DASHBOARDS_DIR PROJECT_ID
GRAFANA_DASHBOARDS_DIR
ディレクトリのMY_GRAFANA_DASHBOARD.json
ダッシュボードのみを変換する場合は、スクリプトを呼び出すときに、インポータ ディレクトリに対する相対的なダッシュボード ファイル名を指定します。./import.sh GRAFANA_DASHBOARDS_DIR/MY_GRAFANA_DASHBOARD.json PROJECT_ID
ダッシュボード インポータには、examples/k8s_cluster_example.json
としてサンプルの Grafana ダッシュボードが含まれています。次のコマンドは、指定されたプロジェクトにダッシュボードをインポートします。
./import.sh examples/k8s_cluster_example.json PROJECT_ID
PROJECT_ID my-project-test-1
で呼び出すと、出力は次のようになります。
Converting: Kubernetes Cluster Overview ✓ Kubernetes Cluster Overview converted successfully Conversion of examples/k8s_cluster_example.json complete. Conversion Report located at: reports/2023-9-28/22:14:57/report.json To upload these dashboard(s) manually, you can run: ./upload.sh reports/2023-9-28/22:14:57/ <PROJECT_ID> Conversion Complete. Proceeding to uploading... Now running: ./upload.sh reports/2023-9-28/22:14:57/ my-project-test-1 Uploading 1 dashboard(s) from a directory with the following args: Directory: reports/2023-9-28/22:14:57/ Project: my-project-test-1 The following are your dashboards: - k8s_cluster_example.json
import.sh
スクリプトが出力ディレクトリを作成してダッシュボードを変換した後、変換後のダッシュボードをプロジェクトにアップロードする前に、確認のプロンプトが表示されます。「y
」と入力します。スクリプトによってダッシュボードがアップロードされ、新しいダッシュボードの URL が出力されます。
Would you like to continue? (y/n) y ✓ k8s_cluster_example.json successfully uploaded: https://console.cloud.google.com/monitoring/dashboards/builder/9c341ef8-cfef-4bdd-98d5-821571c520ef?project=my-project-test-1 Upload log created in reports/2023-9-28/22:14:57/upload_22:14:57.txt Need to troubleshoot? Please visit: https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples/tree/master/scripts/dashboard-importer/README.md#troubleshooting
アップロードせずに Grafana ダッシュボードを変換する
変換されたダッシュボードをアップロードする前に検査または編集する場合は、import.sh
スクリプトを呼び出すときに PROJECT_ID 値を省略します。
./import.sh PATH_TO_DIRECTORY_OR_FILE
インポータは、Grafana ダッシュボードのインポートで説明されているように、ダッシュボードを変換しますが、変換されたダッシュボードは Cloud Monitoring にはアップロードされません。
upload.sh
スクリプトを手動で使用すると、後でアップロード手順を実行できます。
ダッシュボードを手動でアップロードする
Cloud Monitoring JSON 形式でダッシュボードを手動でアップロードするには、upload.sh
スクリプトを使用します。
./upload.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID
upload.sh
スクリプトは、Google Cloud CLI を使用して JSON ファイルをアップロードします。gcloud CLI で認証を行っていない場合は、upload.sh
スクリプトを実行する前に gcloud auth login
コマンドを実行します。
reports/YYYY-M-D/HH:MM:SS
ディレクトリ内のすべてのダッシュボードをアップロードするには、スクリプトを呼び出すときに、インポータ ディレクトリからの相対ディレクトリと宛先プロジェクト ID を指定します。./upload.sh
reports/YYYY-M-D/HH:MM:SS
PROJECT_IDディレクトリからすべてのダッシュボードをアップロードする場合は、ダッシュボードをアップロードする前に、スクリプトを続行するかどうかを確認するプロンプトが表示されます。
reports/YYYY-M-D/HH:MM:SS
ディレクトリで特定のダッシュボードをアップロードするには、スクリプトを呼び出すときに、インポータ ディレクトリからの相対ディレクトリと相対ファイル名、宛先プロジェクト ID を指定します。./upload.sh
reports/YYYY-M-D/HH:MM:SS
/MY_MONITORING_DASHBOARD.json PROJECT_IDディレクトリから 1 つのダッシュボードをアップロードする場合は、アップロードの前にプロンプトは表示せずに処理が実行されます。
たとえば、次のコマンドは、reports
サブディレクトリに保存されているダッシュボードを Google Cloud プロジェクト my-project-test-1
にアップロードします。
./upload.sh reports/2023-9-26/22:48:31/k8s_cluster_example.json my-project-test-1 Uploading json file: k8s_cluster_example.json to project: my-project-test-1... ✓ k8s_cluster_example.json successfully uploaded: https://console.cloud.google.com/monitoring/dashboards/builder/25956d9a-93e2-410c-ada1-ec6872cb6665?project=my-project-test-1
アップロードしたダッシュボードを表示する
ダッシュボードを表示するには、次のようにします。
-
Google Cloud コンソールで [ダッシュボード] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。
表示するダッシュボードをリストで探します。ダッシュボードのリストをフィルタするには、次の操作を行います。
- [カスタム] カテゴリを選択すると、ユーザー定義のダッシュボードのみが表示されます。
- インポータ ツールを使用してインポートされた Grafana ダッシュボードのみを表示するには、
cloud-ops-grafana-importer
ラベルを選択します。 - フィルタバーを使用して名前で検索します。
トラブルシューティング
このツールの小規模なアップデートやバグ修正が公開されることがあります。さらなるトラブルシューティングを試す前に、まず git pull
を使用して最新バージョンのリポジトリをプルダウンしてから再度インポートし、問題を修正してみてください。
グラフにデータが表示されないなど、変換後のダッシュボードの問題については、インポータの README
ファイルをご覧ください。