次の方法で共有


特権エンドポイント (PEP) を使用して Azure Stack Hub 診断ログを送信する

統合システムで 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
    
  • 過去 8 時間のログ ファイルの日付フィルター処理を使用して、VirtualMachines ロールと BareMetal ロールからログを収集します。

    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)
    
  • Azure Stack 上で自己管理の Kubernetes クラスター (AKS エンジン) を実行しているテナントのデプロイから、ログを収集します。 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) 
    
  • 付加価値 RP のログを収集します。 一般的な構文は次のとおりです。

    Get-AzureStackLog -FilterByResourceProvider <<value-add RP name>>
    

    SQL RP のログを収集するには:

    Get-AzureStackLog -FilterByResourceProvider SQLAdapter
    

    MySQL RP のログを収集するには:

    Get-AzureStackLog -FilterByResourceProvider MySQLAdapter
    

    Event Hubs のログを収集するには:

    Get-AzureStackLog -FilterByResourceProvider eventhub
    

    Azure Stack Edge のログを収集するには:

    Get-AzureStackLog -FilterByResourceProvide databoxedge
    
  • ログを収集して、指定された Azure Storage BLOB コンテナーに保存します。 この操作の一般的な構文は次のとおりです。

    Get-AzureStackLog -OutputSasUri "<Blob service SAS Uri>"
    

    例えば次が挙げられます。

    Get-AzureStackLog -OutputSasUri "https://<storageAccountName>.blob.core.windows.net/<ContainerName><SAS token>"
    

    この手順は、ログのアップロードに役立ちます。 アクセス可能な SMB 共有やインターネット アクセス権がない場合でも、Azure Stack Hub に BLOB ストレージ アカウントを作成してログを転送し、クライアントを使用してそれらのログを取得できます。

    ストレージ アカウントの SAS トークンを生成するには、次のアクセス許可が必要です。

    • Blob Storage サービスへのアクセス。
    • コンテナー リソースの種類へのアクセス。

    -OutputSasUri パラメーターに使用する SAS URI 値を生成するには、次の手順に従います。

    1. この記事の手順に従って、ストレージ アカウントを作成します。
    2. Azure Storage Explorer のインスタンスを開きます。
    3. 手順 1 で作成したストレージ アカウントに接続します。
    4. [Storage Service]\(Storage サービス\)[BLOB コンテナー] に移動します。
    5. [ 新しいコンテナーの作成] を選択します
    6. 新しいコンテナーを右クリックし、[ Shared Access Signature の取得] をクリックします。
    7. 要件に応じて、有効な 開始時刻終了時刻を選択します。
    8. 必要なアクセス許可については、[ 読み取り]、[ 書き込み]、[ 一覧] の順に選択します。
    9. を選択してを作成します。
    10. Shared Access Signature を取得します。 URL 部分をコピーし、 -OutputSasUri パラメーターに指定します。

パラメーターに関する考慮事項

  • OutputSharePath パラメーターと OutputShareCredential パラメーターは、ユーザー指定の場所にログを格納するために使用されます。

  • FromDate パラメーターと ToDate パラメーターを使用して、特定の期間のログを収集できます。 これらのパラメーターが指定されない場合、既定では過去 4 時間のログが収集されます。

  • コンピューター名でログをフィルター処理するには、FilterByNode パラメーターを使用します。 例えば次が挙げられます。

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByNode azs-xrp01
    
  • FilterByLogType パラメーターを使用して、種類別にログをフィルター処理します。 File、Share、または WindowsEvent を選択してフィルター処理できます。 例えば次が挙げられます。

    Get-AzureStackLog -OutputSharePath "<path>" -OutputShareCredential $cred -FilterByLogType File
    
  • TimeOutInMinutes パラメーターを使用して、ログ収集のタイムアウトを設定できます。 既定では 150 (2.5 時間) に設定されています。

  • ダンプ ファイル ログの収集は、既定では無効になっています。 これを有効にするには、 IncludeDumpFile スイッチ パラメーターを使用します。

  • 現時点では、 FilterByRole パラメーターを使用して、次のロールでログ収集をフィルター処理できます。

ACS

ACSBlob

ACSダウンロードサービス

エーシーエスファブリック

ACSFrontEnd

ACSMetrics

ACS移行サービス

ACSモニタリングサービス

ACS設定サービス

ACSTableMaster

ACSTableServer

ACSWac

ADFS

ApplicationController

ASAppGateway

AzureBridge

AzureMonitor

BareMetal

BRP

カリフォルニア州

CacheService

コンピューティング

CPI

CRP

DeploymentMachine

DiskRP

ドメイン

ECE

EventAdminRP

EventRP

ExternalDNS

ファブリックリング

FabricRingServices

第1層集約サービス

FRP

ゲートウェイ

健康モニタリング

HintingServiceV2

HRP

IBC

InfraServiceController

KeyVaultAdminResourceProvider

KeyVaultControlPlane

KeyVaultDataPlane

KeyVaultInternalControlPlane

KeyVaultInternalDataPlane

KeyVaultNamingService (キー・ボールト・ネーミング・サービス)

MDM(モバイルデバイス管理)

MetricsAdminRP

MetricsRP

MetricsServer

MetricsStoreService

MonAdminRP

MonRP

