Prometheusとnode_exporterのセットアップガイド
15分で読めます - 2026年5月29日

Prometheusとnode_exporterをインストールし、スクレイプターゲットを設定し、systemdサービスをセットアップし、監視スタックを保護する。Linux用のステップバイステップ。
Prometheus および node_exporter によるサーバー監視の設定
Prometheusは時系列メトリクスをスクレイピングして保存します。node_exporterは、Prometheusが収集できるように、CPU、メモリ、ディスク使用率などのシステムレベルのデータを公開します。このガイドでは、両方のインストール、スクレイピング対象の設定、node_exporterをsystemdサービスとして実行する方法、およびアクセス権限の制限について説明します。
node_exporterのインストール
公式の GitHub リリースページから最新の安定版をダウンロードしてください。2026年5月現在、バージョン 1.11.1 です。 amd64 を arm64 に置き換えてください。
wget https://github.com/prometheus/node_exporter/releases/download/v1.11.1/node_exporter-1.11.1.linux-amd64.tar.gz
リリースページに記載されている値とSHA256チェックサムを照合し、確認した後、解凍してインストールします:
tar -xzvf node_exporter-1.11.1.linux-amd64.tar.gz
sudo mv node_exporter-1.11.1.linux-amd64/node_exporter /usr/local/bin/
ホームディレクトリもログインシェルも持たない専用のシステムユーザーを作成します:
sudo useradd --no-create-home --shell /bin/false node_exporter
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
テストとして /usr/local/bin/node_exporter を直接実行してテストし、出力を確認してください:
curl http://localhost:9100/metrics
先頭に node_で始まる行が表示され、 node_cpu_seconds_total や node_memory_MemAvailable_bytesなどのメトリクスが含まれるはずです。デフォルトでは、node_exporterは約500のタイムシリーズを公開します。
node_exporterをsystemdサービスとして実行する
テスト目的であればターミナルから node_exporter を実行しても問題ありませんが、セッションを閉じると停止してしまいます。以下のパスにユニットファイルを作成してください /etc/systemd/system/node_exporter.service:
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
サービスを有効にして起動します:
sudo systemctl daemon-reload
sudo systemctl enable node_exporter
sudo systemctl start node_exporter
以下のコマンドで実行中であることを確認します sudo systemctl status node_exporterで実行中のことを確認します。出力には active (running).
Prometheusが同じホスト上で動作している場合は、 ExecStart 行を変更して、node_exporterをlocalhostのみにバインドします:
ExecStart=/usr/local/bin/node_exporter --web.listen-address="127.0.0.1:9100"
Prometheus を設定して node_exporter からデータを収集する
開く /etc/prometheus/prometheus.yml を開き、 scrape_configs:
scrape_configs:
- job_name: 'node_exporter'
scrape_interval: 15s
static_configs:
- targets: ['localhost:9100']
labels:
env: 'production'
The job_name は、クエリやダッシュボードにおけるソースを識別します。 targets は、node_exporterがリスニングしているホストとポートを指します。 env は、後でメトリクスをフィルタリングするのに役立ちます。
再起動する前に設定を検証してください:
promtool check config /etc/prometheus/prometheus.yml
検証に成功した場合、ダウンタイムなしでPrometheusを再読み込みします:
sudo systemctl reload prometheus
[Open] http://<your-prometheus-ip>:9090を開き、[Status] > [Targets] に移動して、node_exporter ジョブが緑色の [UP] ステータスになっていることを確認します。Expression Browser で node_cpu_seconds_total のような簡単なクエリを実行し、データが正常に流れていることを確認します。
監視スタックのセキュリティ確保
ポート 9090 または 9100 をインターネットに公開しないでください。Ubuntu/Debian では、Prometheus サーバーの IP アドレスへの node_exporter のアクセスを制限してください:
sudo ufw allow from <prometheus-ip> to any port 9100
firewalld を使用する CentOS/RHEL の場合:
firewall-cmd --permanent --add-port=9100/tcp
PrometheusのWeb UIについては、Nginxなどのリバースプロキシの背後(ベーシック認証とTLSを有効化)に配置してください。ポートを直接公開せずに複数の場所からアクセスする必要がある場合は、TailscaleのようなメッシュVPNも選択肢の一つです。
監視のベストプラクティスと今後の手順
「Use」 node_memory_MemAvailable_bytes を使用し、 MemFree を使用してください。 MemAvailable バッファやキャッシュを考慮することで、実際に利用可能な容量をより正確に把握できます。
不要なコレクター(wifi、nfs、bcache)は、 --no-collector.<name> フラグを使用して不要なコレクタ(wifi、nfs、bcache)を無効にし、ノイズを減らします。
ディスク容量のアラートについては、 predict_linear PromQL 関数を使用すると、現在の傾向に基づいてボリュームがいつ満杯になるかを予測できます。予測期間を 7 日間に設定することで、スローリークがサービス停止につながる前に検出できます。
複数のサーバーを監視するには、各マシンに node_exporter をインストールし、その IP アドレスを targets リストに追加します prometheus.ymlリストに追加します。大規模な環境では、IPをハードコーディングする代わりに、ファイルベースのサービスディスカバリーに切り替えてください。
Grafanaを追加すると、視覚的なダッシュボードが利用可能になります。「Node Exporter Full」ダッシュボード(ID 1860)は、良い出発点となります。Alertmanagerは、重大なアラートをSlack、メール、またはPagerDutyに転送します。
FDCの専用サーバーおよびVPSプランは、Prometheusとnode_exporterを標準でサポートしています。FDCの専用サーバーオプションをご覧ください。
トラブルシューティング
| 問題 | 考えられる原因 | 確認用コマンド |
|---|---|---|
| サービスが起動しない | バイナリのパスまたは権限が間違っている | journalctl -u node_exporter -xe |
| メトリクスに到達できない | ファイアウォールがポート9100をブロックしている、またはバインドアドレスが間違っている | ss -lntp | grep 9100 |
| Prometheusでターゲットがダウンしている | ネットワークの問題、またはprometheus.yml内のターゲットIPが間違っている | curl -I http://<target-ip>:9100/metrics |
| 特定のメトリクスが欠落しています | コレクターがデフォルトで無効化されている | node_exporter --help |

Prometheusとnode_exporterのセットアップガイド
Prometheusとnode_exporterをインストールし、スクレイプターゲットを設定し、systemdサービスをセットアップし、監視スタックを保護する。Linux用のステップバイステップ。
15分で読めます - 2026年5月29日
Linuxパケット処理のためのXDPとeBPF
14分で読めます - 2026年5月27日

ご質問またはカスタムソリューションが必要ですか?
柔軟なオプション
グローバル・リーチ
即時展開
柔軟なオプション
グローバル・リーチ
即時展開