Grafana ダッシュボード

DockerBeginner
オンラインで実践に進む

はじめに

このラボでは、Grafana を使用して監視ダッシュボードを作成する基礎を学びます。Grafana は、監視と可観測性のための人気のあるオープンソースプラットフォームであり、データの保存場所に関係なく、メトリクスのクエリ、視覚化、アラート設定、調査を行うことができます。

今回は、以下のコンポーネントを含む設定済みの環境を使用します。

  • Grafana: ダッシュボードを構築するための視覚化ツール。
  • Prometheus: Grafana のデータソースとなる時系列データベース。
  • Node Exporter: ホストマシンからハードウェアおよび OS のメトリクスを収集し、Prometheus がスクレイピングできるように公開するエージェント。

今回の目標は、ラボ環境のリアルタイム CPU 使用率を表示するシンプルなダッシュボードをゼロから構築することです。

設定済み環境の確認

このステップでは、ラボ環境を確認します。セットアップスクリプトによって、基本的な監視スタックを構成する 3 つの Docker コンテナが既に起動しています。

まず、すべてのコンテナが実行されていることを確認します。ターミナルを開き、次のコマンドを実行してください。

docker ps

以下のような出力が表示され、grafanaprometheusnode-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:8080->3000/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 をクリックして構いません。

Grafana ログインページ(管理者認証情報)

ログインしたら、データソースの接続を確認します。

Grafana はリリースごとに左側のサイドバーのラベルやアイコンが変更されるため、画面がスクリーンショットと完全に一致しない場合があります。サイドバーが折りたたまれている場合は、まず展開してください。

  1. データソース管理画面を開きます。最近の Grafana バージョンでは、Connections から Data sources を選択します。Connections が見当たらない場合は、サイドバーの検索機能を使用して Data sources を開いてください。
  2. Prometheus という名前の設定済みデータソースが存在することを確認します。この接続は初期化スクリプトによって自動的に設定されており、Grafana が Prometheus コンテナにクエリを投げられるようになっています。

Prometheus データソース選択画面

これで、最初のダッシュボードを作成する準備が整いました。

Grafana UI での新しいダッシュボード作成

このステップでは、Grafana インターフェースで新しい空のダッシュボードを作成します。ダッシュボードは、グリッド状に配置された 1 つ以上のパネルの集合体です。

  1. Grafana UI の左側サイドバーを確認します。
  2. 新しいダッシュボードを作成します。メニューのラベルは Grafana のバージョンによって異なります。
    • + Create という項目がある場合は、それを開き New dashboard を選択します。
    • サイドバーに Dashboards がある場合は、それを開き New dashboard を選択します。
    • サイドバーのレイアウトが異なる場合は、Grafana の検索ボックスを使用して New dashboard を検索してください。

新しいダッシュボードの作成

この操作により、新しい空のダッシュボードが作成されます。すぐに最初のパネルを追加するよう促されます。パネルは Grafana における視覚化の基本的な構成要素です。

画面中央の Add visualization ボタンをクリックして、パネルエディタに進みます。

新しいパネルの追加

パネルエディタが表示されました。次のステップで、データクエリの定義と視覚化のカスタマイズを行います。

CPU 使用率を表示する PromQL クエリパネルの追加

このステップでは、ダッシュボードにパネルを追加し、PromQL (Prometheus Query Language) クエリを使用して CPU 使用率データを取得します。

前のステップからパネルエディタが開いている状態のはずです。

  1. エディタの下部にクエリセクションがあります。デフォルトで Prometheus データソースが選択されているはずです。
  2. Metrics browser テキストボックスに、以下の PromQL クエリを入力します(直接コピー&ペースト可能です)。
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

このクエリの解説は以下の通りです。

  • node_cpu_seconds_total{mode="idle"}: CPU が「アイドル」状態であった合計秒数をカウントする Node Exporter のメトリクスです。
  • rate(...[5m]): 過去 5 分間のアイドル時間の 1 秒あたりの平均増加率を計算します。結果は 0 から 1 の値となり、CPU がアイドル状態であった時間の割合を表します。
  • avg by (instance): 結果を集計します。複数の CPU やマシンがある場合に便利です。
  • * 100: 小数値をパーセンテージに変換します(例: 0.95 は 95% になります)。
  • 100 - ...: 最後に、100 からアイドル率を引くことで、アクティブな CPU 使用率のパーセンテージを算出します。

クエリを入力すると、上部のプレビューペインに CPU 使用率の推移を示すグラフが自動的に表示されます。

クエリが設定された Grafana パネル

パネルにデータが表示されましたが、次のステップでラベルやフォーマットを調整して、より見やすくします。

ダッシュボードのカスタマイズと保存

このステップでは、パネルの外観をカスタマイズし、ダッシュボードを保存します。適切に設定されたパネルは、一目で状況を把握しやすくなります。

  1. パネルエディタの右側にある Panel options セクションを探します。
  2. Title フィールドに CPU Usage % のような分かりやすい名前を入力します。プレビューペインでタイトルが更新されるのが確認できます。
  3. 右側のオプションを下にスクロールし、Standard options セクションを探します。
  4. Unit ドロップダウンメニューをクリックします。現在は "None" となっています。
  5. 表示された検索ボックスに percent と入力し、リストから Percent (0-100) を選択します。これにより、グラフの Y 軸がパーセント記号付きで正しくフォーマットされます。

パネルオプションのカスタマイズ

パネルの設定が完了したので、変更を適用してダッシュボードビューに戻ります。

  1. 画面右上の Save ボタンをクリックします(Grafana のバージョンによっては Apply と表示されている場合があります)。

ダッシュボードに戻り、作成したパネルが表示されているはずです。最後にダッシュボード全体を保存します。

  1. ダッシュボードヘッダーの右上にある Save dashboard アイコン(フロッピーディスクの形)をクリックします。
  2. 「Save dashboard」ダイアログが表示されます。ラボで保存を確認できるように、名前を My System Dashboard と入力してください。
  3. Save ボタンをクリックします。

ダッシュボードの保存

おめでとうございます!これで最初の Grafana ダッシュボードの作成と保存が完了しました。

まとめ

このラボでは、Grafana ダッシュボードをゼロから構築することに成功しました。設定済みの監視スタックを使用して、以下の重要な操作を行いました。

  • Grafana、Prometheus、Node Exporter コンテナで構成される環境の確認。
  • Grafana UI を操作して、新しい空のダッシュボードを作成。
  • 視覚化パネルを追加し、Prometheus データソースから CPU 使用率データを取得するための PromQL クエリを記述。
  • パネルのタイトルと単位フォーマットをカスタマイズし、可読性を向上。
  • 完成したダッシュボードを保存。

これで、Grafana で視覚化を作成するための基本的なワークフローを習得しました。この知識を基に、メモリ使用量、ディスク I/O、ネットワークトラフィックなどの他のシステムメトリクスを監視するためのパネルを追加して、ダッシュボードを拡張していくことができます。