Отправка журналов диагностики Azure Stack Hub с помощью привилегированной конечной точки
Чтобы запустить Get-AzureStackLog в интегрированной системе, необходимо иметь доступ к привилегированной конечной точке (PEP). Ниже приведен пример скрипта, который можно выполнить с использованием привилегированной конечной точки для сбора журналов. Если вы отменяете выполняющуюся коллекцию журналов, чтобы начать новую, подождите 5 минут перед запуском новой коллекции журналов и введите Remove-PSSession -Session $session
.
$ipAddress = "<IP ADDRESS OF THE PEP VM>" # You can also use the machine name instead of IP here.
$password = ConvertTo-SecureString "<CLOUD ADMIN PASSWORD>" -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential ("<DOMAIN NAME>\CloudAdmin", $password)
$shareCred = Get-Credential
$session = New-PSSession -ComputerName $ipAddress -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
$fromDate = (Get-Date).AddHours(-8)
$toDate = (Get-Date).AddHours(-2) # Provide the time that includes the period for your issue
Invoke-Command -Session $session { Get-AzureStackLog -OutputSharePath "<EXTERNAL SHARE ADDRESS>" -OutputShareCredential $using:shareCred -FilterByRole Storage -FromDate $using:fromDate -ToDate $using:toDate}
if ($session) {
Remove-PSSession -Session $session
}
Примеры
Соберите все журналы для всех ролей:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred
Соберите журналы из ролей VirtualMachines и BareMetal:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal
Соберите журналы из ролей VirtualMachines и BareMetal с фильтром по дате для файлов журнала за последние 8 часов:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8)
Соберите журналы из ролей VirtualMachines и BareMetal с фильтром по дате для файлов журнала за период времени между последними 8 и 2 часами:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByRole VirtualMachines,BareMetal -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
Соберите журналы из развертываний клиентов, в которых выполняются самостоятельно управляемые кластеры Kubernetes (обработчик AKS) в Azure Stack. Журналы Kubernetes должны храниться в учетной записи хранения клиента в формате, который позволяет применять к ним диапазон времени сбора.
Get-AzureStackLog -OutputPath <Path> -InputSasUri "<Blob Service Sas URI>" -FromDate "<Beginning of the time range>" -ToDate "<End of the time range>"
Например:
Get-AzureStackLog -OutputPath C:\KubernetesLogs -InputSasUri "https://<storageAccountName>.blob.core.windows.net/<ContainerName><SAS token>" -FromDate (Get-Date).AddHours(-8) -ToDate (Get-Date).AddHours(-2)
Соберите журналы для поставщиков дополнительных ресурсов. Далее приводится общий синтаксис ограничений.
Get-AzureStackLog -FilterByResourceProvider <<value-add RP name>>
Сбор журналов для поставщика ресурсов SQL:
Get-AzureStackLog -FilterByResourceProvider SQLAdapter
Сбор журналов для поставщика ресурсов MySQL:
Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
Сбор журналов для Центров событий:
Get-AzureStackLog -FilterByResourceProvider eventhub
Чтобы собрать журналы для Azure Stack Edge, выполните приведенные далее действия.
Get-AzureStackLog -FilterByResourceProvide databoxedge
Соберите журналы и сохраните их в указанном контейнере больших двоичных объектов хранилища Azure. Ниже приведен общий синтаксис данной операции.
Get-AzureStackLog -OutputSasUri "<Blob service SAS Uri>"
Например:
Get-AzureStackLog -OutputSasUri "https://<storageAccountName>.blob.core.windows.net/<ContainerName><SAS token>"
Примечание
Эта процедура удобна для передачи журналов. Даже если общий ресурс SMB недоступен и нет подключения к Интернету, вы можете создать учетную запись хранения больших двоичных объектов в Azure Stack Hub, чтобы передать в нее журналы, а затем извлечь их с помощью клиента.
Чтобы создать маркер SAS учетной записи хранения, требуются следующие разрешения:
- доступ к службе хранилища BLOB-объектов;
- доступ к типу ресурса контейнера.
Чтобы создать значение универсального кода ресурса SAS, которое будет использоваться для параметра
-OutputSasUri
, выполните следующие шаги.- Создайте учетную запись хранения, выполните шаги из этой статьи.
- Откройте экземпляр Обозревателя службы хранилища Azure.
- Подключитесь к учетной записи хранения, созданной во время выполнения шага 1.
- Перейдите в Контейнеры больших двоичных объектов в службе хранилища.
- Выберите Создать контейнер.
- Щелкните правой кнопкой мыши новый контейнер, а затем щелкните Get Shared Access Signature (Получить подписанный URL-адрес).
- Выберите допустимое Время начала и Время окончания, зависящее от требований.
- Чтобы получить необходимые разрешения, выберите Чтение, Запись и Список.
- Нажмите кнопку создания.
- Вы получите подписанный URL-адрес. Скопируйте из него URL-адреса и внесите ее в параметр
-OutputSasUri
.
Рекомендации по настройке параметров
Параметры OutputSharePath и OutputShareCredential используются для сохранения журналов в указанном пользователем расположении.
Параметры FromDate и ToDate можно использовать для сбора журналов за конкретный период времени. Если эти параметры не указаны, по умолчанию журналы собираются за последние четыре часа.
Чтобы фильтровать журналы по имени компьютера, используйте параметр FilterByNode. Пример.
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
Используйте параметр FilterByLogType для фильтрации журналов по типу. Доступна фильтрация по файлу, общему ресурсу или по событию Windows. Пример.
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
Задать время ожидания для сбора журналов можно с помощью параметра TimeOutInMinutes. По умолчанию для него задано значение 150 (2,5 часа).
Сбор журналов файлов дампа отключен по умолчанию. Чтобы включить его, используйте параметр-переключатель IncludeDumpFile.
Сейчас можно использовать параметр FilterByRole, чтобы отфильтровать сбор журналов по следующим ролям.
ACS
ACSBlob
ACSDownloadService
ACSFabric
ACSFrontEnd
ACSMetrics
ACSMigrationService
ACSMonitoringService
ACSSettingsService
ACSTableMaster
ACSTableServer
ACSWac
ADFS
ApplicationController
ASAppGateway
AzureBridge
AzureMonitor
BareMetal
BRP
CA
CacheService
Вычисления
CPI
CRP
DeploymentMachine
DiskRP
Домен
ECE
EventAdminRP
EventRP
ExternalDNS
FabricRing
FabricRingServices
FirstTierAggregationService
FRP
Шлюз
HealthMonitoring
HintingServiceV2
HRP
IBC
InfraServiceController
KeyVaultAdminResourceProvider
KeyVaultControlPlane
KeyVaultDataPlane
KeyVaultInternalControlPlane
KeyVaultInternalDataPlane
KeyVaultNamingService
MDM
MetricsAdminRP
MetricsRP
MetricsServer
MetricsStoreService
MonAdminRP
MonRP
NC
NonPrivilegedAppGateway
NRP
OboService
OEM
OnboardRP
PXE
QueryServiceCoordinator
QueryServiceWorker
SeedRing
SeedRingServices
SLB
SQL
SRP
Память
StorageController
URP
SupportBridgeController
SupportRing
SupportRingServices
SupportBridgeRP
UsageBridge
VirtualMachines
WAS
WASPUBLIC
Дополнительные замечания о журналах диагностики
Выполнение команды займет некоторое время в зависимости от того, по какой роли (ролям) собираются журналы. К ключевым факторам также относится промежуток времени, указанный для сбора журналов, а также количество узлов в среде Azure Stack Hub.
После завершения сбора журналов проверьте новую папку, созданную в расположении, которое задано в параметре OutputSharePath, указанном в команде.
Журналы каждой роли хранятся в отдельных ZIP-файлах. В зависимости от размера собранных журналов роли могут быть разделены на несколько ZIP-файлов. Если необходимо распаковать все файлы такой роли в одну папку, используйте инструмент, поддерживающий массовую распаковку. Выберите все ZIP-файлы для роли и щелкните extract here (Извлечь сюда). Все файлы журналов для этой роли будут распакованы в одну объединенную папку.
Файл Get-AzureStackLog_Output.log также создается в папке, содержащей ZIP-файлы журналов. Этот файл представляет собой журнал выходных данных команды, который можно использовать для устранения неполадок во время сбора журналов. Иногда в файле журнала содержатся записи
PS>TerminatingError
, которые можно безопасно игнорировать, если ожидаемые файлы журналов не отсутствуют после выполнения сбора журналов.Для изучения конкретного сбоя могут понадобиться журналы из нескольких компонентов.
- Системные журналы и журналы событий для всех виртуальных машин инфраструктуры собираются в роли VirtualMachines .
- Системные журналы и журналы событий для всех узлов собираются в роли BareMetal .
- Журналы событий отказоустойчивого кластера и Hyper-V собираются в роли хранилища .
- Журналы ACS собираются в роли Storage и ACS.
Примечание
К собранным журналам применяются ограничения размера и возраста, так как очень важно обеспечить эффективное использование дискового пространства и не переполнять его журналами. Но иногда при диагностике проблемы могут понадобиться журналы, которые уже удалены из-за этих ограничений. Поэтому мы настоятельно рекомендуем переносить журналы во внешнее дисковое пространство (учетная запись хранения в Azure, дополнительное локальное устройство хранения данных и т. д.) каждые 8–12 часов и хранить их там 1–3 месяца в зависимости от ваших требований. Кроме того, такое место хранения должно быть зашифровано.
Invoke-AzureStackOnDemandLog
Командлет Invoke-AzureStackOnDemandLog можно использовать для создания журналов по требованию для определенных ролей (см. список в конце раздела). Журналы, созданные с помощью этого командлета, отсутствуют в комплекте журналов, который вы получаете по умолчанию при выполнении командлета Get-AzureStackLog. Мы рекомендуем собирать эти журналы только по запросу службы технической поддержки Майкрософт.
Сейчас можно использовать параметр -FilterByRole
, чтобы отфильтровать сбор журналов по следующим ролям:
- OEM
- NC
- SLB
- Шлюз
Пример журналов диагностики, собираемых по требованию
$ipAddress = "<IP ADDRESS OF THE PEP VM>" # You can also use the machine name instead of IP here.
$password = ConvertTo-SecureString "<CLOUD ADMIN PASSWORD>" -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential ("<DOMAIN NAME>\CloudAdmin", $password)
$shareCred = Get-Credential
$session = New-PSSession -ComputerName $ipAddress -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
$fromDate = (Get-Date).AddHours(-8)
$toDate = (Get-Date).AddHours(-2) # Provide the time that includes the period for your issue
Invoke-Command -Session $session {
Invoke-AzureStackOnDemandLog -Generate -FilterByRole "<on-demand role name>" # Provide the supported on-demand role name e.g. OEM, NC, SLB, Gateway
Get-AzureStackLog -OutputSharePath "<external share address>" -OutputShareCredential $using:shareCred -FilterByRole Storage -FromDate $using:fromDate -ToDate $using:toDate
}
if ($session) {
Remove-PSSession -Session $session
}
Как работает сбор журналов диагностики с помощью PEP
Средства диагностики Azure Stack Hub помогают сделать сбор журналов простым и эффективным. На следующей схеме показано, как работают средства диагностики.
Сборщик трассировки
Сборщиком трассировки включен по умолчанию и постоянно работает в фоновом режиме для сбора всех журналов трассировки событий Windows (ETW) из служб компонентов Azure Stack Hub. Журналы трассировки событий Windows хранятся в общей локальной папке в течение пяти дней. По достижении этого ограничения самые старые файлы удаляются и создаются новые. Максимальный размер файла по умолчанию составляет 200 МБ. Размер проверка происходит каждые 2 минуты, и если текущий файл равен >200 МБ, он сохраняется и создается новый файл. Кроме того, есть ограничение в 8 ГБ для общего размера файлов, создаваемых во время сеанса событий.
Get-AzureStackLog;
Командлет PowerShell Get-AzureStackLog можно использовать для сбора журналов из всех компонентов в среде Azure Stack Hub. Она сохраняет их в ZIP-файлы в расположении, определяемом пользователем. Если сотрудникам службы технической поддержки Azure Stack Hub понадобятся журналы для устранения проблемы, они могут попросить вас выполнить командлет Get-AzureStackLog.
Внимание!
Эти файлы журналов могут содержать личные сведения. Учитывайте это, прежде чем открыто публиковать какие-либо файлы журналов.
Ниже приведены несколько примеров собираемых типов журналов:
- журналы развертывания Azure Stack Hub;
- журналы событий Windows;
- журналы Panther.
- журналы кластера;
- журналы диагностики хранилища;
- Журналы трассировки событий Windows
Эти файлы собираются и сохраняются в файловом ресурсе сборщиком трассировки. Затем при необходимости их можно будет собрать с помощью командлета Get-AzureStackLog.