Script do PowerShell do Azure para excluir recursos do Azure não utilizados ou órfãos

Visão geral

Gerenciar recursos não utilizados ou órfãos no Azure pode afetar significativamente os gastos com a nuvem e a eficiência operacional. A ferramenta Azure Resource Cleanup é um script abrangente do PowerShell projetado para ajudar os administradores de nuvem a identificar e excluir recursos do Azure não utilizados ou órfãos, garantindo a otimização de custos e o melhor gerenciamento de recursos.

Este script opera por padrão em um modo de relatório seguro e não destrutivo, permitindo que os administradores revisem os recursos órfãos antes de iniciar as operações de limpeza.

Você pode acessar o projeto no GitHub: AzureOpsScripts – Resource Cleanup.



Principais recursos

O script Azure Resource Cleanup oferece as seguintes funcionalidades:

  • NICs órfãs: identifica interfaces de rede não anexadas a nenhuma VM ou endpoint.
  • Snapshots de disco do Azure antigos: detecta snapshots que excedem o período de retenção.
  • Snapshots de blob de conta de armazenamento: sinaliza snapshots de blob mais antigos que o período de retenção definido.
  • Snapshots de compartilhamento de arquivos: identifica snapshots de compartilhamento de arquivos além dos limites de retenção.
  • Discos gerenciados órfãos: encontra discos não anexados a nenhuma VM.
  • IPs públicos órfãos: localiza endereços IP públicos não utilizados.
  • Grupos de segurança de rede não utilizados: identifica NSGs não associados a nenhum recurso.
  • Conjuntos de disponibilidade não utilizados: detecta conjuntos de disponibilidade que não estão mais em uso.
  • Grupos de recursos vazios: sinaliza grupos de recursos sem recursos ativos.
  • Redes virtuais não utilizadas: destaca redes virtuais potencialmente não utilizadas (apenas destaca; o script não as excluirá).
  • Endereços IP reservados, mas não utilizados: identifica endereços IP reservados, mas não atribuídos ativamente.

Requisitos

Para usar o script Azure Resource Cleanup, verifique se os seguintes pré-requisitos são atendidos:

  • Versão do PowerShell: 5.1 ou superior
  • Módulo Az do PowerShell: instale usando o comando:Install-Module -Name Az
  • Permissões da conta do Azure: verifique as permissões adequadas para exibir e excluir recursos.

Uso

Modo de relatório

Execute o script no modo de relatório para gerar um relatório detalhado dos recursos órfãos:

.\Azure-Resource-Cleanup.ps1  

Exclusão de recursos do Azure não utilizados ou órfãos

Modo de limpeza

Para excluir os recursos identificados, use o modo de limpeza:

.\Azure-Resource-Cleanup.ps1 -DeleteResources  

Personalizar a retenção de snapshots

Especifique os dias de retenção de snapshots para identificar snapshots mais antigos para limpeza:

.\Azure-Resource-Cleanup.ps1 -SnapshotRetentionDays 7 -DeleteResources  

Exclusão de recursos do Azure não utilizados ou órfãos

Excluir verificações de snapshots de armazenamento

Ignore as verificações de snapshots de blob e de compartilhamento de arquivos de contas de armazenamento em ambientes grandes:

.\Azure-Resource-Cleanup.ps1 -IncludeStorageSnapshots:$false  


Observações importantes

Executar em redes virtuais permitidas

Verifique se o script é executado em uma rede virtual permitida. Devido a restrições de rede, algumas contas de armazenamento podem proibir o acesso a contêineres ou snapshots de arquivos. Se a conta de armazenamento não oferecer suporte a operações de exclusão, você poderá encontrar erros ao tentar limpar esses recursos.

Testar em ambientes de desenvolvimento/teste

É altamente recomendável testar o script em ambientes de desenvolvimento ou de teste antes de usá-lo em produção. Isso garante que você possa revisar o comportamento do script, identificar possíveis problemas e verificar os recursos sinalizados para limpeza.

Usar o modo somente relatório

Para ambientes de produção, sempre comece executando o script no modo somente relatório (sem o parâmetro -DeleteResources). Isso fornece um relatório detalhado dos recursos órfãos, permitindo revisar e validar os itens sinalizados antes de iniciar as operações de limpeza.


Parâmetros

O script oferece suporte a vários parâmetros personalizáveis:

ParâmetroTipoPadrãoDescrição
SnapshotRetentionDaysInteger3Período de retenção de snapshots (em dias). Snapshots mais antigos serão sinalizados para limpeza.
DeleteResourcesSwitch$falseHabilita a exclusão dos recursos identificados. Por padrão, o script apenas gera relatórios.
IncludeStorageSnapshotsSwitch$trueInclui verificações de snapshots de blob e de compartilhamento de arquivos. Defina como $false para excluir essas verificações.

Saída do relatório

O script gera relatórios detalhados em uma pasta com carimbo de data/hora, incluindo:

  • orphaned_nics.csv
  • old_managed_snapshots.csv
  • old_blob_snapshots.csv
  • old_fileshare_snapshots.csv
  • orphaned_disks.csv
  • orphaned_public_ips.csv
  • orphaned_nsgs.csv
  • unused_availability_sets.csv
  • empty_resource_groups.csv
  • unused_vnets.csv
  • subnet_ip_usage.csv
  • cleanup_log.txt (registro abrangente das ações realizadas)Arquivo Excel de saída e registro

Práticas recomendadas

  1. Comece com o modo de relatório: execute sempre o script sem o parâmetro -DeleteResources para revisar os recursos sinalizados.
  2. Revise os relatórios: analise com cuidado os arquivos CSV gerados antes de iniciar as operações de limpeza.
  3. Defina períodos de retenção: personalize os períodos de retenção de snapshots com base nas políticas organizacionais.
  4. Teste em ambientes que não sejam de produção: execute o script em ambientes de desenvolvimento/teste para validar seu comportamento antes de usá-lo em produção.
  5. Execute em redes virtuais permitidas: verifique se o script é executado em vNets permitidas para evitar erros relacionados à rede na limpeza de contas de armazenamento.

Exemplo de fluxo de trabalho

Siga este fluxo de trabalho para limpar os recursos do Azure com segurança:

  1. Execute o script no modo de relatório:.\Azure-Resource-Cleanup.ps1
  2. Revise os relatórios gerados para ver os recursos sinalizados.
  3. Prossiga com confiança com o modo de limpeza:.\Azure-Resource-Cleanup.ps1 -DeleteResources

Referências

Deixe um comentário