Ubuntu 26.04 のホスト状態を Prometheus で収集する場合、各サーバーに node_exporter を導入すると、CPU、メモリ、ディスク、ネットワーク、systemd 周辺の基本メトリクスを取得できます。
この記事では、Ubuntu パッケージの prometheus-node-exporter を使い、/etc/default/prometheus-node-exporter、ARGS、prometheus-node-exporter.service、/metrics の確認ポイントをまとめます。
prometheus-node-exporterの導入/etc/default/prometheus-node-exporterのARGSprometheus-node-exporter.serviceの状態確認- 9100 番ポートと
/metricsの確認 - Prometheus から scrape する前に見る項目
| 対象 OS | Ubuntu 26.04 Server |
|---|---|
| パッケージ | prometheus-node-exporter |
| サービス | prometheus-node-exporter.service |
| 設定ファイル | /etc/default/prometheus-node-exporter |
| 既定ポート | 9100/tcp |
node_exporter の役割を確認する
node_exporter は、Linux ホストの状態を Prometheus 形式のメトリクスとして公開する exporter です。アプリケーションのメトリクスではなく、OS やホストリソースの状態を見るための入口になります。
- CPU、メモリ、ディスク、ファイルシステム、ネットワークの状態を公開する
- Prometheus が HTTP で
/metricsを scrape する - 既定では TCP 9100 番で待ち受ける
- 公開範囲はファイアウォールや待ち受けアドレスで制御する
- 収集できることと監視設計は分けて考える
node_exporter をインストールする
Ubuntu のパッケージとして prometheus-node-exporter を導入します。導入後は systemd サービスとして管理します。
sudo apt update
sudo apt install -y prometheus-node-exporter
systemctl status prometheus-node-exporter.service --no-pager
prometheus-node-exporter --versionARGS を確認する
Ubuntu パッケージでは、追加引数を /etc/default/prometheus-node-exporter の ARGS で指定できます。まずは空のまま起動し、必要になった時点で collector や除外設定を追加します。
ARGS=待ち受けポートを確認する
node_exporter は HTTP でメトリクスを公開します。既定では 9100 番ポートを使うため、待ち受け状態とローカルアクセスを確認します。
ss -lntp | grep 9100
curl -s http://127.0.0.1:9100/metrics | head
curl -s http://127.0.0.1:9100/metrics | grep '^node_uname_info'サービスとログを確認する
起動しない場合やメトリクスが取得できない場合は、systemd の状態と journal を確認します。
systemctl is-enabled prometheus-node-exporter.service
systemctl status prometheus-node-exporter.service --no-pager
journalctl -u prometheus-node-exporter.service --no-pager -n 100外部からの到達性を確認する
Prometheus から scrape するには、Prometheus 側から node_exporter の 9100 番へ到達できる必要があります。複数 NIC のサーバーでは、どのインターフェイスで公開するかを先に決めます。
ip address
ip route
curl -s http://192.0.2.10:9100/metrics | head
sudo nft list rulesetPrometheus 側の scrape 設定例
Prometheus 側では、node_exporter の対象ホストを scrape target として登録します。実際の Prometheus 設定は環境により異なりますが、最低限、対象ホスト名、IP アドレス、ポート、ラベルを管理します。
scrape_configs:
- job_name: "node"
static_configs:
- targets:
- "server01.example.com:9100"
- "server02.example.com:9100"
labels:
role: "ubuntu-server"公開範囲を制限する
/metrics にはホスト名、デバイス名、マウントポイントなど運用上の情報が含まれます。インターネットへ公開せず、監視ネットワークや Prometheus サーバーからだけ到達できるようにします。
sudo nft list ruleset
ss -lntp | grep 9100
curl -s http://127.0.0.1:9100/metrics | grep '^node_filesystem_size_bytes'確認ポイント
prometheus-node-exporterが導入されているprometheus-node-exporter.serviceが active になっている/etc/default/prometheus-node-exporterのARGSを把握している- TCP 9100 番で待ち受けている
/metricsからnode_uname_infoなどを取得できる- Prometheus サーバーから対象ホストへ到達できる
- nftables やネットワーク境界で公開範囲を制限している
まとめ
Ubuntu 26.04 の node_exporter 基本設定では、prometheus-node-exporter を導入し、prometheus-node-exporter.service、/etc/default/prometheus-node-exporter、TCP 9100 番、/metrics を確認します。
node_exporter はホスト監視の入口です。収集できる状態を作るだけでなく、Prometheus からの到達性、公開範囲、ラベル設計、アラート設計まで分けて考えると、運用で使いやすい監視基盤になります。

