Installation node exporter

Nous créons le compte prometheus

sudo useradd -M -r -s /bin/false prometheus

Nous téléchargeons le binaire depuis le site prometheus.io

wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz

Nous décompressons l'archive et plaçons le binaire dans /etc/local/bin

tar xzf node_exporter-1.1.2.linux-amd64.tar.gz
sudo chown -v prometheus: node_exporter-1.1.2.linux-amd64/node_exporter
sudo mv node_exporter /usr/local/bin/

Nous créons le fichier d'arguments

sudo vi /etc/default/prometheus-node-exporter

Nous y ajoutons le contenu suivant

# Set the command-line arguments to pass to the server.
# Due to shell scaping, to pass backslashes for regexes, you need to double
# them (\\d for \d). If running under systemd, you need to double them again
# (\\\\d to mean \d), and escape newlines too.
ARGS=""

# Prometheus-node-exporter supports the following options:
#
#  --collector.diskstats.ignored-devices="^(ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\\d+n\\d+p)\\d+$"
#                            Regexp of devices to ignore for diskstats.
#  --collector.filesystem.ignored-mount-points="^/(dev|proc|run|sys|mnt|media|var/lib/docker)($|/)"
#                            Regexp of mount points to ignore for filesystem
#                            collector.
#  --collector.filesystem.ignored-fs-types="^(autofs|binfmt_misc|cgroup|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|sysfs|tracefs)$"
#                            Regexp of filesystem types to ignore for
#                            filesystem collector.
#  --collector.netdev.ignored-devices="^lo$"
#                            Regexp of net devices to ignore for netdev
#                            collector.
#  --collector.netstat.fields="^(.*_(InErrors|InErrs)|Ip_Forwarding|Ip(6|Ext)_(InOctets|OutOctets)|Icmp6?_(InMsgs|OutMsgs)|TcpExt_(Listen.*|Syncookies.*)|Tcp_(ActiveOpens|PassiveOpens|RetransSegs|CurrEstab)|Udp6?_(InDatagrams|OutDatagrams|NoPorts))$"
#                            Regexp of fields to return for netstat
#                            collector.
#  --collector.ntp.server="127.0.0.1"
#                            NTP server to use for ntp collector
#  --collector.ntp.protocol-version=4
#                            NTP protocol version
#  --collector.ntp.server-is-local
#                            Certify that collector.ntp.server address is the
#                            same local host as this collector.
#  --collector.ntp.ip-ttl=1  IP TTL to use while sending NTP query
#  --collector.ntp.max-distance=3.46608s
#                            Max accumulated distance to the root
#  --collector.ntp.local-offset-tolerance=1ms
#                            Offset between local clock and local ntpd time
#                            to tolerate
#  --path.procfs="/proc"     procfs mountpoint.
#  --path.sysfs="/sys"       sysfs mountpoint.
#  --collector.qdisc.fixtures=""
#                            test fixtures to use for qdisc collector
#                            end-to-end testing
#  --collector.runit.servicedir="/etc/service"
#                            Path to runit service directory.
#  --collector.supervisord.url="http://localhost:9001/RPC2"
#                            XML RPC endpoint.
#  --collector.systemd.unit-whitelist=".+"
#                            Regexp of systemd units to whitelist. Units must
#                            both match whitelist and not match blacklist to
#                            be included.
#  --collector.systemd.unit-blacklist=".+(\\.device|\\.scope|\\.slice|\\.target)"
#                            Regexp of systemd units to blacklist. Units must
#                            both match whitelist and not match blacklist to
#                            be included.
#  --collector.systemd.private
#                            Establish a private, direct connection to
#                            systemd without dbus.
#  --collector.textfile.directory="/var/lib/prometheus/node-exporter"
#                            Directory to read text files with metrics from.
#  --collector.vmstat.fields="^(oom_kill|pgpg|pswp|pg.*fault).*"
#                            Regexp of fields to return for vmstat collector.
#  --collector.wifi.fixtures=""
#                            test fixtures to use for wifi collector metrics
#  --collector.arp           Enable the arp collector (default: enabled).
#  --collector.bcache        Enable the bcache collector (default: enabled).
#  --collector.bonding       Enable the bonding collector (default: enabled).
#  --collector.buddyinfo     Enable the buddyinfo collector (default:
#                            disabled).
#  --collector.conntrack     Enable the conntrack collector (default:
#                            enabled).
#  --collector.cpu           Enable the cpu collector (default: enabled).
#  --collector.diskstats     Enable the diskstats collector (default:
#                            enabled).
#  --collector.drbd          Enable the drbd collector (default: disabled).
#  --collector.edac          Enable the edac collector (default: enabled).
#  --collector.entropy       Enable the entropy collector (default: enabled).
#  --collector.filefd        Enable the filefd collector (default: enabled).
#  --collector.filesystem    Enable the filesystem collector (default:
#                            enabled).
#  --collector.hwmon         Enable the hwmon collector (default: enabled).
#  --collector.infiniband    Enable the infiniband collector (default:
#                            enabled).
#  --collector.interrupts    Enable the interrupts collector (default:
#                            disabled).
#  --collector.ipvs          Enable the ipvs collector (default: enabled).
#  --collector.ksmd          Enable the ksmd collector (default: disabled).
#  --collector.loadavg       Enable the loadavg collector (default: enabled).
#  --collector.logind        Enable the logind collector (default: disabled).
#  --collector.mdadm         Enable the mdadm collector (default: enabled).
#  --collector.meminfo       Enable the meminfo collector (default: enabled).
#  --collector.meminfo_numa  Enable the meminfo_numa collector (default:
#                            disabled).
#  --collector.mountstats    Enable the mountstats collector (default:
#                            disabled).
#  --collector.netdev        Enable the netdev collector (default: enabled).
#  --collector.netstat       Enable the netstat collector (default: enabled).
#  --collector.nfs           Enable the nfs collector (default: enabled).
#  --collector.nfsd          Enable the nfsd collector (default: enabled).
#  --collector.ntp           Enable the ntp collector (default: disabled).
#  --collector.qdisc         Enable the qdisc collector (default: disabled).
#  --collector.runit         Enable the runit collector (default: disabled).
#  --collector.sockstat      Enable the sockstat collector (default:
#                            enabled).
#  --collector.stat          Enable the stat collector (default: enabled).
#  --collector.supervisord   Enable the supervisord collector (default:
#                            disabled).
#  --collector.systemd       Enable the systemd collector (default: enabled).
#  --collector.tcpstat       Enable the tcpstat collector (default:
#                            disabled).
#  --collector.textfile      Enable the textfile collector (default:
#                            enabled).
#  --collector.time          Enable the time collector (default: enabled).
#  --collector.uname         Enable the uname collector (default: enabled).
#  --collector.vmstat        Enable the vmstat collector (default: enabled).
#  --collector.wifi          Enable the wifi collector (default: enabled).
#  --collector.xfs           Enable the xfs collector (default: enabled).
#  --collector.zfs           Enable the zfs collector (default: enabled).
#  --collector.timex         Enable the timex collector (default: enabled).
#  --web.listen-address=":9100"
#                            Address on which to expose metrics and web
#                            interface.
#  --web.telemetry-path="/metrics"
#                            Path under which to expose metrics.
#  --log.level="info"        Only log messages with the given severity or
#                            above. Valid levels: [debug, info, warn, error,
#                            fatal]
#  --log.format="logger:stderr"
#                            Set the log target and format. Example:
#                            "logger:syslog?appname=bob&local=7" or
#                            "logger:stdout?json=true"

Nous créons le fichier systemd

sudo vi /etc/systemd/system/prometheus-node-exporter.service

Nous y ajoutons le contenu suivant

[Unit]
Description=Prometheus exporter for machine metrics
Documentation=https://github.com/prometheus/node_exporter

[Service]
Restart=always
User=prometheus
EnvironmentFile=/etc/default/prometheus-node-exporter
ExecStart=/usr/local/bin/node_exporter $ARGS
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=20s
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

Nous rechargeons la configuration du démon systemd

sudo systemctl daemon-reload

Nous activons et lançons le service

sudo systemctl enable --now prometheus-node-exporter

Pour s'assurer qu'il fonctionne bien, saisissez dans votre navigateur

http://monserveur:9100/metrics
  • infrastructure/supervision/prometheus/node-exporter-install.txt
  • Dernière modification : 24/05/2021 16:10
  • de Stéphane Paillet