手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 node_exporter の基本設定 – Prometheus でホストメトリクスを収集する

Ubuntu 26.04 で node_exporter を導入し、Prometheus からホストメトリクスを収集できる状態にするための基本設定を整理します。node_exporter は、CPU、memory、disk、filesystem、network など、Linux ホスト側の状態を Prometheus 形式で公開する exporter です。

この記事では、Prometheus サーバーそのものの構築ではなく、監視対象ホスト側に prometheus-node-exporter を入れて、9100/tcp でメトリクスを取得できる状態にするところまでを扱います。

Ubuntu 26.04 運用確認の関連記事

node_exporter の位置づけ

node_exporter は、監視対象の Linux ホスト上で動作し、Prometheus が scrape するための HTTP endpoint を公開します。Zabbix のように監視サーバー側へホストを登録していく発想とは少し違い、Prometheus 側が対象 endpoint を定期的に取りに行く構成になります。

項目 内容
役割Linux ホストのメトリクスを Prometheus 形式で公開する
主な port9100/tcp
Ubuntu packageprometheus-node-exporter
serviceprometheus-node-exporter.service
設定ファイル/etc/default/prometheus-node-exporter

重要なのは、node_exporter が「監視の完成形」ではなく、ホスト状態を取得するための部品であることです。アラート条件、ダッシュボード、障害時に見る順序は Prometheus / Alertmanager / Grafana 側で別途設計します。

package をインストールする

Ubuntu 26.04 では、APT から prometheus-node-exporter を導入できます。まず package を入れ、systemd service として扱える状態にします。

sudo apt update
sudo apt install -y prometheus-node-exporter

package 名は node_exporter ではなく prometheus-node-exporter です。サービス名も Ubuntu package の名前に合わせて prometheus-node-exporter.service になります。

起動引数を確認する

Ubuntu の package では、起動引数は /etc/default/prometheus-node-exporter で管理します。最小構成では ARGS を空にして、package 標準の collector と listen 設定を使います。

sudo tee /etc/default/prometheus-node-exporter >/dev/null <<'EOF'
ARGS=""
EOF
sudo systemctl restart prometheus-node-exporter.service

ARGS は、collector の追加・除外や listen address の変更が必要な場合に使います。最初から複雑な引数を入れるより、まず標準状態で何が取れるかを確認し、必要に応じて絞り込む方が安全です。

listen address を制限する場合

管理 network だけから scrape させたい場合は、--web.listen-address で待ち受け address を明示できます。環境によって interface address は異なるため、次は例です。

sudo tee /etc/default/prometheus-node-exporter >/dev/null <<'EOF'
ARGS="--web.listen-address=10.0.0.10:9100"
EOF
sudo systemctl restart prometheus-node-exporter.service

全 interface で待ち受ける場合でも、公開 network にそのまま出すべきではありません。Prometheus サーバーや監視 network からだけ到達できるように、firewall、security group、経路制御のいずれかで制限します。

service を有効化する

インストール後は systemd service として起動し、再起動後にも自動起動するようにします。

sudo systemctl enable --now prometheus-node-exporter.service
systemctl status prometheus-node-exporter.service

systemctl status では、service が active (running) になっていることを確認します。起動できない場合は、まず設定ファイルの引用符や起動引数の誤りを疑います。

metrics endpoint を確認する

node_exporter は HTTP でメトリクスを公開します。ローカルホストから 9100/tcp の待ち受けと /metrics の応答を確認します。

ss -ltnp | grep ':9100'
curl -s http://127.0.0.1:9100/metrics | head

/metrics には多数の行が出力されます。node_cpu_seconds_totalnode_memory_MemAvailable_bytesnode_filesystem_avail_bytes などが見えれば、ホストメトリクスを公開できています。

Prometheus 側から scrape する

Prometheus から収集する場合は、Prometheus 側の scrape target に対象ホストの 9100/tcp を追加します。次は静的に 1 台を指定する最小例です。

scrape_configs:
  - job_name: node
    static_configs:
      - targets:
          - ubuntu.example.internal:9100

実運用では、ホスト名、site、role、environment などを label として整理すると、Grafana の dashboard や alert rule で扱いやすくなります。ただし、label を増やしすぎると運用上の意味が薄くなるため、検索・集計・障害切り分けに使う単位に絞ります。

確認する観点

node_exporter を入れた後は、service が起動しているかだけでなく、Prometheus が実際に scrape できているかを確認します。監視対象ホストから見える状態と、監視サーバーから見える状態は同じではありません。

  • prometheus-node-exporter.service が起動しているか
  • 9100/tcp が意図した address で待ち受けているか
  • Prometheus サーバーから対象ホストの 9100/tcp に到達できるか
  • /metrics の応答が返るか
  • Prometheus の target 画面で UP になっているか
  • 公開 network から意図せず到達できないか

公開範囲を広げすぎない

node_exporter は認証機能を前提にした公開サービスではありません。取得できる情報は、ホスト名、filesystem、network interface、CPU、memory などの運用情報を含みます。外部公開するものではなく、監視基盤から到達できる範囲に閉じるべきです。

監視のために endpoint を増やすことは必要ですが、同時に攻撃対象領域も増えます。特にクラウドや複数 network interface を持つサーバーでは、どの address で待ち受けるのか、どの経路から到達できるのかを確認します。

まとめ

Ubuntu 26.04 で node_exporter を使う場合、基本は prometheus-node-exporter package を導入し、/etc/default/prometheus-node-exporter で起動引数を管理し、prometheus-node-exporter.service を有効化する流れです。

node_exporter は、ホストメトリクスを収集するための入口です。これだけで監視設計が完成するわけではありません。どのホストを対象にするのか、どの label で整理するのか、どの値を alert に使うのか、どの dashboard で状態を見るのかまで含めて、Prometheus / Grafana 側の設計につなげる必要があります。

Ubuntu 26.04 運用確認の関連記事
Ubuntu 26.04 node_exporter の基本設定 – Prometheus でホストメトリクスを収集する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る