scripts/node-exporter-install.sh
2025-08-03 10:20:13 +02:00

54 lines
1.4 KiB
Bash
Executable File

#!/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 <<EOF >/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 <<EOF >/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