#!/bin/bash set -e VERSION=$(curl -s https://api.github.com/repos/prometheus/node_exporter/releases | python3 -c 'import json,sys;print(json.load(sys.stdin)[0]["tag_name"])' | sed 's/v//') OS=$(uname -s | tr '[:upper:]' '[:lower:]') ARCH=$(uname -m | sed 's/x86_/amd/') trap "rm -rf node_exporter-*" EXIT pushd /tmp filename="node_exporter-${VERSION}.${OS}-${ARCH}.tar.gz" echo "Downloading version ${filename}" wget https://github.com/prometheus/node_exporter/releases/download/v${VERSION}/$filename tar xvfz $filename cd node_exporter-*/ chmod +x ./node_exporter mv ./node_exporter /usr/sbin/ cat </etc/systemd/system/node_exporter.service [Unit] Description=Node Exporter Requires=node_exporter.socket [Service] User=node_exporter Environment=OPTIONS= EnvironmentFile=-/etc/sysconfig/node_exporter ExecStart=/usr/sbin/node_exporter --web.systemd-socket $OPTIONS [Install] WantedBy=multi-user.target EOF cat </etc/systemd/system/node_exporter.socket [Unit] Description=Node Exporter [Socket] ListenStream=9100 [Install] WantedBy=sockets.target EOF useradd -r node_exporter mkdir -p /var/lib/node_exporter/textfile_collector chown -R node_exporter:node_exporter /var/lib/node_exporter echo 'OPTIONS="--collector.textfile.directory /var/lib/node_exporter/textfile_collector"' > /etc/node_exporter.env systemctl enable node_exporter.service systemctl start node_exporter.service popd