https://unsplash.com/fr/photos/aurore-boreale-UZOpP-YHe9Q
|

PROJET – Green Ray, VEEAM Reporting

Après un an d’attente, me voilà prêt à présenter le résultat de mes travaux dans ce billet. Pourquoi un an ? Je pensais et pense toujours qu’il est difficile de présenter une solution sans expliquer préalablement sur quels produits et solutions mon application s’appuie…

Une fois n’est pas coutume, je me réfère aux saintes écritures

Et moi, je te dis que tu es Pierre, et que sur cette pierre je bâtirai mon Église, et que les portes du séjour des morts ne prévaudront point contre elle.

Matthieu, 16:13:18

De ce verset, je bâti donc le mien

Et moi, je te dis que tu es SS_034, et que sur cette application je bâtirai mes KPIs, et que les défaillances des jobs de protection ne prévaudront point contre elle.

Le rédacteur de ce billet

Ne voyez pas dans cette reformulation une quelconque provocation de ma part ou quelques pensées négatives quant à mon sarcasme et ironie qui m’habite. J’ai une éducation des plus classiques dans l’ordre mariste. Passons.

Enfin, vous comprendrez mieux je pense l’allusion à la rédaction des articles précédents sur les différents produits VEEAM puisque mon application s’appuie sur ces derniers. Cela à représenter un travail personnel titanesque en dehors de mon activité professionnelle…

Mais c’est quoi ton application SS_034 ou Green Ray ? Et ça sert à quoi ? Quel rapport avec les produits VEEAM ?

Avant de répondre à l’ensemble des questions, la problématique à laquelle j’ai été confronté prends son origine courant mars 2023, dans mon environnement professionnel.

Comment s’assurer de l’état des mécanismes de protection des systèmes d’informations quotidien fournit par les produits VEEAM et établir à partir de ces données des indicateurs de performance afin de s’assurer du bon respect des engagements contractuels interne ou externe.

C’est marrant car je dirai que cette problématique conviendrait pour un mémoire de fin de cycle de 5 année. 🙂

/!\ Spoiler, j’ai non seulement trouvé une solution à cette problématique mais ce dernier a pris une tournure inattendue au cours de ces deux dernières années.

Hé banane, nous nous en doutons sinon tu n’aurais pas pondu un article… Mouai, bà je suis certains qu’il existe déjà des applications ou fonctionnalités internes ou externes à VEEAM qui permet de faire ça ? Tu as réinventé la roue… Encore un article p*te à clic…

C’est vrai que l’argumentaire se tiens, toutefois pouvez vous me sortir les statistiques par jobs ou par organisations sur un mois précis ? Sur 13 mois glissant ? Déduire une tendance ? Allez y je vous regarde 🙂

Donc pour répondre aux 3 questions précédemment énoncées :

  • En tant que MSP1 dans le milieu professionnel, l’usage des produits VCC2, VSPC3 pour administrer et gérer les différents serveurs de sauvegarde VBR4 ou VB MO3655, il est logique que je me concentre sur les solutions de l’éditeur VEEAM. De plus VEEAM s’inscrit depuis la 5 années consécutives comme le leader de la sauvegarde sur le marché.
  • L’application développée par mes soins vient collecter, traiter et présenter les données quotidiennes des jobs de sauvegardes tout en garantissant la flexibilité de la solution et la plus grande sécurité possible
  • Le nom du projet est SS_034_TOOLS_Backup-Reporting (toujours ma nomenclature personnelle SystemScript numéro 34). Mes proches m’ont fait remarquer à maintes reprises que le nom est difficilement commercialisable. C’est pourquoi Green Ray est plus adapté. En raison d’un relevé quotidien des outils VEEAM d’un vert caractéristique, je me suis dit que cela revenait à guetter le dernier rayon vert du soir 🙂

Tu dis difficilement commercialisable ? Je reviendrai plus tard sur ce point.

Avant-Propos

Il est important de comprendre que ce billet ne rentrera pas dans le détail technique et ce pour des raisons évidentes de savoir faire et de protection intellectuelle. Le code source est disponible sur GitHub mais ne sera pas en libre accès. Ah ouai et pourquoi donc ?

Comme j’ai pu le mentionner dans un article précédent je suis satisfait de ce que j’ai réussi à livrer et à créer. J’ai passé un bon nombre d’heure de recherche et de développement à concevoir la solution ainsi que la lecture des différentes documentations. Contrairement à d’autres projets je suis satisfait de la qualité du code produit et de l’architecture de ce dernier.

Ce qui m’amène au point, dois je commercialiser ce dernier ou le laisser à la disposition de tous ? Mon cœur peine à se décider… Je souhaite valoriser mon travail de recherche…

Bref, si votre curiosité est toujours suscitée je pense que le reste de l’article devrait être satisfaite. Dans le cas contraire, je vous laisse exécuter la combinaison Ctrl+F4.

Prérequis

  • SE : Windows Server 2k19 et version ultérieures ou Windows 11
  • Apps : VSPC version 7 ou plus
  • Autres :
    • PowerShell version 5 et ultérieures
    • PowerBI (optionnel)
    • ODBC drivers (SQLite3)

