Более 6360 заметок о VMware, AWS, Azure, Veeam, Kubernetes и других
VM Guru / News / Использование командлета Get-ErrorReport для сбора диагностической информации VMware PowerCLI при ошибках и решения проблем с помощью технической поддержки.
Использование командлета Get-ErrorReport для сбора диагностической информации VMware PowerCLI при ошибках и решения проблем с помощью технической поддержки.
Многие из вас используют фреймворк VMware PowerCLI для автоматизации операций в виртуальной инфраструктуре (см. статьи нашего автора Романа Гельмана). Между тем, не все знают, что PowerCLI - это точно такой же поддерживаемый продукт VMware, как и все остальные, с точки зрения обращений в техническую поддержку. То есть, если вы обнаружили некорректное поведение скрипта PowerCLI и не можете выяснить причину - то имеет смысл открыть Support Ticket.
Но чтобы инженеры VMware получили всю необходимую диагностическую информацию, часто оказывается недостаточно сгенерировать support-бандлы для хоста ESXi или сервера vCenter. Иногда нужно залезть глубже, чтобы получить информацию об API-вызовах, например, с помощью инструментов Fiddler или Wireshare.
Но можно сделать все гораздо проще - есть командлет Get-ErrorReport, который соберет для вас всю необходимую диагностическую информацию об ошибке и добавит ее в zip-пакет для отправки как вложения support-тикета. Давайте вызовем ошибку, к примеру, известную проблему PowerCLI, которая возникает при попытке переместить виртуальную машину с помощью Move-VM в виртуальный сервис vApp:
Move-VM : 11/14/2018 1:12:31 PM Move-VM A specified parameter was not correct:
PlacementSpec.relocateSpec.pool
Чтобы получить support бандл для этой ошибки, нужно использовать командлет, у которого есть следующие параметры:
Destination - директория назначения результирующего бандла.
IncludeServerLogs - нужно ли вытягивать логи с сервера, к которому мы подключены.
ProblemDescription - описание проблемы для технической поддержки.
ProblemScript - участок скрипта, который вызывает ошибку.
Таким образом, давайте попробуем вызвать командлет Get-ErrorReport:
$errorCode = {
$appsvr = Get-VM -Name appsvr02
$vapp = Get-VApp -Name DemovApp
Move-VM -VM $appsvr -Destination $vapp
}
Get-ErrorReport -ProblemScript $errorCode -Destination .\Documents\ -ProblemDescription "Using Move-VM to place a VM into a vApp"
Результатом работы сценария будет саппорт-бандл PowerCLI, лежащий в заданной папке:
Если заглянуть внутрь этого zip-пакета, то можно увидеть там следующие файлы:
PowerCLI-Main-Log.svclog
Powershell-Debug-Stream.txt
Powershell-Error-Stream.txt
Powershell-Info-Stream.txt
Powershell-Verbose-Stream.txt
Powershell-Warning-Stream.txt
Это все диагностические файлы, полный комплект которых позволит техподдержке VMware помочь решить вам вашу проблему с PowerCLI.
Кстати, файл с расширением *.svclog можно открыть с помощью инструмента Microsoft Service Stack Trace Viewer. В данном случае мы там увидим, что API-сервис вернул ошибку internal server error с кодом 500:
Для более детального исследования надо уже смотреть внутрь остальных файлов - это работа технической поддержки VMware, куда вы можете оформить запрос, используя материалы вот по этой ссылке.