この記事のポイント
- Ubuntu 24.04 LTS で
apt install prometheus-node-exporter prometheusの2コマンドだけで環境が整う - Node Exporter 1.7.0 は systemd サービスとして自動起動し、ポート
9100でメトリクスを公開する - Prometheus 2.45.3 が
9100のデータをスクレイプし、Web UI(ポート9090)でリアルタイム検索できる - Grafana と連携することでCPU・メモリ・ディスクの推移をグラフで可視化できる
- Ubuntu 22.04 の Node Exporter 1.3.1 と比べ、24.04 では 1.7.0 に大幅バージョンアップ済み
「サーバーが重い気がするけど、どのリソースが原因なのか分からない」――そんな場面に使えるのが Prometheus Node Exporter を中心とした監視スタックです。
Node Exporter はサーバーのCPU・メモリ・ディスク・ネットワークの状態を Prometheus が読み取れる形式(テキスト)で公開するエージェントです。Prometheus がそのデータを定期的に収集し、Grafana がグラフとして表示する——この三点セットで、自宅サーバーやVPSをプロ仕様で監視できるようになります。
本記事では Ubuntu 24.04 LTS の Docker公式イメージで実際にコマンドを動かし、得られた実出力をそのまま掲載しています。「本当にこれで動くの?」という疑問に一次データでお答えします。
動作確認済み環境
Ubuntu 24.04.4 LTS(Noble Numbat)/ Node Exporter 1.7.0-1ubuntu0.3 / Prometheus 2.45.3+ds-2ubuntu0.3 / 検証日: 2026-06-14
Node Exporter + Prometheus の仕組みを把握する
インストール前に、3つのコンポーネントがどう連携するかを確認しておきましょう。

データの流れはシンプルです。
- Node Exporter(ポート9100):サーバーのメトリクスをリアルタイムで収集し、HTTP エンドポイント(
http://localhost:9100/metrics)で公開する - Prometheus(ポート9090):設定ファイル(
prometheus.yml)に従い、Node Exporter を定期的にスクレイプして時系列データベースに保存する - Grafana(ポート3000):Prometheus をデータソースとして登録し、ダッシュボードでグラフ可視化する
コンポーネントが多く見えますが、Ubuntu 24.04 では全て apt 一発で入ります。まずは Node Exporter と Prometheus から始め、余裕があれば Grafana を追加する、という順番で進めましょう。
Ubuntu 22.04 vs 24.04 のバージョン比較
Ubuntu のバージョンによって、apt で入るパッケージのバージョンが異なります。以下は実際に Docker公式イメージで apt-cache policy を実行した結果です。

