54 lines
1.4 KiB
Bash
Executable File
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
|