Essential Ops Guide: Configuring Host Metrics Monitoring with Node Exporter and SkyWalking
This guide walks through setting up host‑level metric collection by installing Prometheus Node Exporter, configuring OpenTelemetry Collector Contrib to translate metrics, and integrating them into SkyWalking 10.3 so you can view infrastructure data in the SkyWalking Web UI.
Preparation
SkyWalking version 10.3
OpenTelemetry Collector Contrib otelcol-contrib_0.143.1_linux_amd64 Prometheus Node Exporter
node_exporter-1.10.2.linux-amd64.tarPrinciple
SkyWalking cannot scrape Node Exporter metrics directly. An OpenTelemetry Collector pulls the Prometheus metrics from Node Exporter and forwards them to the SkyWalking OAP server via OTLP. Data flow: Node Exporter → OpenTelemetry Collector (Prometheus receiver) → SkyWalking OAP (MAL engine) → SkyWalking Web UI.
Step 1 – Install Prometheus Node Exporter
# Move binary to a global location
sudo mv node_exporter-1.10.2.linux-amd64/node_exporter /usr/local/bin/
# Make it executable
sudo chmod +x /usr/local/bin/node_exporter
# Create a non‑root user for security
sudo useradd -rs /sbin/nologin node_exporter
# Create systemd service file
sudo vim /etc/systemd/system/node-exporter.service
[Unit]
Description=Node Exporter - Linux host metrics collection
Documentation=https://prometheus.io/docs/guides/node-exporter/
After=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter \
--web.listen-address=0.0.0.0:9100
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target # Reload systemd, start the service, enable at boot, verify status
sudo systemctl daemon-reload
sudo systemctl start node-exporter
sudo systemctl enable node-exporter
sudo systemctl status node-exporter
# Local test
curl http://127.0.0.1:9100/metrics
# Remote test (replace with server IP)
curl http://<your-server-ip>:9100/metricsStep 2 – Adjust SkyWalking OAP configuration
The file /config/otel-oc-rules/vm.yaml defines metric processing rules for the VM (virtual machine) monitoring scenario.
Step 3 – Install OpenTelemetry Collector Contrib and configure Prometheus receiver
extensions:
health_check:
receivers:
prometheus:
config:
scrape_configs:
- job_name: 'vm-monitoring' # must match VM rule filter
scrape_interval: 10s
static_configs:
- targets: ['<nodeexporter-address>:9100']
labels:
job_name: 'vm-monitoring' # add job_name label
processors:
# No metric name conversion, keep node_ prefix
# transform: # commented out
resource:
attributes:
- key: service.name
value: "vm::my-server"
action: upsert
- key: node_identifier_host_name
value: "${HOSTNAME}" # or a custom name
action: upsert
- key: layer
value: "OS_LINUX"
action: upsert
batch:
exporters:
otlp:
endpoint: "<skywalking-oap-address>:11800"
tls:
insecure: true
debug:
verbosity: detailed
service:
pipelines:
metrics:
receivers: [prometheus]
processors: [resource, batch] # transform removed
exporters: [otlp, debug]Step 4 – Run the collector and view results
Start the collector binary otelcol-contrib. After it connects to the SkyWalking OAP server, host metrics appear in the SkyWalking UI under the infrastructure section.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
xkx's Tech General Store
Code with the left hand, enjoy with the right; a keystroke sweeps away worries.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
