Como has podido comprobar. El hecho de tener que estar navegando por la cuenta de almacenamiento para descargar los diferentes .JSON puede resultar algo tedioso.
En este post te voy a explicar cómo con nuestro querido powershell podremos descargar el contenido de la cuenta de almacenamiento donde guardamos los logs de NSF Flow.
Ojo! si tienes una retención muy alta date cuenta que en este script no controlo el descargar los últimos logs o similar. Descargo TODO el container. Recuerda que a nuestro Azure al igual que a Cookie Moster le gusta que le den (datos-galletas), pero no soltar. Esto te lo cobra.

El conectarte a una cuenta de almacenamiento es similar a cuando nos conectamos con una cuenta de Azure AD que tiene acceso a diferentes subcripciones. Tienes que ir acotando a dónde vas a acceder.
Get-AzStorageAccount Con este comando vamos a obtener la cuenta de almacenamiento que deseemos.
Get-AzStorageContaine Con este otro comando obtenemos los containers que tenemos en nuestra cuenta.
Get-AzStorageBlob Me lista los blobs que tenemos dentro de ese contenedor. En nuestro caso nos vamos a quedar con el que contiene los datos del NSG flow «insights-logs-networksecuritygroupflowevent».
Get-AzStorageBlobContent Con este comando podemos descargar el contenido. Es decir, todos los .JSON que vimos en post previos. Y como seguramente tenga varios, lo cargo en un foreach.
################# Azure Blob Storage - Descarga Logs/Blobs ####################
cls
# Variables
$resourceGroupName="xxx"
$storageAccName="xxx"
$containerName="insights-logs-networksecuritygroupflowevent"
$path = "C:\Script\xxx\PWS\SA\Logs"
# Obtener todos los Logs/blobs
Write-Host -ForegroundColor Green "Obteniento todos los logs/blobs de la storage $storageAccName"
# Variable con la storage account
$storageAcc=Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccName
# Indicar el storage account context
$ctx=$storageAcc.Context
# Obtener todos los containers
$containers=Get-AzStorageContainer -Context $ctx
# Obtener todos blobs
$blobs=Get-AzStorageBlob -Container $containerName -Context $ctx
Write-Host -ForegroundColor Green "Encontrados $blobs.count"
# Descargar todos con un foreach
foreach($blob in $blobs)
{
write-host -Foregroundcolor Yellow $blob.Name
# Download a blob
Get-AzStorageBlobContent -Container $containerName -Blob $blob.Name -Destination $path -Context $ctx -Force
}
Y por hoy… suficiente. En el siguiente post veremos cómo interpretar esos logs.


Deja una respuesta