Guide

  • Partie 1 : Théorie
    • Définir l’expression du besoin et aborder le cahier des charges attendu. Ce qui implique l’architecture de l’application, du code. Les solutions retenues ainsi que les notions de sécurité
  • Partie 2 : Pratique
    • Guide de déploiement de la solution et paramétrage de cette dernière.
    • Oups, un mot de passe ? On échange avant ? #bisous
  • Partie 3 : Démonstration
    • Faire une présentation de la solution dans les deux modes qui ont été développés.

Conclusion

Bien, difficile de conclure un projet sur lequel je reste assez nébuleux (mais pas opaque, je tiens à la nuance). Certes il y a la théorie et je garde le guide d’installation dans sa culotte de chasteté, mais la démonstration fait le taf non ? 🙂

Je vois dans cette solution un bon moyen d’assister les RSSIs6, DSIs7 qu’ils soient internalisés ou non. Cela permet de montrer du concret au DG8, DAF9 ou PDG10 quant au travail de longue haleine réalisé par les équipes (oui, on ne va pas se mentir pour le commun des utilisateurs nous sommes désagréables et nous passons nos journées à boire des cafés en nous tirant sur le noeud… Sans oublier les cabinets de recrutement qui trouve normal de nous proposer un salaire confortable de 30-35k€ annuel). Plus sérieusement, cela permet à la direction d’accorder un crédit et de la confiance à ses collaborateurs et d’avoir ainsi une bonne vision de la sécurité de son entreprise.

J’ai malheureusement trop vu de société externalisée ou équipe interne faire preuve de laxisme ou pire maquiller les rapports de sauvegarde et ce à l’insu de leur client ou employeur/repsonbale… Mais bon, c’est triste d’écrire ces mots. La fin justifie les moyens… C’est qu’il faut la décrocher cette prime annuelle…

Je ne peux donc qu’encourager encore une fois les DAF, DSI, DG ou PDG de réclamer les indicateurs des jobs de protection journalier, hebdomadaire, mensuel et annuel. Même si vous ne comprenez pas grand chose, cela reste des chiffres et il est important de savoir pourquoi certaines fois cela n’a pas fonctionné et comment les équipes ont traité le dysfonctionnement. Et il faut faire preuve à certain moment de fermeté et dans d’autres cas être indulgent. Il n’est pas aisé de garder une main de fer dans un gant de velours.

De plus, ces métriques jouent un rôle important auprès de votre assurance en cas de sinistre informatique. En plus je suis quasiment certains qu’une police d’assurance cybersécurité a été souscrit. Le risque zéro n’existant pas, si vous arrivez à prouver que votre sauvegarde tiens la route et fait l’objet d’un point de suivi régulier cela devrait faciliter l’indemnisation du sinistre.

Si nous revenons plus à même du projet Green Ray, la flexibilité de l’application permettant d’interfacer n’importe quelle solution de reporting (puisque que basé sur une BDD11) répond au niveau et compétence de chaque RSI ou DSI. La possibilité d’activer ou non le mode debug facilite la correction d’erreur comme le contrôle dans un fichier de log.

Bien que pour l’instant l’application ne prend en compte que les jobs de protection de type Backup, BackupCopy et Replication ainsi que les jobs de protection pour Microsoft O365, l’application a été pensée pour s’adapter assez rapidement que ce soit aux différents niveaux, de l’acquisition des données à leurs restitutions en passant par leurs traitements. Si ce n’est pas évolutif à quoi bon ? Egalement le fait qu’elle puisse traiter plusieurs organisations permets de répondre à un besoin de fournisseur de service et de faciliter la tâche d’un Responsable des Services Hébergés par exemple <3 (A la limite du narcissisme non ? C’est inquiétant).

Le seul regret que j’ai pour l’instant en ce mois de Mars 2025 reste que le code est écrit en Powershell et non en C#, C/C++ ou VB .NET (PS c’est en .NET non ? 🙂 ). Je pourrais me lancer dans un programme en C/C++ mais pour le coup je suis rouillé. Il serait pas mal d’incorporer le rendu directement dans VEEAM (VEEAM One ou dans la VSPC) mais le produit ne doit pas être ouvert pour réaliser ce type d’opération (et heureusement).

La version béta 2.0 (en dehors de la factorisation du mode service pour éviter la redondance de code) est stable. Je sais qu’il reste des optimisations possibles et de potentiel modules à développer, mais ça l’avenir nous le dira si oui ou non je vais investir de nouveau du temps 🙂 En toutes circonstances je suis bien loin de la version 1.0 à manipuler des CSVs dans un fichier XLSX avec des formules à rallonges !

Le mot de la fin

Mes PKIs ils sont super ! Quand on les refreshent ils sortent. On peut acquisitionner à Quimper ou à Chalon-Sur-Saone. Ils ont l’option… sécurisantes. Qui résonnent dans mon bureau-eau-eau…

Erwan GUILLEMARD refondu de Arne VINZON

Sources

  1. MSP : Managed Services Providers ↩︎
  2. VCC : VEEAM Cloud Connect ↩︎
  3. VSPC : VEEAM Service Provider Console ↩︎
  4. VBR : VEEAM Backup et Replication ↩︎
  5. VB MO365 : VEEAM Backup for Microsoft 365 ↩︎
  6. RSSI : Responsable Sécurité des Systèmes d’Informations ↩︎
  7. DSI : Directeur des Systèmes d’Informations ↩︎
  8. DG : Directeur Général ↩︎
  9. DAF : Directeur Administratif et Financier ↩︎
  10. PDG : Président Directeur Général ↩︎
  11. BDD : Base De Données ↩︎