Сценарий Azure PowerShell для удаления неиспользуемых или осиротевших ресурсов Azure

Обзор

Управление неиспользуемыми или осиротевшими ресурсами в Azure может существенно повлиять на расходы на облако и операционную эффективность. Инструмент Azure Resource Cleanup — это комплексный сценарий PowerShell, предназначенный для помощи облачным администраторам в выявлении и удалении неиспользуемых или осиротевших ресурсов Azure, обеспечивая оптимизацию затрат и улучшение управления ресурсами.

Этот сценарий по умолчанию работает в безопасном, неразрушающем режиме отчётности, позволяя администраторам проверять осиротевшие ресурсы перед началом операций очистки.

Вы можете получить доступ к проекту на GitHub: AzureOpsScripts – Resource Cleanup.



Ключевые возможности

Сценарий Azure Resource Cleanup предоставляет следующие возможности:

  • Осиротевшие сетевые адаптеры: выявляет сетевые интерфейсы, не подключённые ни к одной виртуальной машине или конечной точке.
  • Старые моментальные снимки дисков Azure: обнаруживает снимки, превышающие срок хранения.
  • Моментальные снимки BLOB-объектов учётных записей хранения: помечает снимки BLOB-объектов старше установленного срока хранения.
  • Моментальные снимки файловых ресурсов: выявляет снимки файловых ресурсов, превышающие ограничения срока хранения.
  • Осиротевшие управляемые диски: находит диски, не подключённые ни к одной виртуальной машине.
  • Осиротевшие общедоступные IP-адреса: находит неиспользуемые общедоступные IP-адреса.
  • Неиспользуемые группы сетевой безопасности: выявляет группы сетевой безопасности, не связанные ни с какими ресурсами.
  • Неиспользуемые группы доступности: обнаруживает группы доступности, которые больше не используются.
  • Пустые группы ресурсов: помечает группы ресурсов без активных ресурсов.
  • Неиспользуемые виртуальные сети: выделяет потенциально неиспользуемые виртуальные сети (только выделяет, сценарий не удаляет их).
  • Зарезервированные, но неиспользуемые IP-адреса: выявляет IP-адреса, зарезервированные, но не назначенные активно.

Требования

Чтобы использовать сценарий Azure Resource Cleanup, убедитесь, что выполнены следующие предварительные требования:

  • Версия PowerShell: 5.1 или выше
  • Модуль Az PowerShell: установите с помощью команды:Install-Module -Name Az
  • Разрешения учётной записи Azure: убедитесь в наличии соответствующих разрешений для просмотра и удаления ресурсов.

Использование

Режим отчётности

Запустите сценарий в режиме отчётности, чтобы создать подробный отчёт об осиротевших ресурсах:

.\Azure-Resource-Cleanup.ps1  

Удаление неиспользуемых или осиротевших ресурсов Azure

Режим очистки

Чтобы удалить выявленные ресурсы, используйте режим очистки:

.\Azure-Resource-Cleanup.ps1 -DeleteResources  

Настройка хранения моментальных снимков

Укажите количество дней хранения моментальных снимков, чтобы выявить более старые снимки для очистки:

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

Удаление неиспользуемых или осиротевших ресурсов Azure

Исключение проверок моментальных снимков хранилища

Пропустите проверки моментальных снимков BLOB-объектов и файловых ресурсов учётных записей хранения для больших сред:

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


Важные замечания

Запуск в разрешённых виртуальных сетях

Убедитесь, что сценарий выполняется в разрешённой виртуальной сети. Из-за сетевых ограничений некоторые учётные записи хранения могут запрещать доступ к контейнерам или моментальным снимкам файлов. Если учётная запись хранения не поддерживает операции удаления, при попытке очистки этих ресурсов могут возникнуть ошибки.

Тестирование в средах разработки/тестирования

Настоятельно рекомендуется протестировать сценарий в средах разработки или тестирования перед использованием в рабочей среде. Это позволит вам проверить поведение сценария, выявить потенциальные проблемы и проверить ресурсы, помеченные для очистки.

Использование режима только отчёта

Для рабочих сред всегда начинайте с запуска сценария в режиме только отчёта (без параметра -DeleteResources). Это предоставляет подробный отчёт об осиротевших ресурсах, позволяя просмотреть и проверить помеченные элементы перед началом операций очистки.


Параметры

Сценарий поддерживает несколько настраиваемых параметров:

ПараметрТипПо умолчаниюОписание
SnapshotRetentionDaysInteger3Срок хранения моментальных снимков (в днях). Снимки старше этого срока будут помечены для очистки.
DeleteResourcesSwitch$falseВключает удаление выявленных ресурсов. По умолчанию сценарий только составляет отчёты.
IncludeStorageSnapshotsSwitch$trueВключает проверки моментальных снимков BLOB-объектов и файловых ресурсов. Установите значение $false, чтобы исключить эти проверки.

Вывод отчёта

Сценарий создаёт подробные отчёты в папке с отметкой времени, включая:

  • 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 (полный журнал выполненных действий)Выходной файл Excel и ведение журнала

Рекомендации

  1. Начните с режима отчётности: всегда запускайте сценарий без параметра -DeleteResources, чтобы просмотреть помеченные ресурсы.
  2. Просмотрите отчёты: внимательно проанализируйте созданные CSV-файлы перед началом операций очистки.
  3. Установите сроки хранения: настройте сроки хранения моментальных снимков в соответствии с политиками организации.
  4. Тестируйте в нерабочих средах: запускайте сценарий в средах разработки/тестирования, чтобы проверить его поведение перед использованием в рабочей среде.
  5. Запускайте в разрешённых виртуальных сетях: убедитесь, что сценарий выполняется в разрешённых виртуальных сетях, чтобы избежать сетевых ошибок при очистке учётных записей хранения.

Пример рабочего процесса

Следуйте этому рабочему процессу, чтобы безопасно очистить ресурсы Azure:

  1. Запустите сценарий в режиме отчётности:.\Azure-Resource-Cleanup.ps1
  2. Просмотрите созданные отчёты, чтобы найти помеченные ресурсы.
  3. Уверенно переходите к режиму очистки:.\Azure-Resource-Cleanup.ps1 -DeleteResources

Источники

Оставить комментарий