feat(proxmox): --pve-node/--pve-url, additional_vmstats_tags, node_name-Erkennung per pvesh

This commit is contained in:
mm committed 2026-09-13 20:37:19 +02:00
1 parent ba88686a5f
commit 5326d90975
2 files changed
+22 -6

No files matched your search

+10 -1
View File
@@ -14,9 +14,12 @@
# curl -fsSL https://gitea.m-m.bio/mm/netbird-telegraf-installer/raw/branch/main/install.sh | sh -s -- --name <node-name> # curl -fsSL https://gitea.m-m.bio/mm/netbird-telegraf-installer/raw/branch/main/install.sh | sh -s -- --name <node-name>
# Optionen: # Optionen:
# --name <n> Node-Name (Default: hostname -s) # --name <n> Node-Name (Default: hostname -s)
# --collector <ip> Collector-IP im NetBird (Default: 100.83.134.46) # --token <t> Bearer-Token des Reverse-Proxys (Pflicht)
# --collector <ip> Direktweg im NetBird statt Reverse Proxy
# --role <r> Zusatz-Profil: proxmox | apache | docker | none (Default: auto) # --role <r> Zusatz-Profil: proxmox | apache | docker | none (Default: auto)
# --pve-token <t> Proxmox API-Token 'user@pve!name=secret' (nur --role proxmox) # --pve-token <t> Proxmox API-Token 'user@pve!name=secret' (nur --role proxmox)
# --pve-node <n> Name des PVE-Knotens im PVE-Baum (Default: per pvesh erkannt)
# --pve-url <u> PVE-API-URL (Default: https://127.0.0.1:8006/api2/json)
# --apache-log <p> Apache-Access-Log (Default: /var/log/apache2/access.log) # --apache-log <p> Apache-Access-Log (Default: /var/log/apache2/access.log)
# --uninstall Telegraf + Konfiguration entfernen # --uninstall Telegraf + Konfiguration entfernen
# ============================================================================ # ============================================================================
@@ -31,6 +34,8 @@ TELEGRAF_TOKEN="${TELEGRAF_TOKEN:-}"
NODE_NAME="${NODE_NAME:-$(hostname -s 2>/dev/null || hostname)}" NODE_NAME="${NODE_NAME:-$(hostname -s 2>/dev/null || hostname)}"
ROLE="auto" ROLE="auto"
PVE_TOKEN="${PVE_TOKEN:-}" PVE_TOKEN="${PVE_TOKEN:-}"
PVE_NODE="${PVE_NODE:-}"
PVE_URL="${PVE_URL:-}"
APACHE_LOG="/var/log/apache2/access.log" APACHE_LOG="/var/log/apache2/access.log"
TELEGRAF_VERSION="${TELEGRAF_VERSION:-1.40.0}" TELEGRAF_VERSION="${TELEGRAF_VERSION:-1.40.0}"
REPO_RAW="https://gitea.m-m.bio/mm/netbird-telegraf-installer/raw/branch/main" REPO_RAW="https://gitea.m-m.bio/mm/netbird-telegraf-installer/raw/branch/main"
@@ -43,6 +48,8 @@ while [ $# -gt 0 ]; do
--token) TELEGRAF_TOKEN="$2"; shift 2 ;; --token) TELEGRAF_TOKEN="$2"; shift 2 ;;
--role) ROLE="$2"; shift 2 ;; --role) ROLE="$2"; shift 2 ;;
--pve-token) PVE_TOKEN="$2"; shift 2 ;; --pve-token) PVE_TOKEN="$2"; shift 2 ;;
--pve-node) PVE_NODE="$2"; shift 2 ;;
--pve-url) PVE_URL="$2"; shift 2 ;;
--apache-log) APACHE_LOG="$2"; shift 2 ;; --apache-log) APACHE_LOG="$2"; shift 2 ;;
--uninstall) UNINSTALL=1; shift ;; --uninstall) UNINSTALL=1; shift ;;
-h|--help) sed -n '2,24p' "$0"; exit 0 ;; -h|--help) sed -n '2,24p' "$0"; exit 0 ;;
@@ -212,6 +219,8 @@ PROM_URL=$PROM_URL
LOKI_URL=$LOKI_URL LOKI_URL=$LOKI_URL
TELEGRAF_TOKEN=$TELEGRAF_TOKEN TELEGRAF_TOKEN=$TELEGRAF_TOKEN
PVE_TOKEN=$PVE_TOKEN PVE_TOKEN=$PVE_TOKEN
PVE_NODE=$PVE_NODE
PVE_URL=$PVE_URL
APACHE_LOG=$APACHE_LOG APACHE_LOG=$APACHE_LOG
EOF EOF
umask 022 umask 022
+12 -5
View File
@@ -1,12 +1,19 @@
# Proxmox VE: VM/CT-Metriken über die PVE-API (Token mit PVEAuditor-Rolle) # Proxmox VE: Node-, VM- und Container-Metriken über die PVE-API.
# Token anlegen (auf dem PVE-Host): # Token anlegen (auf dem PVE-Host):
# pveum user add telegraf@pve # pveum user add telegraf@pve
# pveum user token add telegraf@pve monitoring -privsep 1 # pveum user token add telegraf@pve monitoring -privsep 1
# pveum acl modify / -token 'telegraf@pve!monitoring' -role PVEAuditor # pveum acl modify / -token 'telegraf@pve!monitoring' -role PVEAuditor
# Ergebnis "telegraf@pve!monitoring=xxxxxxxx-…" als --pve-token übergeben. # Ergebnis "telegraf@pve!monitoring=<uuid>" als --pve-token übergeben.
#
# WICHTIG: node_name ist der Name des PVE-KNOTENS (steht links im PVE-Baum,
# z. B. "pve" oder "node1"), NICHT der Hostname der überwachten Maschine.
# Läuft Telegraf nicht auf dem PVE-Host selbst, braucht es --pve-url mit der
# Adresse eines erreichbaren PVE-Knotens (https://pve1:8006/api2/json).
[[inputs.proxmox]] [[inputs.proxmox]]
base_url = "https://127.0.0.1:8006/api2/json" base_url = "${PVE_URL}"
api_token = "${PVE_TOKEN}" api_token = "${PVE_TOKEN}"
node_name = "${NODE_NAME}" node_name = "${PVE_NODE}"
insecure_skip_verify = true insecure_skip_verify = true
response_timeout = "10s" response_timeout = "20s"
# vmid und status als Tags: sonst sind VM-Metriken nicht pro Gast zuordenbar
additional_vmstats_tags = ["vmid", "status"]