Jenkins + Minio + Prometheus + Grafana v1

This commit is contained in:
2026-09-01 13:42:14 +00:00
commit 05a197b0d0
21 changed files with 2256 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
#!/bin/bash
set -euo pipefail
GRAFANA_URL=http://localhost:3000
GRAFANA_USER=admin
GRAFANA_PASS=holamundo
BACKUP_DIR=/opt/server/backups/grafana_dashboards
KEEP=4
mkdir -p "$BACKUP_DIR"
STAMP=$(date +%Y%m%d)
TMP_DIR=$(mktemp -d)
trap 'rm -rf "$TMP_DIR"' EXIT
curl -sf -u "$GRAFANA_USER:$GRAFANA_PASS" "$GRAFANA_URL/api/search?type=dash-db" \
| jq -r '.[].uid' \
| while read -r uid; do
dashboard_json=$(curl -sf -u "$GRAFANA_USER:$GRAFANA_PASS" "$GRAFANA_URL/api/dashboards/uid/$uid")
title=$(jq -r '.dashboard.title' <<< "$dashboard_json")
safe_title=$(echo "$title" | tr -c 'A-Za-z0-9' '_' | sed 's/_\+/_/g; s/^_//; s/_$//')
echo "$dashboard_json" > "$TMP_DIR/${safe_title}__${uid}.json"
done
tar czf "$BACKUP_DIR/grafana_dashboards_$STAMP.tar.gz" -C "$TMP_DIR" .
ls -1t "$BACKUP_DIR"/grafana_dashboards_*.tar.gz | tail -n +$((KEEP + 1)) | xargs -r rm --