Azure Inventory

Inventaire de son Parc CLOUD

L’inventaire du IaaS peut s’avérer douleureux, surtout quand on est multi cloud provider et qu’on a pas accès aux instances.

Azure inventory est une suite proposé par Azure qui permet d’activer le suivi d’inventaire pour des machines virtuelles Azure (et non Azure). On peut collecter et afficher les informations d’inventaire tel que les mises à jour Windows, applications Windows, services, fichiers et clés de Registre ou encore logiciels (packages), démons et fichiers Linux.

L’offre fonctionne avec Azure Logs analytics et Azure automation.

On le retrouve sous la rebrique Azure automation :

Ce qui nous permet de décrouvrir les softwares via le portail :

Change tracking :

Nous permet de surveiller l’évolution des objects ( Clef de registre, fichier, services …) dans le temps.

Query Logs analytics

exemple 1

Extraire les VM d’une subscription :

ConfigurationData
| where ConfigDataType == "Software" and SoftwareType == "Application"
| project Computer, SoftwareName, CurrentVersion, Publisher, _SubscriptionId, _ResourceId
| where _SubscriptionId == "xxxx-xx-xxx-xx-xxxxx"
| distinct Computer

Exemple 2

Afficher les “software Name”

ConfigurationData
| where ConfigDataType == "Software" and SoftwareType == "Application"
| project TimeGenerated, Computer, SoftwareName, CurrentVersion, Publisher
| summarize arg_max(TimeGenerated, *) by SoftwareName, CurrentVersion
| render table
| summarize by Publisher, SoftwareName

Installation

L’installation de l’agent se fait avec Microsoft Monitoring Agent (MMA) que l’on peut trouver dans Logs Analytics :

Bien que l’intégration de l’agent se fait très facilement, les machines remontent après 15 minutes.

Registry et file content

On peut demander à Azure Inventory de surveiller un fichier ou encore surveiller des changements d’une clef de registre dans windows.

Par exemple dans le cadre de notre inventaire on souhaite detecter les différentes editions de SQL entreprise/express de notre parc.

On peut demander à surveiller ces deux clefs de registre.

ConfigurationData
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{VERSION-SQL}\Tools\Setup

Remplacer {VERSION-SQL} par toutes les versions existantes des SQL.

Ce qui nous donnera :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\Tools\Setup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Tools\Setup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\120\Tools\Setup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\Tools\Setup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\140\Tools\Setup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\150\Tools\Setup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\160\Tools\Setup

Une fois les données remontées nous pouvons utiliser OMS pour les afficher de cette façon :

Pour se faire nous allons utiliser la query suivante :

ConfigurationChange
| where RegistryKey contains "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server\\"
| where ValueName contains "edition"
| project ValueName, ValueData, Computer
| summarize count=dcount(Computer) by ValueData

Allez encore plus loin avec l’inventaire

On peut aller encore plus loin pour faire l’inventaire de notre parc CLOUD, par exemple connaitre les SKUs de nos instances, ou encore savoir si Azure benefits est activé. Vous trouverez sur ce blog un script qui exploite différentes méthodes pour faire l’audit de son parc CLOUD et avoir le résultat sous csv :

https://blog.alexandrecomet.com/posts/azure-inventory-extract/

Si vous voulez plus d’information sur l’infrastructure vous pouvez voir mon repo à ce sujet : https://github.com/ravindrajob/InfraAtHome