このドキュメントでは、Grafana JSON 形式のダッシュボード ファイルを Cloud Monitoring にインポートする方法について説明します。Grafana ダッシュボードは次の方法でインポートできます。
- Google Cloud コンソールを使用します。
- インポータ ツールを使用します。
インポーㇳプロセスでは、Grafana で使用される JSON 形式のダッシュボード ファイルを Cloud Monitoring で使用される JSON 形式に変換します。変換されたダッシュボードは、元の Grafana ダッシュボードとは異なる場合があります。たとえば、Grafana ダッシュボードが Cloud Monitoring ダッシュボードで利用できない機能を使用している場合、Grafana ダッシュボードのこれらの機能は変換されません。これらの違いは、インポートの結果に一覧表示されます。
インポートできるのは、PromQL 式と Prometheus データソースを使用するダッシュボードのみです。他の形式のクエリまたはデータソースを使用するダッシュボードは、正常にインポートされない場合があります。
Prometheus アラートを Cloud Monitoring にインポートする方法については、Prometheus からアラートルールとレシーバーを移行するをご覧ください。
インポートしたダッシュボードの管理の概要については、カスタム ダッシュボードを作成して管理するをご覧ください。
始める前に
ダッシュボードのインポートに Google Cloud コンソールまたはインポータ ツールのいずれを使用するかに関係なく、十分な承認が必要です。また、インポートするダッシュボードが必要です。インポータ ツールを使用する場合は、追加の前提条件があります。
承認
カスタム ダッシュボードの作成と変更に必要な権限を取得するには、プロジェクトに対するモニタリング編集者(roles/monitoring.editor
)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
ロールの詳細については、Identity and Access Management を使用してアクセスを制御するをご覧ください。
インポートする Grafana ダッシュボードを収集する
Grafana ダッシュボードをインポートするには、JSON 形式のファイルとしてローカルに保存する必要があります。これらのダッシュボード ファイル専用のディレクトリを作成することもできます。
Google Cloud コンソールを使用してダッシュボードをインポートする
Grafana ダッシュボードを Cloud Monitoring にインポートするには、Google Cloud コンソールの次の場所から操作します。
- 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 をインストールしていない場合は、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] である結果を選択します。
表示するダッシュボードをリストで探します。ダッシュボードのリストをフィルタするには、次の操作を行います。
- [カスタム] カテゴリを選択して、ユーザー定義のダッシュボードのみを表示します。
cloud-ops-grafana-importer
ラベルを選択すると、インポータ ツールを使用してインポートされた Grafana ダッシュボードのみが表示されます。- フィルタバーを名前で検索します。
トラブルシューティング
小規模なアップデートやバグ修正がこのツールに公開されていることがあります。さらなるトラブルシューティングを試す前に、git pull
を使用して最新バージョンのリポジトリをプルダウンしてから再度インポートし、問題を修正してみてください。
グラフにデータが表示されないなど、変換後のダッシュボードの問題については、インポータの README
ファイルをご覧ください。