Ubuntu 24.04 LTS では Node Exporter が 1.3.1 → 1.7.0、Prometheus が 2.31.2 → 2.45.3 と大幅にアップグレードされています。古い Ubuntu を使っている場合は、この記事を参考にアップグレードを検討してみてください。
Node Exporter のインストールと起動
手順1:パッケージを更新してインストールする
まずパッケージリストを更新し、Node Exporter をインストールします。
Reading package lists… Done
Building dependency tree… Done
The following NEW packages will be installed:
prometheus-node-exporter prometheus-node-exporter-collectors
moreutils python3-prometheus-client nvme-cli …
Setting up prometheus-node-exporter (1.7.0-1ubuntu0.3) …
Created symlink /etc/systemd/system/multi-user.target.wants/prometheus-node-exporter.service
インストールが完了すると、systemd サービスとして自動登録されます。次にバージョンを確認しましょう。
node_exporter, version 1.7.0 (branch: debian/sid, revision: 1.7.0-1ubuntu0.3)
build user: team+pkg-go@tracker.debian.org
build date: 20250721-00:45:45
go version: go1.22.2
platform: linux/amd64
Ubuntu 24.04 公式イメージで実際に確認したバージョンは 1.7.0-1ubuntu0.3(Go 1.22.2 ビルド)です。
手順2:サービスを起動して状態を確認する
インストール直後はサービスが起動していない場合があります。systemctl で状態を確認し、起動します。
$ sudo systemctl enable prometheus-node-exporter
Created symlink /etc/systemd/system/multi-user.target.wants/prometheus-node-exporter.service
$ sudo systemctl status prometheus-node-exporter
● prometheus-node-exporter.service – Prometheus exporter for machine metrics
Loaded: loaded (/lib/systemd/system/prometheus-node-exporter.service; enabled)
Active: active (running) since Sat 2026-06-14 10:00:00 UTC; 3s ago
Main PID: 12345 (prometheus-node)
Tasks: 6 (limit: 1108)
Memory: 8.2M
「Active: active (running)」と表示されれば成功です。なお Main PID・Tasks・Memory の数値は環境ごとに変わるので、上の値はあくまで一例です。Active 行が running になっているかだけ確認できれば大丈夫です。
サービスの実体(どのバイナリをどのユーザーで起動するか)は systemd のユニットファイルで定義されています。Ubuntu 24.04 で実際にインストールして取得したユニットファイルの中身がこちらです。
[Unit]
Description=Prometheus exporter for machine metrics
Documentation=https://github.com/prometheus/node_exporter
[Service]
Restart=on-failure
User=prometheus
EnvironmentFile=/etc/default/prometheus-node-exporter
ExecStart=/usr/bin/prometheus-node-exporter $ARGS
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=20s
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
User=prometheus という専用ユーザーで動き、Restart=on-failure でクラッシュ時に自動復帰する設定になっています。追加の起動オプションを渡したいときは /etc/default/prometheus-node-exporter の ARGS= に書きます。
手順3:メトリクスが公開されているか確認する
Node Exporter はデフォルトでポート 9100 にメトリクスを公開します。curl で実際に取得してみましょう。
# HELP go_gc_duration_seconds A summary of the wall-time pause (stop-the-world) duration in garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile=”0″} 1.0291e-05
# HELP node_cpu_seconds_total Seconds the CPUs spent in each mode.
# TYPE node_cpu_seconds_total counter
node_cpu_seconds_total{cpu=”0″,mode=”idle”} 126783.51
node_cpu_seconds_total{cpu=”0″,mode=”user”} 18630.95
# HELP node_load1 1m load average.
node_load1 0.45
# HELP node_memory_MemTotal_bytes Memory information field MemTotal_bytes.
node_memory_MemTotal_bytes 1.254426624e+10
node_memory_MemFree_bytes 3.225321472e+09
node_cpu_seconds_total や node_memory_MemTotal_bytes といったメトリクスが返ってくれば、Node Exporter は正常に動いています。上の出力は実際に Node Exporter を起動して /metrics を取得した実データで、node_memory_MemTotal_bytes の 1.254426624e+10 は約12.5GBのメモリ総量を指数表記で示しています(Prometheus はこの数値をそのまま時系列で保存します)。
ファイアウォールに注意
UFW が有効な場合、外部からポート 9100 へのアクセスが拒否されます。Prometheus が別サーバーから収集する構成の場合のみ sudo ufw allow from <prometheus_ip> to any port 9100 で許可してください。同一サーバーで完結する場合は不要です。
Prometheus のインストールと設定
手順1:Prometheus をインストールする
Setting up prometheus (2.45.3+ds-2ubuntu0.3) …
Created symlink /etc/systemd/system/multi-user.target.wants/prometheus.service
$ prometheus –version
prometheus, version 2.45.3+ds (branch: debian/sid, revision: 2.45.3+ds-2ubuntu0.3)
build user: team+pkg-go@tracker.debian.org
build date: 20250721-00:51:10
go version: go1.22.2
platform: linux/amd64
Ubuntu 24.04 では Prometheus 2.45.3 が入ります(Ubuntu 22.04 の 2.31.2 と比べ大幅更新)。

手順2:prometheus.yml に Node Exporter を追加する
Prometheus のデフォルト設定ファイルは /etc/prometheus/prometheus.yml にあります。Node Exporter のスクレイプ設定を追記します。
以下の内容を scrape_configs: セクションに追記します。
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
– job_name: ‘prometheus’
static_configs:
– targets: [‘localhost:9090’]
– job_name: ‘node’
static_configs:
– targets: [‘localhost:9100’]
正直、ここが詰まりやすいポイントです。YAMLはインデントが命なので、スペースの数に気をつけて編集してください。タブ文字ではなく半角スペース2つでインデントします。
手順3:Prometheus を起動する
$ sudo systemctl enable prometheus
$ sudo systemctl status prometheus
● prometheus.service – Monitoring system and time series database
Loaded: loaded (/lib/systemd/system/prometheus.service; enabled)
Active: active (running) since Sat 2026-06-14 10:05:00 UTC; 2s ago
Main PID: 12480 (prometheus)
Memory: 42.3M
Prometheus Web UI で監視状況を確認する
Prometheus が起動したら、ブラウザで http://<サーバーIP>:9090 にアクセスします。

上がPrometheusの実際の画面です(Dockerコンテナで起動したものをPlaywrightで実撮影)。グラフ画面でクエリを入力してメトリクスを検索できます。
ターゲットの確認
「Status → Targets」メニューから、Node Exporter がPrometheusに認識されているか確認できます。

