Add the secret sauce
This commit is contained in:
parent
149e3193d0
commit
8dcb6413ed
15
Dockerfile
Normal file
15
Dockerfile
Normal file
@ -0,0 +1,15 @@
|
||||
FROM alpine AS build
|
||||
|
||||
RUN apk add --no-cache \
|
||||
smartmontools \
|
||||
jq \
|
||||
nvme-cli \
|
||||
bash \
|
||||
hwids-pci
|
||||
|
||||
COPY node-exporter-textfile-collector-scripts /scripts
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
COPY bridge.sh /scripts/
|
||||
RUN chmod +x /scripts/bridge.sh
|
||||
RUN chmod +x /entrypoint.sh
|
||||
ENTRYPOINT /entrypoint.sh
|
17
README.md
Normal file
17
README.md
Normal file
@ -0,0 +1,17 @@
|
||||
# Background
|
||||
|
||||
Ubuntu packages are outdated and getting textfile collectors working is a hassle.
|
||||
This is the only sane option for running Prometheus Node Exporter with textfile collectors
|
||||
such as SMART metrics, NVMe metrics etc.
|
||||
|
||||
|
||||
# Deploying
|
||||
|
||||
See supplied `docker-compose.yml`
|
||||
|
||||
|
||||
# Security
|
||||
|
||||
Don't forget to add some `iptables` rules for protecting the node exporter endpoint.
|
||||
|
||||
![Still waiting for bearer token](https://imgflip.com/i/5d21t5)
|
9
bridge.sh
Normal file
9
bridge.sh
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
echo "# HELP node_bridge_members How many member interfaces bridge has"
|
||||
echo "# TYPE node_bridge_members gauge"
|
||||
|
||||
for BRIDGE in $(ls /sys/devices/virtual/net); do
|
||||
if [ -e /sys/devices/virtual/net/$BRIDGE/brif ]; then
|
||||
echo node_bridge_members{bridge=\"$BRIDGE\"} $(/bin/ls -1 /sys/devices/virtual/net/$BRIDGE/brif 2>/dev/null | wc -l)
|
||||
fi
|
||||
done
|
25
docker-compose.yml
Normal file
25
docker-compose.yml
Normal file
@ -0,0 +1,25 @@
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
app:
|
||||
restart: always
|
||||
image: quay.io/prometheus/node-exporter:latest
|
||||
command:
|
||||
- --path.rootfs=/host
|
||||
- --collector.textfile.directory=/host/run/node-exporter
|
||||
network_mode: host
|
||||
pid: host
|
||||
restart: always
|
||||
volumes:
|
||||
- '/:/host:ro,rslave'
|
||||
|
||||
collectors:
|
||||
image: kspaceee:prometheus-textfile-collectors
|
||||
restart: always
|
||||
network_mode: none
|
||||
privileged: true
|
||||
volumes:
|
||||
- '/dev:/dev'
|
||||
- '/sys:/sys:ro,rslave'
|
||||
- '/run/node-exporter:/run/node-exporter'
|
||||
|
8
entrypoint.sh
Normal file
8
entrypoint.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
while true; do
|
||||
/scripts/smartmon.sh > /run/node-exporter/smart.prom
|
||||
/scripts/nvme_metrics.sh > /run/node-exporter/nvme.prom
|
||||
/scripts/bridge.sh > /run/node-exporter/bridge.prom
|
||||
/scripts/ipmitool > /run/node-exporter/impitool.prom
|
||||
sleep 15
|
||||
done
|
Loading…
Reference in New Issue
Block a user