ノースカロライナ州

非特権アプリゲートウェイ

NRP

Oboサービス

OEM

OnboardRP

PXE

クエリサービス調整担当

QueryServiceWorker

SeedRing

SeedRingServices

SLB

SQL

SRP

ストレージ

ストレージコントローラ

URP

サポートブリッジコントローラ

SupportRing

SupportRingServices

SupportBridgeRP

UsageBridge

VirtualMachines

WAS

WASPUBLIC

診断ログに関するその他の考慮事項

  • このコマンドは、ログが収集するロールに基づいて実行されるまでに時間がかかります。 また、ログ収集に指定された時間と、Azure Stack Hub 環境のノード数も要因として考慮されます。

  • ログ収集が実行されたら、コマンドで指定された OutputSharePath パラメーターで作成された新しいフォルダーを確認します。

  • 各ロールには、個々の zip ファイル内にログがあります。 収集されたログのサイズによっては、ロールのログが複数の zip ファイルに分割される場合があります。 このようなロールでは、すべてのログ ファイルを 1 つのフォルダーに解凍する場合は、一括解凍できるツールを使用します。 ロールのすべての zip 形式のファイルを選択し、 ここで抽出を選択します。 そのロールのすべてのログ ファイルは、マージされた 1 つのフォルダーに解凍されます。

  • Get-AzureStackLog_Output.logという名前のファイルも、zip 形式のログ ファイルを含むフォルダーに作成されます。 このファイルはコマンド出力のログであり、ログ収集中の問題のトラブルシューティングに使用できます。 ログ ファイルに PS>TerminatingError エントリが含まれている場合があり、ログ収集の実行後に予期されるログ ファイルが見つからない場合を除き、無視しても問題ありません。

  • 特定のエラーを調査するには、複数のコンポーネントからログが必要になる場合があります。

    • すべてのインフラストラクチャ VM のシステム ログとイベント ログは、 VirtualMachines ロールで収集されます。
    • すべてのホストのシステム ログとイベント ログは BareMetal ロールで収集されます。
    • フェールオーバー クラスターと Hyper-V イベント ログは、 ストレージ ロールで収集されます。
    • ACS ログは、 ストレージ ロールと ACS ロールで収集されます。

サイズと有効期間の制限は、収集されたログに適用されます。これは、ストレージ領域を効率的に使用し、ログがあふれないようにすることが不可欠であるためです。 ただし、問題を診断するときに、これらの制限のために存在しなくなったログが必要な場合があります。 そのため、要件に応じて、8 ~ 12 時間ごとに外部ストレージ領域 (Azure のストレージ アカウント、追加のオンプレミス ストレージ デバイスなど) にログをオフロードし、1 ~ 3 か月間ログを保持することを 強くお勧めします 。 また、このストレージの場所が暗号化されていることを確認する必要があります。

Invoke-AzureStackOnDemandLog

Invoke-AzureStackOnDemandLog コマンドレットを使用して、特定のロールのオンデマンド ログを生成できます (このセクションの最後にある一覧を参照)。 このコマンドレットによって生成されたログは、 Get-AzureStackLog コマンドレットの実行時に受信するログ バンドルに既定では存在しません。 また、Microsoft サポート チームから要求された場合にのみ、これらのログを収集することをお勧めします。

現時点では、 -FilterByRole パラメーターを使用して、次のロールでログ収集をフィルター処理できます。

  • OEM
  • ノースカロライナ州
  • 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 診断ツールは、ログ収集を簡単かつ効率的にするのに役立ちます。 次の図は、診断ツールのしくみを示しています。

Azure Stack Hub 診断ツールのワークフロー図

トレース コレクター

トレース コレクターは既定で有効になっており、バックグラウンドで継続的に実行され、Azure Stack Hub コンポーネント サービスからすべての Event Tracing for Windows (ETW) ログが収集されます。 ETW ログは、5 日間の年齢制限がある共通のローカル共有に格納されます。 この制限に達すると、新しいファイルが作成されると、最も古いファイルが削除されます。 各ファイルで許可される既定の最大サイズは 200 MB です。 サイズチェックは 2 分ごとに行われ、現在のファイルが > = 200 MB の場合は保存され、新しいファイルが生成されます。 イベント セッションごとに生成される合計ファイル サイズには 8 GB の制限もあります。

Get-AzureStackLog

PowerShell コマンドレット Get-AzureStackLog を使用して、Azure Stack Hub 環境内のすべてのコンポーネントからログを収集できます。 ユーザー定義の場所にある zip ファイルに保存されます。 問題のトラブルシューティングに役立つログが Azure Stack Hub テクニカル サポート チームに必要な場合は、Get-AzureStackLog の実行を求められる場合があります。

注意事項

これらのログ ファイルには、個人を特定できる情報 (PII) が含まれている場合があります。 ログ ファイルをパブリックに投稿する前に、これを考慮してください。

収集されるログの種類の例を次に示します。

  • Azure Stack Hub のデプロイ ログ
  • Windows イベント ログ
  • Panther ログ
  • クラスター ログ
  • ストレージ診断ログ
  • ETW ログ

これらのファイルは、トレース コレクターによって収集され、共有に保存されます。 Get-AzureStackLog を使用して、必要に応じて収集できます。