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、ネットワークトラフィックなど、他のシステムメトリクスを監視するためのパネルを追加してダッシュボードを拡張してみてください。