-
Docker
Install docker: tutorial
-
Prometheus
sudo mkdir -p /opt/stacks/monitoring
cd /opt/stacks/monitoring
sudo nano compose.yml
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
ports:
- "9090:9090"
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- ./prometheus/data:/prometheus
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./grafana-data:/var/lib/grafana
node-exporter:
image: prom/node-exporter:v1.9.1
container_name: node-exporter
restart: unless-stopped
network_mode: host
pid: host
command:
- '--path.rootfs=/host'
volumes:
- '/:/host:ro,rslave'
docker compose up -d
docker ps
test
-
Grafana
test
-
Hosts
nano ~/install-node-exporter.sh
#!/bin/bash
set -euo pipefail
VERSION="1.9.1"
case "$(uname -m)" in
armv7l)
ARCH="armv7"
;;
aarch64)
ARCH="arm64"
;;
*)
echo "Nicht unterstützte Architektur: $(uname -m)"
exit 1
;;
esac
FILE="node_exporter-${VERSION}.linux-${ARCH}.tar.gz"
DIR="node_exporter-${VERSION}.linux-${ARCH}"
URL="https://github.com/prometheus/node_exporter/releases/download/v${VERSION}/${FILE}"
echo "Installiere Node Exporter ${VERSION} für ${ARCH} ..."
if ! id node_exporter >/dev/null 2>&1; then
sudo useradd --system \
--no-create-home \
--shell /usr/sbin/nologin \
node_exporter
fi
TMPDIR="$(mktemp -d)"
trap 'rm -rf "$TMPDIR"' EXIT
cd "$TMPDIR"
wget -q --show-progress "$URL"
tar -xzf "$FILE"
sudo install -o root -g root -m 0755 \
"${DIR}/node_exporter" \
/usr/local/bin/node_exporter
sudo tee /etc/systemd/system/node_exporter.service >/dev/null <<'EOF'
[Unit]
Description=Prometheus Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter
echo
/usr/local/bin/node_exporter --version
echo
systemctl --no-pager --full status node_exporter
chmod +x ~/install-node-exporter.sh
bash install-node-exporter.sh
-
add targets
cd /opt/stacks/monitoring/prometheus
sudo nano prometheus.yml
- targets:
- 192.168.6.[IP]:9100
labels:
hostname: [hostname]
docker compose restart prometheus
-