診断ログを設定する

Analysis Services ソリューションの重要な部分は、サーバーのパフォーマンスを監視することです。 Azure Analysis Services の監視に関する一般的な情報については、「Azure Analysis Services を監視する」を参照してください。

この記事では、Analysis Services サーバーの Azure Monitor リソースのログを設定、表示、管理する方法について説明します。 リソース ログを Azure Storage に送信したり、Azure Event Hubs にストリーム配信したり、Azure Monitor ログにエクスポートしたりすることができます。

Resource logging to Storage, Event Hubs, or Azure Monitor logs

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を開始するには、Azure PowerShell のインストールに関する記事を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

ログに記録されるもの

[エンジン][サービス][メトリック] のログ カテゴリを選択できます。 カテゴリごとにログに記録される内容の一覧については、「Microsoft.AnalysisServices/servers でサポートされているリソース ログ」を参照してください。

診断ログの設定

Azure portal

  1. Azure portal> サーバーで、左のナビゲーションにある [診断設定] をクリックしてから、[診断をオンにする] をクリックします。

    Screenshot showing Turn on diagnostics in the Azure portal.

  2. [診断設定] で、次のオプションを指定します。

    • 名前。 作成するログの名前を入力します。

    • [ストレージ アカウントへのアーカイブ] 。 このオプションを使用するには、接続先として既存のストレージ アカウントが必要です。 「ストレージ アカウントを作成する」を参照してください。 指示に従って、Resource Manager の汎用アカウントを作成し、ポータルのこのページに戻ってストレージ アカウントを選択します。 新しく作成されたストレージ アカウントがドロップダウン メニューに表示されるまでには、数分かかる場合があります。

    • イベント ハブにストリーミングします。 このオプションを使用するには、既存の Event Hubs 名前空間と接続先のイベント ハブが必要です。 詳細については、「Azure Portal を使用して Event Hubs 名前空間とイベント ハブを作成する」をご覧ください。 Portal でこのページに戻り、Event Hubs 名前空間とポリシー名を選択します。

    • Azure Monitor (Log Analytics ワークスペース) に送信します。 このオプションを使用するには、既存のワークスペースを使用するか、またはポータルで新しいワークスペース リソースを作成します。 ログを表示する方法について詳しくは、この記事の「Log Analytics ワークスペースでログを表示する」をご覧ください。

    • エンジン。 xEvents をログ記録するには、このオプションを選択します。 ストレージ アカウントにアーカイブする場合、リソース ログの保持期間を選択できます。 リテンション期間が過ぎると、ログは自動的に削除されます。

    • サービス。 サービス レベル イベントをログ記録するには、このオプションを選択します。 ストレージ アカウントにアーカイブする場合、リソース ログの保持期間を選択できます。 リテンション期間が過ぎると、ログは自動的に削除されます。

    • メトリックメトリックに詳細データを保存するには、このオプションを使用します。 ストレージ アカウントにアーカイブする場合、リソース ログの保持期間を選択できます。 リテンション期間が過ぎると、ログは自動的に削除されます。

  3. [保存] をクリックします。

    "<ワークスペース名> の診断を更新できませんでした。 サブスクリプション <サブスクリプション ID> は microsoft.insights を使用するために登録されていません。" というエラーが表示される場合は、Azure Diagnostics のトラブルシューティングに関する指示に従ってアカウントを登録してから、この手順を再試行してください。

    今後、リソース ログを保存する方法を変更する場合は、このページに戻って設定を変更できます。

PowerShell

興味を引く基本的なコマンドを次に示します。 PowerShell を使用してストレージ アカウントにログ記録をセットアップする詳細な手順が必要な場合は、この記事で後述するチュートリアルを参照してください。

PowerShell を使用してメトリックとリソースのログ記録を有効にするには、次のコマンドを使用します。

  • ストレージ アカウントでのリソース ログの保存を有効にするには、次のコマンドを使います。

    Set-AzDiagnosticSetting -ResourceId [your resource id] -StorageAccountId [your storage account id] -Enabled $true
    

    ストレージ アカウント ID は、ログの送信先となるストレージ アカウントのリソース ID です。

  • イベント ハブへのリソース ログのストリーミングを有効にするには、次のコマンドを使います。

    Set-AzDiagnosticSetting -ResourceId [your resource id] -ServiceBusRuleId [your service bus rule id] -Enabled $true
    

    Azure Service Bus ルール ID は、次の形式の文字列です。

    {service bus resource ID}/authorizationrules/{key name}
    
  • Log Analytics ワークスペースへのリソース ログの送信を有効にするには、次のコマンドを使用します。

    Set-AzDiagnosticSetting -ResourceId [your resource id] -WorkspaceId [resource id of the log analytics workspace] -Enabled $true
    
  • 次のコマンドを使用して、Log Analytics ワークスペースのリソース ID を取得できます。

    (Get-AzOperationalInsightsWorkspace).ResourceId
    

このパラメーターを組み合わせて、複数の出力オプションを有効にできます。

REST API

Azure Monitor の REST API を使用して診断設定を変更する方法を学習します。

Resource Manager テンプレート

Resource Manager テンプレートを使用してリソースの作成時に診断設定を有効にする方法を学習します。

ログを管理する

ログは通常、ログをセットアップしてから 2 時間以内に利用できるようになります。 ストレージ アカウントでのログの管理はお客様に委ねられます。

  • 標準的な Azure アクセス制御メソッドを使用してアクセスできるユーザーを制限することで、ログをセキュリティで保護します。
  • ストレージ アカウントに保持する必要がなくなったログは削除します。
  • 古いログをストレージ アカウントから削除するためのリテンション期間を必ず設定してください。

Log Analytics ワークスペースでログを表示する

診断データを表示するには、Log Analytics ワークスペースの左側のメニューから、[ログ] を開きます。

Screenshot showing log Search options in the Azure portal.

クエリ ビルダーで、LogManagement>AzureDiagnostics を展開します。 AzureDiagnostics には、エンジンとサービスのイベントが含まれています。 クエリが即座に作成されることに注目してください。 EventClass_s フィールドには、オンプレミスのログ記録の xEvents を使用している場合にはなじみのある、xEvent 名が含まれています。 [EventClass_s] またはイベント名のいずれかをクリックすると、Log Analytics ワークスペースでクエリの作成が続行されます。 後で再利用するため、クエリは必ず保存しておいてください。

Analysis Services で使用できるその他のクエリについては、「サンプル Kusto クエリ」を参照してください。

PowerShell を使用してログ記録を有効にする

このクイック チュートリアルでは、Analysis Service サーバーと同じサブスクリプションとリソース グループでストレージ アカウントを作成します。 次に、Set-AzDiagnosticSetting を使用して、診断ログを有効にし、出力を新しいストレージ アカウントに送信します。

前提条件

このチュートリアルを完了するには、以下のリソースが必要です。

サブスクリプションへの接続

Azure PowerShell セッションを開始し、次のコマンドで Azure アカウントにサインインします。

Connect-AzAccount

ポップアップ ブラウザー ウィンドウで、Azure アカウントのユーザー名とパスワードを入力します。 Azure PowerShell は、このアカウントに関連付けられているすべてのサブスクリプションを取得し、既定で最初のサブスクリプションを使用します。

複数のサブスクリプションをお持ちの場合は、Azure Key Vault を作成するときに使用した特定の 1 つを指定することが必要なことがあります。 アカウントのサブスクリプションを確認するには、次を入力します。

Get-AzSubscription

ログを記録する Azure Analysis Services アカウントに関連付けられているサブスクリプションを指定するには、次を入力します。

Set-AzContext -SubscriptionId <subscription ID>

Note

複数のサブスクリプションがアカウントに関連付けられている場合は、サブスクリプションを指定することが重要です。

ログ用に新しいストレージ アカウントを作成する

ログの既存のストレージ アカウントがサーバーと同じサブスクリプション内にある場合は、それを使用できます。 このチュートリアルでは、Analysis Services ログ専用の新しいストレージ アカウントを作成します。 便宜上、ストレージ アカウントの詳細を sa という変数に格納します。

また、お使いの Analysis Services サーバーを含むリソース グループと同じリソース グループを使用します。 awsales_resgroupawsaleslogsWest Central US の値を独自の値に置き換えます。

$sa = New-AzStorageAccount -ResourceGroupName awsales_resgroup `
-Name awsaleslogs -Type Standard_LRS -Location 'West Central US'

ログのサーバー アカウントを特定する

アカウント名を account という変数に設定します。この ResourceName は、アカウントの名前です。

$account = Get-AzResource -ResourceGroupName awsales_resgroup `
-ResourceName awsales -ResourceType "Microsoft.AnalysisServices/servers"

ログの有効化

ログ記録を有効にするために、Set-AzDiagnosticSetting コマンドレットを、新しいストレージ アカウント、サーバー アカウント、およびカテゴリの変数と組み合わせて使用します。 次のコマンドを実行し、 -Enabled フラグを $true に設定します。

Set-AzDiagnosticSetting  -ResourceId $account.ResourceId -StorageAccountId $sa.Id -Enabled $true -Categories Engine

出力は次の例のようになります。

StorageAccountId            : 
/subscriptions/a23279b5-xxxx-xxxx-xxxx-47b7c6d423ea/resourceGroups/awsales_resgroup/providers/Microsoft.Storage/storageAccounts/awsaleslogs
ServiceBusRuleId            :
EventHubAuthorizationRuleId :
Metrics                    
    TimeGrain       : PT1M
    Enabled         : False
    RetentionPolicy
    Enabled : False
    Days    : 0


Logs                       
    Category        : Engine
    Enabled         : True
    RetentionPolicy
    Enabled : False
    Days    : 0


    Category        : Service
    Enabled         : False
    RetentionPolicy
    Enabled : False
    Days    : 0


WorkspaceId                 :
Id                          : /subscriptions/a23279b5-xxxx-xxxx-xxxx-47b7c6d423ea/resourcegroups/awsales_resgroup/providers/microsoft.analysisservic
es/servers/awsales/providers/microsoft.insights/diagnosticSettings/service
Name                        : service
Type                        :
Location                    :
Tags                        :

この出力を見れば、ログ記録がサーバーに対して有効になっていること、ストレージ アカウントに情報が保存されることを確認できます。

古いログが自動的に削除されるように、ログのアイテム保持ポリシーを設定することもできます。 たとえば、 -RetentionEnabled フラグを $true に設定し、 -RetentionInDays パラメーターを 90 に設定したアイテム保持ポリシーを設定します。 90 日を経過したログは自動的に削除されます。

Set-AzDiagnosticSetting -ResourceId $account.ResourceId`
 -StorageAccountId $sa.Id -Enabled $true -Categories Engine`
  -RetentionEnabled $true -RetentionInDays 90

次のステップ