Veeam Fichier Veeam Fichier

Importez l'historique des sauvegardes depuis Veeam Backup & Replication via un script PowerShell

Le connecteur Veeam Backup & Replication permet d'importer l'historique des runs de sauvegarde dans OverView pour une vue consolidée de la couverture et de la santé de vos sauvegardes.

Lecture seule. Le script n'utilise que des cmdlets Get-* et des méthodes de lecture. Il ne modifie, ne supprime, ne démarre et n'arrête rien. Il peut être exécuté sans risque en production.

Objectif

Le connecteur récupère les informations suivantes, une ligne par machine et par run :

  • Inventaire des sauvegardes VM (VMware / Hyper-V)
  • Sauvegardes Veeam Agent (machines physiques, protection groups)
  • Statut, durée et volumétrie par run
  • Chiffrement et référentiel cible
  • Tests de restauration SureBackup (optionnel)

Prérequis

  • Veeam Backup & Replication v12 ou supérieur recommandé
  • Module PowerShell Veeam (Veeam.Backup.PowerShell) — intégré au produit, présent d'office sur le serveur VBR ; sur une machine distante, installé automatiquement avec la console VBR
  • PowerShell 5.1 sur les anciennes versions de VBR, 7.4.x sur les builds récents (en cas de doute, utilisez la console PowerShell intégrée à Veeam via Console > PowerShell)
  • Rôle Veeam Backup Administrator — requis par Veeam pour exécuter des cmdlets
  • Accès en écriture sur le dossier de sortie (par défaut C:\export\, créé automatiquement s'il n'existe pas)

Procédure

Copier le script sur le serveur VBR

Téléchargez ou copiez le script Export-VeeamBackupRuns.ps1 sur votre serveur Veeam Backup & Replication (ou sur toute machine disposant de la console VBR).

Export-VeeamBackupRuns.ps1
Chargement…

Connexion depuis une machine distante

Si le script est exécuté depuis une machine autre que le serveur VBR, décommentez et adaptez la ligne suivante en tête de script :

Connect-VBRServer -Server "NOM-OU-IP-DU-SERVEUR-VBR"

Exécuter le script

# Export simple, 30 derniers jours (défaut)
.\Export-VeeamBackupRuns.ps1

# Fenêtre courte + chemin personnalisé
.\Export-VeeamBackupRuns.ps1 -LastDays 7 -OutputPath "D:\reports\veeam.json"

# Premier essai recommandé (1 jour, pour jauger volume et durée)
.\Export-VeeamBackupRuns.ps1 -LastDays 1

# Avec type de sauvegarde et tests de restauration
.\Export-VeeamBackupRuns.ps1 -LastDays 30 -IncludeBackupType -IncludeSureBackup

Si la politique d'exécution PowerShell bloque le script, autorisez-le pour la session courante :

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

Paramètres

ParamètreDéfautDescription
-LastDays30Fenêtre d'historique en jours
-OutputPathC:\export\veeam_backup_runs.jsonChemin de sortie — dossier créé s'il manque, extension ajustée selon -Format
-Formatjsonjson, csv ou both — le CSV contient les mêmes lignes que le JSON, en colonnes plates
-IncludeBackupTypedésactivéAjoute backup_type (Full/Increment) — plus lent, énumère les restore points
-IncludeSureBackupdésactivéAjoute les champs de test de restauration depuis SureBackup

Champs exportés

Le schéma est stable : tous les champs sont toujours présents. Un champ non disponible vaut null.

ChampPortéeDescription
device_hostnamemachineNom de la VM ou de la machine agent
run_idmachineIdentifiant de la tâche (machine)
parent_run_idrunIdentifiant de la session de job parente
run_namerunNom de la session
policy_namerunNom du job / de la policy
policy_typerunType (ex. Backup, EpAgentBackup)
started_atmachineDébut (ISO 8601)
ended_atmachineFin (ISO 8601)
duration_secondsmachineDurée en secondes
statusmachineSuccess / Warning / Failed
status_messagemachineMessage éventuel
read_size_mbmachineDonnées lues à la source (Mo)
transferred_size_mbmachineDonnées transférées après dédup/compression (Mo)
run_backup_size_mbrunTaille du fichier de sauvegarde du run entier (Mo), identique sur toutes les machines du run — voir limites
is_encryptedrunChiffrement activé sur le job
repository_namerunRéférentiel cible
storage_locationrunChemin du référentiel
backup_typemachineFull / Increment — option -IncludeBackupType
last_restore_test_datemachineDernier test SureBackup — option -IncludeSureBackup
restore_test_statusmachineRésultat du dernier test SureBackup — option -IncludeSureBackup

Exemple de sortie

[
  {
    "device_hostname": "SRV-APP01",
    "run_id": "a1b2c3d4-0000-0000-0000-000000000001",
    "parent_run_id": "f9e8d7c6-0000-0000-0000-0000000000aa",
    "run_name": "Backup Job Prod (Incremental)",
    "policy_name": "Backup Job Prod",
    "policy_type": "Backup",
    "started_at": "2026-06-28T22:00:13.0000000+02:00",
    "ended_at": "2026-06-28T22:14:51.0000000+02:00",
    "duration_seconds": 878,
    "status": "Success",
    "status_message": null,
    "read_size_mb": 40960.0,
    "transferred_size_mb": 5123.44,
    "run_backup_size_mb": 184320.0,
    "is_encrypted": true,
    "repository_name": "Repo-Principal",
    "storage_location": "E:\\Backups\\Repo-Principal",
    "backup_type": "Increment",
    "last_restore_test_date": "2026-06-25T03:10:00.0000000+02:00",
    "restore_test_status": "Success"
  }
]

Limites

  • run_backup_size_mb est vide pour les machines en sauvegarde agent (Veeam n'écrit pas cette statistique dans leur task session) ; pour les VM, c'est la taille du run entier (la même valeur sur toutes les lignes du run), à ne pas additionner ligne à ligne. Le préfixe run_ signale cette portée.
  • Les champs de niveau job (repository_name, is_encrypted) peuvent être vides sur les lignes de sauvegarde agent : ils sont résolus depuis les jobs de sauvegarde VM. Les données de niveau machine (nom, dates, statut, tailles lues/transférées) restent renseignées.
  • duration_seconds (et parfois ended_at) peut valoir null pour une sauvegarde encore en cours au moment de l'export : c'est normal, la machine est bien couverte, seule l'heure de fin n'est pas encore disponible.
  • Les noms de propriétés Veeam varient selon les versions. Chaque accès étant protégé, une propriété déplacée donne un champ null, jamais une erreur. Si un champ ressort toujours vide, inspectez l'objet sur votre version : Get-VBRBackupSession | Select-Object -First 1 | Get-Member.

Checklist après le premier export (recommandé avec -LastDays 1) :

  • Le fichier JSON est créé et non vide
  • Le nombre de lignes est cohérent avec l'activité de la veille
  • Les machines physiques (agent) apparaissent
  • status, horaires et durées correspondent à la console Veeam
  • read_size_mb / transferred_size_mb sont plausibles
  • repository_name correspond au référentiel cible sur une ligne VM

Importer les fichiers via DropPoint

Les fichiers du connecteur Veeam Backup & Replication sont déposés dans un bucket S3 dédié nommé veeam. Placez vos fichiers CSV (ou JSON) à la racine de s3://veeam/ : OverView détecte automatiquement les nouveaux fichiers et les importe lors de la prochaine synchronisation.

Où déposer les fichiers ?

Bucket : s3://veeam/

Exemple : s3://veeam/veeam_backup_runs.json

Plusieurs façons d'envoyer vos fichiers

Vous pouvez alimenter votre bucket de plusieurs manières :

  • Interface web OverView — importez vos fichiers, configurez le mapping, puis cliquez sur « Remplacer » pour rafraîchir les données sans avoir à refaire le mapping.
  • AWS CLI — pour un envoi ponctuel ou scripté.
  • SDK S3 (boto3, etc.) — pour automatiser entièrement des imports récurrents.

Via AWS CLI

# Upload a file to the veeam bucket
aws s3 cp veeam_backup_runs.json s3://veeam/veeam_backup_runs.json --profile ovs_your_org

# Or sync a whole local folder
aws s3 sync ./exports/ s3://veeam/ --profile ovs_your_org

Automatiser l'import via S3

import boto3

s3 = boto3.client(
    "s3",
    endpoint_url="https://s3.oversoc.com",
    region_name="fr-par",
    aws_access_key_id="YOUR_ACCESS_KEY",
    aws_secret_access_key="YOUR_SECRET_KEY",
)

# Push the export into the veeam bucket
s3.upload_file("veeam_backup_runs.json", "veeam", "veeam_backup_runs.json")

Associez ce script à une tâche planifiée (cron sous Linux, Planificateur de tâches sous Windows) pour pousser automatiquement vos exports à intervalle régulier. Chaque dépôt déclenche un nouvel import côté OverView.

Prérequis : générez vos credentials S3 et configurez votre client (endpoint, profil) comme décrit dans le guide OverView DropPoint. Le profil et l'endpoint utilisés ici y sont expliqués.