はじめに
この実験では、Grafana を使用して監視ダッシュボードを作成する基本を学びます。Grafana は、人気のあるオープンソースの監視およびオブザーバビリティ プラットフォームであり、どこに保存されていてもメトリクスをクエリ、視覚化、アラート設定、探索することができます。
以下のものが含まれる、事前に設定された環境で作業します。
- Grafana: ダッシュボードを構築する視覚化ツールです。
- Prometheus: Grafana のデータソースとなる時系列データベースです。
- Node Exporter: ホストマシンからハードウェアおよび OS のメトリクスを収集し、Prometheus がスクレイピングできるように公開するエージェントです。
目標は、実験環境のライブ CPU 使用率を表示するシンプルなダッシュボードをゼロから構築することです。
事前設定された環境の探索
このステップでは、実験環境に慣れます。セットアップスクリプトは、基本的な監視スタックを形成する 3 つの Docker コンテナを既に起動しています。
まず、すべてのコンテナが実行されていることを確認しましょう。ターミナルを開き、次のコマンドを実行します。
docker ps
以下のような出力が表示され、grafana、prometheus、node-exporter コンテナがリストされているはずです。コンテナ ID はそれぞれ異なります。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1a2b3c4d5e6 grafana/grafana "/run.sh" 15 seconds ago Up 14 seconds 0.0.0.0:3000->8080/tcp grafana
f6e5d4c3b2a1 prom/prometheus "/bin/prometheus --c…" 20 seconds ago Up 19 seconds 0.0.0.0:9090->9090/tcp prometheus
a9b8c7d6e5f4 prom/node-exporter "/bin/node_exporter …" 25 seconds ago Up 24 seconds 0.0.0.0:9100->9100/tcp node-exporter
各コンポーネントの簡単な説明です。
node-exporter: 仮想マシンからシステムメトリクスを収集します。prometheus:node-exporterからメトリクスをスクレイピングして保存します。grafana: Prometheus をクエリし、データを視覚化します。
次に、Grafana のユーザーインターフェースにアクセスしましょう。
LabEx VM のリバースプロキシ設定のため、デスクトップインターフェースに切り替え、左上隅の Firefox ブラウザをクリックし、アドレスバーに http://localhost:8080 と入力してください。Grafana のログインページが表示されるはずです。
デフォルトの認証情報でログインします。
- ユーザー名:
admin - パスワード:
admin
パスワードの変更を求められる場合があります。この実験では Skip をクリックできます。

ログインしたら、データソースの接続を確認しましょう。
- 左側のメニューで、Connections アイコン(プラグまたはコネクタのように見えます)をクリックします。
- Connections ページで、Data sources をクリックします。
Prometheusという名前の事前設定されたデータソースが表示されます。この接続は初期化スクリプトによって自動的に設定されており、Grafana が Prometheus コンテナをクエリできるようになっています。

これで、最初のダッシュボードを構築する準備が整いました。
Grafana UI で新しいダッシュボードを作成する
このステップでは、Grafana インターフェースで新しく空のダッシュボードを作成します。ダッシュボードは、グリッド状に配置された 1 つ以上のパネルのコレクションです。
- Grafana UI で、左側のサイドバーを見つけます。
- 表示されるメニューから、Dashboard を選択します。

この操作により、新しく空のダッシュボードが作成されます。すぐに最初のパネルを追加するように促されます。パネルは、Grafana における基本的な視覚化のビルディングブロックです。
画面中央の Add visualization ボタンをクリックして、パネルエディタに進みます。

これでパネルエディタに入りました。次のステップで、データクエリを定義し、その視覚化をカスタマイズします。
CPU 使用率のための PromQL クエリでパネルを追加する
このステップでは、ダッシュボードにパネルを追加し、PromQL (Prometheus Query Language) クエリを使用して CPU 使用率データを取得します。
前のステップから、すでにパネルエディタに入っているはずです。
- エディタの下部にあるクエリセクションを見つけます。
Prometheusデータソースはデフォルトで選択されているはずです。 - Metrics browser テキストボックスに、次の PromQL クエリを入力します。直接コピー&ペーストできます。
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
このクエリの内訳を見てみましょう。
node_cpu_seconds_total{mode="idle"}: これは Node Exporter のメトリクスで、CPU が「アイドル」状態であった合計秒数をカウントします。rate(...[5m]): この関数は、過去 5 分間のアイドル時間の 1 秒あたりの平均レートを計算します。結果は 0 から 1 の間の値になり、CPU がアイドルであった時間の割合を表します。avg by (instance): これは結果を集計します。複数の CPU やマシンがある場合に便利です。* 100: これは、小数値をパーセンテージに変換します(例:0.95 が 95% になります)。100 - ...: 最後に、アイドル時間のパーセンテージを 100 から引いて、アクティブな CPU 使用率のパーセンテージを取得します。
クエリを入力すると、上部のプレビューペインにグラフが自動的に表示され、CPU 使用率が時間とともに示されます。

パネルは現在データを表示していますが、次のステップで改善する、より良いラベル付けとフォーマットを行うことができます。
ダッシュボードのカスタマイズと保存
このステップでは、パネルの外観をカスタマイズし、ダッシュボードを保存します。適切に設定されたパネルは、一目で理解しやすくなります。
- パネルエディタの右側にある Panel options セクションを見つけます。
- Title フィールドに、
CPU Usage %のようなパネルのわかりやすい名前を入力します。プレビューペインでタイトルが更新されるのがわかります。 - 右側のオプションを下にスクロールして、Standard options セクションを見つけます。
- Unit ドロップダウンメニューをクリックします。現在は「None」と表示されています。
- 表示された検索ボックスに
percentと入力し、リストから Percent (0-100) を選択します。これにより、グラフの Y 軸がパーセント記号を表示するように正しくフォーマットされます。

パネルの設定が完了したので、変更を適用してダッシュボードビューに戻ります。
- 画面右上にある Save ボタンをクリックします。
これでダッシュボードに戻り、新しく作成したパネルが含まれています。最後のステップは、ダッシュボード全体を保存することです。
- ダッシュボードヘッダーの右上にある Save dashboard アイコン(フロッピーディスクのようなアイコン)をクリックします。
- 「Save dashboard」ダイアログが表示されます。ダッシュボードの名前を入力します。例えば、
My System Dashboardです。 - Save ボタンをクリックします。

おめでとうございます!最初の Grafana ダッシュボードを正常に作成し、保存しました。
まとめ
この実験では、Grafana ダッシュボードをゼロから作成しました。事前に設定されたモニタリングスタックから始め、以下の主要なアクションを実行しました。
- Grafana、Prometheus、Node Exporter コンテナで構成される環境を探索しました。
- Grafana UI を操作して、新しい空のダッシュボードを作成しました。
- 可視化パネルを追加し、Prometheus データソースから CPU 使用率データを取得するための PromQL クエリを作成しました。
- パネルのタイトルと単位フォーマットをカスタマイズして、可読性を向上させました。
- 完成したダッシュボードを保存して、将来使用できるようにしました。
これで、Grafana で可視化を作成するための基本的なワークフローを学びました。この知識を基盤として、メモリ使用量、ディスク I/O、ネットワークトラフィックなどの他のシステムメトリクスを監視するために、ダッシュボードにさらにパネルを追加することができます。