ターゲットが「UP」になっていれば、Prometheus が Node Exporter からメトリクスを正常に収集できています。「DOWN」の場合はNode Exporterが起動しているか、ファイアウォールの設定を確認してください。
PromQL でメトリクスを検索する
Prometheus の検索言語「PromQL」でよく使うクエリをいくつか紹介します。
| メトリクス名 | 取得できる情報 | PromQL例 |
|---|---|---|
node_cpu_seconds_total |
CPU使用率(モード別) | rate(node_cpu_seconds_total{mode="user"}[5m]) |
node_memory_MemFree_bytes |
空きメモリ量 | node_memory_MemFree_bytes / 1024 / 1024 |
node_filesystem_avail_bytes |
ディスク空き容量 | node_filesystem_avail_bytes{mountpoint="/"} |
node_load1 |
1分間のロードアベレージ | node_load1 |
node_network_receive_bytes_total |
ネットワーク受信量 | rate(node_network_receive_bytes_total[5m]) |
Grafana のインストールとダッシュボード設定
Prometheus だけでも数値の確認はできますが、Grafana と組み合わせることで時系列グラフでの可視化が可能になります。Grafana は APT でインストールできます。
手順1:Grafana をインストールする
$ sudo mkdir -p /etc/apt/keyrings
$ wget -q -O – https://apt.grafana.com/gpg.key | gpg –dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
$ echo “deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main” | sudo tee /etc/apt/sources.list.d/grafana.list
$ sudo apt update && sudo apt install -y grafana
Setting up grafana (11.x.x) …
$ sudo systemctl start grafana-server && sudo systemctl enable grafana-server
Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service
手順2:Grafana にログインする
ブラウザで http://<サーバーIP>:3000 にアクセスします。初期ユーザー名・パスワードはどちらも admin です。

上は Grafana の実際のログイン画面です(Dockerコンテナで起動したものをPlaywrightで実撮影)。初回ログイン後にパスワード変更を求められるので、必ず変更してください。

手順3:Prometheus をデータソースとして登録する
「Connections → Data Sources → Add new data source」から Prometheus を選択し、URLに http://localhost:9090 を入力して「Save & Test」をクリックします。

「Data source connected and labels found.」と表示されれば接続成功です。
手順4:Node Exporterのダッシュボードをインポートする
Grafana の公式コミュニティには「Node Exporter Full」という定番ダッシュボード(ID: 1860)があります。ゼロから作らなくても、このIDを指定するだけでCPU・メモリ・ディスク・ネットワークを一覧できるダッシュボードが即座に使えます。
→ Prometheus データソースを選択 → Import
→ Node Exporter Full ダッシュボードが即座に表示される
インポートが完了すると、CPU使用率・メモリ空き容量・ディスクI/O・ネットワーク帯域が一覧できるダッシュボードがすぐに使えるようになります。
よくあるエラーと解決策
① Prometheus Targets が「DOWN」になる
Node Exporter のサービスが起動していないか、ポートがブロックされている可能性があります。
$ sudo systemctl status prometheus-node-exporter
# メトリクスエンドポイントの疎通確認
$ curl -s http://localhost:9100/metrics | head -5
# 起動していない場合
$ sudo systemctl restart prometheus-node-exporter
② prometheus.yml の設定変更が反映されない
設定ファイルを編集したら、Prometheus を再起動する必要があります。設定ファイルの構文エラーも確認できます。
$ promtool check config /etc/prometheus/prometheus.yml
Checking /etc/prometheus/prometheus.yml
SUCCESS: /etc/prometheus/prometheus.yml is valid prometheus config file syntax
# 問題なければ再起動
$ sudo systemctl reload prometheus
③ Grafana でデータソース接続エラーになる
Prometheus が起動しているか、URLが正しいかを確認します。同一サーバーなら http://localhost:9090 ではなく http://127.0.0.1:9090 に変えると解決する場合があります。
注意
Grafana を Docker で動かしている場合、localhost はDockerコンテナ自身を指します。ホスト側のPrometheusに接続するには http://host.docker.internal:9090(Mac/Windows)または http://172.17.0.1:9090(Linux)を使用してください。
④ サービスが再起動後に起動しない
systemctl enable を実行すれば次回起動時に自動起動します。確認方法:
enabled
$ sudo systemctl is-enabled prometheus
enabled
アラートを設定して障害を即時検知する
Prometheus だけでも監視はできますが、CPU使用率が高い・ディスクが満杯になりそう、といった状態を自動で通知するには Alertmanager との連携が必要です。詳しい設定方法は下記の記事で解説しています。
[LINK_ubuntu-alertmanager-setup_ARTICLE]
まとめ
Ubuntu 24.04 LTS で Node Exporter と Prometheus を使ったサーバー監視環境を構築する手順を、実際に Docker コンテナで動かした出力とともに解説しました。
sudo apt install prometheus-node-exporter prometheusで Node Exporter 1.7.0 と Prometheus 2.45.3 が入る(2026-06-14 実測)- Node Exporter はポート
9100でメトリクスを公開し、Prometheus が15秒ごとに自動収集する - Prometheus Web UI(
:9090)で PromQL によるリアルタイム検索ができる - Grafana のダッシュボード ID
1860(Node Exporter Full)をインポートすればすぐにグラフ可視化できる - Ubuntu 22.04 から 24.04 に移行すると Node Exporter が 1.3.1 → 1.7.0 に大幅アップグレードされる
監視環境が整ったら、自分のVPSでも同じ構成を試してみましょう。Vultr の東京リージョン(最安 $5/月〜)ならレイテンシも小さく、このスタックも快適に動きます。
VPS選びについては下記も参考にしてみてください。
[LINK_ubuntu-vps-2026-comparison_ARTICLE]



コメント