Awesome Open Source
Awesome Open Source

node-exporter

Latest Version Build Status Docker Stars Docker Pulls

Containerized, multiarch version of node-exporter, used for Prometheus monitoring. Multi-stage build is used to build from official node-exporter source code. Designed to be usable within x86-64, arm64, armv6, and armv7 based Docker Swarm clusters. Added support for correct reporting of the underlying node hostname

Automated Build and Deploy

This repository utilizes GitHub Actions to automatically build and deploy multiarch images to DockerHub when a new tag is pushed.

Build and Deploy multiarch image locally

Setup local environment to support Docker experimental feature for building multi architecture images, buildx. Follow instructions here

Clone repo:

$ git clone https://github.com/jmb12686/node-exporter
$ cd node-exporter 

Build multiarch image:

$ docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v6 -t jmb12686/node-exporter:latest --push .

Usage

Use in docker-compose swarm stack similar to base image for prom/node-exporter, but added:

  • NODE_ID as environment variable
  • mount /etc/hostname of underlying host to /etc/nodename in the container.
  • Entrypoint script within container will use /etc/nodename and NODE_ID to create custom data attributes and put config in /etc/node-exporter.
  • node-name and node-id attributes are exposed in node-exporter
services:
  .....
  node-exporter:
    image: jmb12686/node-exporter:latest 
    networks:
      - net
    environment:
      - NODE_ID={{.Node.ID}}
    ports:
      - 9100:9100
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
      - /etc/hostname:/etc/nodename:ro
    command:
      - '--path.sysfs=/host/sys'
      - '--path.procfs=/host/proc'
      - '--path.rootfs=/rootfs'
      - '--collector.textfile.directory=/etc/node-exporter/'
      - '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc)($$|/)'
      - '--no-collector.ipvs'
    deploy:
      mode: global
      resources:
        limits:
          memory: 32M


Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Docker (96,992
Deployment (57,894
Dockerfile (26,351
Monitoring (11,769
Prometheus (5,942
Swarm (3,597
Docker Swarm (877
Multiarch (75
Multi Arch Images (24