Prometheusとnode_exporterのセットアップガイド

15分で読めます - 2026年5月29日

hero section cover
目次
  • Prometheus および node_exporter によるサーバー監視の設定
  • node_exporterのインストール
  • node_exporterをsystemdサービスとして実行する
  • Prometheus を設定して node_exporter からデータを収集する
  • 監視スタックのセキュリティ確保
  • 監視のベストプラクティスと今後の手順
  • トラブルシューティング
共有

Prometheusとnode_exporterをインストールし、スクレイプターゲットを設定し、systemdサービスをセットアップし、監視スタックを保護する。Linux用のステップバイステップ。

Prometheus および node_exporter によるサーバー監視の設定

Prometheusは時系列メトリクスをスクレイピングして保存します。node_exporterは、Prometheusが収集できるように、CPU、メモリ、ディスク使用率などのシステムレベルのデータを公開します。このガイドでは、両方のインストール、スクレイピング対象の設定、node_exporterをsystemdサービスとして実行する方法、およびアクセス権限の制限について説明します。

node_exporterのインストール

公式の GitHub リリースページから最新の安定版をダウンロードしてください。2026年5月現在、バージョン 1.11.1 です。 amd64arm64 に置き換えてください。

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_totalnode_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のセットアップガイド

Prometheusとnode_exporterをインストールし、スクレイプターゲットを設定し、systemdサービスをセットアップし、監視スタックを保護する。Linux用のステップバイステップ。

15分で読めます - 2026年5月29日

Linuxパケット処理のためのXDPとeBPF

14分で読めます - 2026年5月27日

その他の記事
background image

ご質問またはカスタムソリューションが必要ですか?

icon

柔軟なオプション

icon

グローバル・リーチ

icon

即時展開

icon

柔軟なオプション

icon

グローバル・リーチ

icon

即時展開