Inventory of Azure virtual machines
As an administrator, you want to have a high-level view of the number and type of virtual machines running in your Azure infrastructure.
Data required
Microsoft: Azure virtual machine data
Procedure
- Configure the Splunk Add-on for Microsoft Cloud Services.
 - Run the following search. You can optimize it by specifying an index and adjusting the time range.
 
sourcetype="mscs:resource:virtualMachine"
|fillnull tags{} value="No Tags!"
|fillnull properties.instanceView.extensions{}.name value="" 
|stats latest(power_state) BY vm_name, location, properties.storageProfile.imageReference.offer, properties.storageProfile.imageReference.sku ,vm_size, tags{}, properties.instanceView.extensions{}.name 
|eval mem_capacity=(mem_capacity/1024/1024/1024) 
|fields - count 
|rename vm_name AS "VM Name" latest(power_state) AS Status vm_size AS Size properties.storageProfile.imageReference.offer AS OS properties.storageProfile.imageReference.sku AS Version mem_capacity AS "Memory GB" location_name AS Location cpu_cores AS CPU tags{} AS Tags properties.instanceView.extensions{}.name AS Extensions
Search explanation
The table provides an explanation of what each part of this search achieves. You can adjust this query based on the specifics of your environment.
| Splunk Search | Explanation | 
|---|---|
| 
             sourcetype="mscs:resource:virtualMachine"  | 
            
             Search only Azure virtual machine data.  | 
        
| 
             |fillnull tags{} value="No Tags!"  | 
            
             Fill all null tag values with “No Tags!”  | 
        
| 
             |fillnull properties.instanceView.extensions{}.name value=""  | 
            
             Fill all null extension values with an empty string.  | 
        
| 
             |stats latest(power_state) BY vm_name, location, properties.storageProfile.imageReference.offer, properties.storageProfile.imageReference.sku ,vm_size, tags{}, properties.instanceView.extensions{}.name  | 
            
             Locate the most recent value for all relevant fields.  | 
        
| 
             |eval mem_capacity=(mem_capacity/1024/1024/1024)  | 
            
             Calculate the memory capacity for all virtual machines.  | 
        
| 
             |fields - count  | 
            
             Remove the count field from the results.  | 
        
| 
             |rename vm_name AS "VM Name" latest(power_state) AS Status vm_size AS Size properties.storageProfile.imageReference.offer AS OS properties.storageProfile.imageReference.sku AS Version mem_capacity AS "Memory GB" location_name AS Location cpu_cores AS CPU tags{} AS Tags properties.instanceView.extensions{}.name AS Extensions  | 
            
             Rename the fields as shown for better readability.  | 
        
Next steps
Sample results for this search are shown in the table below. The status field can be an important item to monitor for cost saving reasons. A status of stopped (not shown below) indicates a VM that had the OS shut down or stopped, but the VM is still allocated and is costing money. Finding those and having the VM deallocated would be useful.
| VM Name | location | OS | Version | Size | Tags | Extensions | Status | 
|---|---|---|---|---|---|---|---|
| 
             JaneDoeServer  | 
            
             southcentralus  | 
            
             WindowsServer  | 
            
             2016-Datacenter  | 
            
             Standard_B1s  | 
            
             No Tags!  | 
            
             running  | 
        |
| 
             RYCRYpt0  | 
            
             australiasoutheast  | 
            
             CentOS  | 
            
             7.5  | 
            
             Standard_B1s  | 
            
             Owner : RYCRYpt0  | 
            
             starting  | 
        |
| 
             Ry-Win10  | 
            
             australiasoutheast  | 
            
             Windows-10  | 
            
             rs5-pro  | 
            
             Standard_D2  | 
            
             Owner : Ryan  | 
            
             Microsoft.Insights.VMDiagnosticsSettings  | 
            
             running  | 
        
| 
             Ry-Win10  | 
            
             australiasoutheast  | 
            
             Windows-10  | 
            
             rs5-pro  | 
            
             Standard_D2  | 
            
             Owner : Ryan  | 
            
             MicrosoftMonitoringAgent  | 
            
             running  | 
        
| 
             Ry-Win10  | 
            
             australiasoutheast  | 
            
             Windows-10  | 
            
             rs5-pro  | 
            
             Standard_D2  | 
            
             Purpose : P5  | 
            
             Microsoft.Insights.VMDiagnosticsSettings  | 
            
             running  | 
        
You might also be interested in other processes associated with the Managing Azure cloud infrastructure use case.

