Contents
はじめに:PrometheusとGrafanaによるモニタリングの重要性
システム監視は、運用の安定性を維持するための不可欠なプロセスです。Prometheusはメトリクス収集に最適化されたツールで、Grafanaはそのデータを可視化しやすいインターフェースを提供します。本ガイドでは、これらのツールを使ってステップバイステップでダッシュボードを作成する方法を解説します。特にNode Exporterを使用した具体例を取り上げることで、実務で即活用できる知識をお伝えします。
GrafanaへのPrometheusデータソースの設定
GrafanaでPrometheusのメトリクスを表示するには、まずデータソースとして登録する必要があります。以下に手順を解説します。
データソース追加画面の操作手順
- Grafanaのダッシュボード画面右上の「+」アイコンをクリックし、「Data Sources」を選択します。
- 「Add data source」から「Prometheus」を選んで、以下を入力します:
- URL: Prometheusサーバーのアドレス(例:
http://localhost:9090) - Basic Authが必要な場合、ユーザー名とパスワードを入力
-
TLS証明書を使用する場合は、「Use TLS」にチェック
-
「Save & Test」ボタンをクリックし、接続が成功しているか確認します。
接続テストと基本設定確認
接続テストに成功すると「Data source is working」のメッセージが出ます。この状態でGrafanaからPrometheusのメトリクスを取得できます。
blockquote: 重要ポイント:HTTPS通信が必要な環境では、証明書の有効期限やCA設定も確認してください。
JSONファイルによるダッシュボードインポート
Grafanaには事前に作成されたJSON形式のダッシュボードテンプレートが多数存在します。ここではNode Exporter用のテンプレートを取得・インポートする手順を解説します。
Grafana公式ダッシュボードの取得方法
- https://grafana.com/grafana/dashboards/にアクセスし、検索バーで「Node Exporter」を検索します。
- 代表的なテンプレート(例:
node_cpuorsystem_overview)を選択し、「Download JSON」をクリックします。
JSONファイルのアップロード手順
- Grafanaのダッシュボード画面で「+」アイコンから「Import」を選択します。
- 「Upload .json file」に先ほどダウンロードしたJSONファイルをドラッグ&ドロップまたは選択します。
- ファイルが正しいバージョンかどうかを確認し、「Import」ボタンをクリックします。
blockquote: 注意:使用しているGrafanaとPrometheusのバージョンがテンプレートに対応しているか必ずチェックしてください。具体的には、以下の手順で確認できます:
- Grafanaの「About」画面からバージョン情報を取得
- ダッシュボードページのメタデータ(例:
https://grafana.com/dashboards/12345)を参照
Node Exporter監視ダッシュボードのカスタマイズ
インポートしたダッシュボードは、必要に応じてカスタマイズ可能です。代表的なクエリ作成方法と可視化オプションを解説します。
パネル追加時のクエリ構築例
node_cpuメトリクスの取得:
|
1 2 |
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) |
blockquote: 背景解説:
node_cpu_seconds_totalはCPU使用量を秒単位で集計するメトリクスです。mode="idle"はCPUがアイドル状態である時間を示し、これを100から引くことで利用率(%)を求めます。
node_memory使用量の計算:
|
1 2 |
(avg by (instance) (node_memory_MemTotal_bytes) - avg by (instance) (node_memory_MemFree_bytes)) / avg by (instance) (node_memory_MemTotal_bytes) * 100 |
blockquote: メトリクス名例:
node_memory_MemTotal_bytes(全メモリ)、node_memory_MemFree_bytes(空きメモリ)を使用しています。
グラフ種別ごとの可視化オプション
- ラインチャート: 時系列データの変化を追跡したい場合に最適
- バー・ヒストグラム: 複数ノード間でメトリクスを比較する際におすすめ
- ガuges(ゲージ): 即時値を表示し、リアルタイム監視に適しています
各パネルの「Edit」ボタンからグラフ種別や色設定を変更可能です。
Node Exporterのインストール手順 (OSごとの詳細)
Node ExporterのインストールはOSによって異なり、バージョンミスマッチを防ぐため具体的な手順が必要です。以下の表にOS別の手順を示します。
|
1 2 3 4 5 6 7 8 9 |
| OS | インストールコマンド | バージョン確認コマンド | |----|---------------------|------------------------| | **Linux (Debian/Ubuntu)** | `sudo apt-get install node_exporter` | `node_exporter --version` | | **Linux (RedHat/CentOS)** | `sudo yum install node_exporter` | `node_exporter --version` | | **macOS** | `brew install prometheus/node_exporter` | `node_exporter --version` | | **Windows** | [公式サイト](https://github.com/prometheus/node_exporter/releases)からzipをダウンロードし、実行ファイルを起動 | `.\node_exporter.exe --version` | |
blockquote: 重要: インストール前にOSとNode Exporterの互換性を確認してください。特にWindowsではバージョンが1.3以降が必要な場合があります。
アラートルールとの連携設定
システム異常時に通知を受け取るには、アラートルールとGrafanaを連携する必要があります。以下に手順を解説します。
Grafana内でのアラートポリシー定義
- ダッシュボードの「Edit」画面から、パネルを選択し「Alert」タブを開きます。
- 「New alert rule」で以下の情報を設定:
- Evaluate every: 5m(例えば)
- For: 5m
-
Condition: 値が80%以上になった場合
-
「Save」をクリックし、アラートの表示位置と色(例: 赤色)を設定します。
blockquote: メトリクス例:
node_cpu_seconds_totalやnode_memory_MemTotal_bytesなどの具体的なメトリクス名を記載し、誤解を防ぎます。
通知先のWebhook設定例
Slackやメールで通知を受け取るには、以下の手順でWebhook情報を登録します。
- Grafanaの左メニューから「Alerting」→「Notification channels」を選択し、「Add channel」をクリック。
- 「Type」からSlackを選択し、Webhook URLを入力(Slack APIで取得)。
- チャンネル名やメッセージ形式も設定後、「Save」ボタンを押します。
まとめ:モニタリング体制構築のコツ
本ガイドでは、PrometheusとGrafanaを使ってダッシュボードを作成するステップバイステップを解説しました。以下が重要なポイントです:
- Node ExporterのインストールとPrometheusへの接続は基本中の基本です
- ダッシュボードテンプレートをJSONでインポートすることで初期設定時間を短縮できます
- クエリ構築や可視化オプションのカスタマイズにより、目的に応じたモニタリングが可能になります
- アラートルールと通知先の連携は運用体制の強化につながります
実運用では定期的なダッシュボード見直しとメトリクス選定の見直しを心がけ、システムの変化に柔軟に対応してください。本ガイドに従ってGrafanaダッシュボードを実際に作成し、システムのモニタリング体制を整えましょう。