Отправка журналов диагностики Azure Stack Hub с помощью привилегированной конечной точки (PEP)
Чтобы запустить Get-AzureStackLog в интегрированной системе, необходимо иметь доступ к привилегированной конечной точке (PEP). Ниже приведен пример скрипта, который можно запустить с помощью 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 RP:
Get-AzureStackLog -FilterByResourceProvider SQLAdapter
Чтобы собрать журналы для MySQL RP, выполните следующую команду:
Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
Чтобы собирать журналы для центров событий, выполните приведенные действия.
Get-AzureStackLog -FilterByResourceProvider eventhub
Чтобы собрать журналы для Azure Stack Edge, выполните приведенные действия.
Get-AzureStackLog -FilterByResourceProvide databoxedge
Соберите журналы и сохраните их в указанном контейнере файлов BLOB в службе хранения Azure. Общий синтаксис для этой операции выглядит следующим образом:
Get-AzureStackLog -OutputSasUri "<Blob service SAS Uri>"
Например:
Get-AzureStackLog -OutputSasUri "https://<storageAccountName>.blob.core.windows.net/<ContainerName><SAS token>"
Заметка
Эта процедура полезна для отправки журналов. Даже если у вас нет SMB-общего ресурса или доступа к Интернету, вы можете создать учетную запись для хранения Blob в Azure Stack Hub для передачи журналов, а затем с помощью клиента загрузить эти журналы.
Чтобы создать маркер SAS для учетной записи хранения, требуются следующие разрешения:
- Доступ к службе хранилища BLOB-объектов.
- Доступ к типу ресурса контейнера.
Чтобы создать значение URI SAS для параметра
-OutputSasUri
, выполните следующие действия.- Создайте учетную запись хранения, следуя шагам в этой статье.
- Откройте экземпляр Azure Storage Explorer.
- Подключитесь к учетной записи хранения, созданной на шаге 1.
- Перейдите к контейнерам BLOB в службах хранения .
- Выберите Создать новый контейнер.
- Нажмите правой кнопкой мыши на новый контейнер, затем выберите Получить общую подпись для доступа.
- Выберите допустимое время начала и время окончанияв зависимости от ваших требований.
- Для необходимых разрешений выберите чтение, записьи список.
- Выберите Создать.
- Вы получите сигнал для общей подписи доступа. Скопируйте часть URL-адреса и предоставьте ее параметру
-OutputSasUri
.
Рекомендации по параметрам
Параметры OutputSharePath и OutputShareCredential используются для хранения журналов в указанном пользователем расположении.
Параметры FromDate и ToDate можно использовать для сбора журналов за определенный период времени. Если эти параметры не указаны, журналы собираются за последние четыре часа по умолчанию.
Используйте параметр FilterByNode для фильтрации журналов по имени компьютера. Например:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
Используйте параметр FilterByLogType для фильтрации журналов по типу. Вы можете отфильтровать файл, общий доступ или WindowsEvent. Например:
Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
Вы можете использовать параметр TimeOutInMinutes, чтобы задать таймаут для сбора журналов. По умолчанию для него задано значение 150 (2,5 часа).
Сбор журналов файлов дампа отключен по умолчанию. Чтобы включить его, используйте параметр коммутатора IncludeDumpFile.
В настоящее время можно использовать параметр FilterByRole для фильтрации коллекции журналов по следующим ролям:
ACS
ACSBlob
ACSDownloadService
ACSFabric
ACSFrontEnd
ACSMetrics
ACSMigrationService
ACSMonitoringService
Служба настроек ACS
ACSTableMaster
ACSTableServer
ACSWac
ADFS
ApplicationController
ASAppGateway
AzureBridge
AzureMonitor
BareMetal
BRP
Центр сертификации
CacheService
Вычислять
CPI
СРБ
DeploymentMachine
DiskRP
Домен
ECE
EventAdminRP
EventRP
ExternalDNS
ФабрикРинг
FabricRingServices
Служба агрегации первого уровня
FRP
Шлюз
Мониторинг здоровья
HintingServiceV2
HRP
IBC
InfraServiceController
KeyVaultAdminResourceProvider
KeyVaultControlPlane
KeyVaultDataPlane
KeyVaultInternalControlPlane
KeyVaultInternalDataPlane
KeyVaultNamingService
MDM
MetricsAdminRP
Метрики
MetricsServer
MetricsStoreService
MonAdminRP
MonRP
NC
ШлюзПриложенияБезПривилегий
NRP
OboService
OEM
OnboardRP
PXE
QueryServiceCoordinator
QueryServiceWorker
SeedRing
SeedRingServices
SLB
SQL
SRP
Хранение
Контроллер Хранилища
URP
Контроллер поддержки моста
SupportRing
SupportRingServices
SupportBridgeRP
UsageBridge
Виртуальные машины
БЫЛ
WASPUBLIC
Дополнительные рекомендации по журналам диагностики
Команда требует некоторое время для выполнения в зависимости от роли(ей), для которых собираются журналы. Факторы, влияющие на сбор журналов, также включают длительность времени, указанную для сбора журналов, и количество узлов в среде Azure Stack Hub.
При выполнении сбора журналов проверьте новую папку, созданную в параметре OutputSharePath, который указан в команде.
Каждая роль содержит свои журналы внутри отдельных ZIP-файлов. В зависимости от размера собранных журналов роль может разделить журналы на несколько ZIP-файлов. Если вы хотите распаковать все файлы журнала в одну папку, используйте инструмент, который может распаковываться пакетно. Выберите все zip-файлы для задачи и выберите извлечь здесь. Все файлы журналов для этой роли будут распакованы в единую папку.
Файл с именем Get-AzureStackLog_Output.log также создается в папке, содержащей сжатые файлы журналов. Этот файл представляет собой журнал выходных данных команды, который можно использовать для устранения неполадок во время сбора журналов. Иногда файл журнала включает
PS>TerminatingError
записи, которые можно безопасно игнорировать, если ожидаемые файлы журнала отсутствуют после выполнения сбора журналов.Чтобы изучить определенный сбой, журналы могут потребоваться из нескольких компонентов.
- Журналы систем и событий для всех виртуальных машин инфраструктуры собираются в роли VirtualMachines.
- Журналы систем и событий для всех узлов собираются в роли BareMetal.
- Отказоустойчивый кластер и журналы событий Hyper-V собираются в роли хранилища.
- Журналы ACS собираются в хранилище и в ролях ACS.
Заметка
Ограничения размера и возраста применяются к журналам, собранным по мере необходимости обеспечить эффективное использование места в хранилище и избежать переполнения журналами. Однако при диагностике проблемы иногда требуются журналы, которые больше не существуют из-за этих ограничений. Таким образом, настоятельно рекомендуется вы выгружаете журналы во внешнее место хранения (учетная запись хранения в Azure, дополнительное локальное устройство хранения и т. д.) каждые 8–12 часов и храните их там в течение 1 –3 месяцев в зависимости от ваших требований. Кроме того, необходимо убедиться, что это расположение хранилища зашифровано.
Invoke-AzureStackOnDemandLog
Вы можете использовать командлет Invoke-AzureStackOnDemandLog для создания журналов по запросу для определенных ролей (см. список в конце этого раздела). Журналы, которые создаёт этот cmdlet, по умолчанию отсутствуют в пакете журналов, который вы получаете при выполнении cmdlet 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. Журналы ETW хранятся в общей локальной папке с пятидневным сроком хранения. После достижения этого ограничения старые файлы удаляются по мере создания новых файлов. Максимальный размер по умолчанию для каждого файла составляет 200 МБ. Проверка размера выполняется каждые 2 минуты, и если текущий файл >= 200 МБ, он сохраняется и создается новый файл. Существует также ограничение на 8 ГБ общего размера файла, созданного на сеансе событий.
Get-AzureStackLog
Командлет PowerShell Get-AzureStackLog можно использовать для сбора журналов из всех компонентов в среде Azure Stack Hub. Он сохраняет их в ZIP-файлах в определяемом пользователем расположении. Если служба технической поддержки Azure Stack Hub нуждается в журналах для устранения неполадок, они могут попросить вас запустить Get-AzureStackLog.
Осторожность
Эти файлы журнала могут содержать персональные данные (PII). Учитывайте это перед публикацией всех файлов журналов публично.
Ниже приведены некоторые примеры типов журналов, собираемых:
- журналы развертывания Azure Stack Hub
- журналы событий Windows
- журналов Panther
- журналы кластера
- журналы диагностики хранилища
- журналы ETW
Эти файлы собираются и сохраняются в общей папке сборщиком трасс. Get-AzureStackLog затем можно использовать для их сбора при необходимости.