add node exporter textfile collector script

get ip adress and info
get docker container info
write to .prom file for prometheus

asd
This commit is contained in:
lucas committed 2026-10-04 14:13:38 +00:00
1 parent ab80645034
commit b588773026
2 files changed
+109 -68

No files matched your search

+32
View File
@@ -0,0 +1,32 @@
#!/bin/bash
OUT=/docker/monitoring/node_exporter/textfile_collector/custom.prom
TS=$(date +%s%3N)
{
# Docker container states
docker ps -a --format '{{.Names}}' | while read -r name; do
if docker inspect -f '{{.State.Running}}' "$name" 2>/dev/null | grep -q true; then
echo "docker_container_state{name=\"$name\"} 1"
else
echo "docker_container_state{name=\"$name\"} 0"
fi
done
# Public IP information
IP_JSON=$(curl -fsSL http://ip-api.com/json)
IP=$(jq -r '.query' <<< "$IP_JSON")
COUNTRY=$(jq -r '.country' <<< "$IP_JSON")
CITY=$(jq -r '.city' <<< "$IP_JSON")
ISP=$(jq -r '.isp' <<< "$IP_JSON" | sed 's/"/\\"/g')
COUNTRYCODE=$(jq -r '.countryCode' <<< "$IP_JSON")
LAT=$(jq -r '.lat' <<< "$IP_JSON")
LON=$(jq -r '.lon' <<< "$IP_JSON")
echo "public_ip_info{ip=\"$IP\",country=\"$COUNTRY\",city=\"$CITY\",isp=\"$ISP\",countrycode=\"$COUNTRYCODE\",lat=\"$LAT\",lon=\"$LON\"} 1"
echo "custom_metrics_last_update_timestamp_seconds $(date +%s)"
} > "$OUT.$$"
mv "$OUT.$$" "$OUT"