ConfigsApr 23, 2026·3 min read

Prometheus Node Exporter — Hardware and OS Metrics for Unix Systems

Node Exporter is the official Prometheus exporter for machine-level metrics, exposing CPU, memory, disk, filesystem, and network statistics from Linux and other Unix systems via an HTTP endpoint.

Introduction

Node Exporter is the standard way to feed host-level metrics into Prometheus. It reads data from Linux pseudo-filesystems (/proc, /sys) and exposes hundreds of hardware and kernel metrics on a single HTTP endpoint that Prometheus scrapes.

What Node Exporter Does

  • Exposes CPU usage per core and per mode (user, system, idle, iowait)
  • Reports memory, swap, and hugepage statistics from /proc/meminfo
  • Tracks disk I/O, filesystem space, and mount-point health
  • Monitors network interface bytes, packets, errors, and drops
  • Provides thermal, power supply, and hardware sensor readings via sysfs

Architecture Overview

Node Exporter is a single Go binary that registers a set of collectors. Each collector reads from a specific Linux subsystem (procfs, sysfs, ethtool, etc.) and emits Prometheus-format metrics. Collectors are enabled or disabled via CLI flags. The binary listens on port 9100 and responds to GET /metrics with a text exposition of all enabled collectors.

Self-Hosting & Configuration

  • Run as a systemd service with --web.listen-address=:9100
  • Disable unneeded collectors with --no-collector.<name> flags
  • Enable optional collectors like systemd, processes, or tcpstat explicitly
  • Use --collector.textfile.directory to expose custom metrics from cron jobs
  • Deploy as a Kubernetes DaemonSet using the Prometheus community Helm chart

Key Features

  • 40+ built-in collectors covering CPU, memory, disk, network, and more
  • Textfile collector: drop .prom files to expose custom batch metrics
  • TLS and basic auth support for secure metric endpoints
  • Low overhead: typically under 15 MB RSS and negligible CPU
  • Pairs with Grafana's Node Exporter Full dashboard for instant visibility

Comparison with Similar Tools

  • Telegraf — push-based, multi-output; Node Exporter is Prometheus-native pull
  • cAdvisor — container-level metrics; Node Exporter covers the host OS
  • collectd — plugin-based collector; Node Exporter is simpler, single-purpose
  • Netdata — real-time dashboard included; Node Exporter is headless, pairs with Grafana

FAQ

Q: Does Node Exporter work on macOS or Windows? A: macOS is partially supported. Windows has a separate project: windows_exporter.

Q: How do I add custom metrics? A: Write a script that outputs Prometheus text format to a .prom file in the textfile directory. Node Exporter serves them automatically.

Q: What is the scrape performance impact? A: A typical scrape takes 50-200 ms and produces 1-3 MB of text. Impact on the host is negligible.

Q: Can I filter which metrics Prometheus collects? A: Yes. Use metric_relabel_configs in Prometheus or --collector.disable-defaults with explicit --collector.<name> flags.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets