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).
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ètre | Défaut | Description |
|---|---|---|
-LastDays | 30 | Fenêtre d'historique en jours |
-OutputPath | C:\export\veeam_backup_runs.json | Chemin de sortie — dossier créé s'il manque, extension ajustée selon -Format |
-Format | json | json, csv ou both — le CSV contient les mêmes lignes que le JSON, en colonnes plates |
-IncludeBackupType | désactivé | Ajoute backup_type (Full/Increment) — plus lent, énumère les restore points |
-IncludeSureBackup | dé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.
| Champ | Portée | Description |
|---|---|---|
device_hostname | machine | Nom de la VM ou de la machine agent |
run_id | machine | Identifiant de la tâche (machine) |
parent_run_id | run | Identifiant de la session de job parente |
run_name | run | Nom de la session |
policy_name | run | Nom du job / de la policy |
policy_type | run | Type (ex. Backup, EpAgentBackup) |
started_at | machine | Début (ISO 8601) |
ended_at | machine | Fin (ISO 8601) |
duration_seconds | machine | Durée en secondes |
status | machine | Success / Warning / Failed |
status_message | machine | Message éventuel |
read_size_mb | machine | Données lues à la source (Mo) |
transferred_size_mb | machine | Données transférées après dédup/compression (Mo) |
run_backup_size_mb | run | Taille du fichier de sauvegarde du run entier (Mo), identique sur toutes les machines du run — voir limites |
is_encrypted | run | Chiffrement activé sur le job |
repository_name | run | Référentiel cible |
storage_location | run | Chemin du référentiel |
backup_type | machine | Full / Increment — option -IncludeBackupType |
last_restore_test_date | machine | Dernier test SureBackup — option -IncludeSureBackup |
restore_test_status | machine | Ré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_mbest 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éfixerun_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 parfoisended_at) peut valoirnullpour 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_mbsont plausibles -
repository_namecorrespond 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.
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_orgAutomatiser 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.