この記事では、次の内容について説明します。
- このサービスに対して収集できる監視データの種類。
- そのデータを分析する方法。
注記
このサービスやAzure Monitorについて既に理解していて、監視データの分析方法を知りたい場合は、この記事の最後にある「Analyze」セクションを参照してください。
Azure リソースに依存する重要なアプリケーションとビジネス プロセスがある場合は、システムのアラートを監視して取得する必要があります。 Azure Monitor サービスは、システムのすべてのコンポーネントからメトリックとログを収集して集計します。 Azure Monitorは、可用性、パフォーマンス、回復性のビューを提供し、問題を通知します。 Azure ポータル、PowerShell、Azure CLI、REST API、またはクライアント ライブラリを使用して、監視データを設定および表示できます。
- Azure Monitorの詳細については、Azure Monitorの概要を参照してください。
- Azureリソースの一般的な監視方法の詳細については、「Monitor Azure resources with Azure Monitor」を参照してください。
Load Balancerは、次の方法で他の監視データを提供します。
分析情報
Azureの一部のサービスには、Azure ポータルに組み込みの監視ダッシュボードがあり、サービスを監視するための開始点を提供します。 これらのダッシュボードは insights と呼ばれ、Azure ポータルの Insights Hub Azure Monitor で見つけることができます。
Load Balancer分析情報には次の情報が用意されています。
- 機能依存関係ビュー
- メトリック ダッシュボード
- [概要] タブ
- フロントエンドとバックエンドの可用性に関するタブ
- データ スループットに関するタブ
- フローの分布
- 接続モニター
- メトリック定義
Load Balancer分析情報の詳細については、「
リソースの種類
Azureでは、リソースの種類と ID の概念を使用して、サブスクリプション内のすべてを識別します。 リソースの種類は、Azureで実行されているすべてのリソースのリソース ID の一部でもあります。 たとえば、仮想マシンの 1 つのリソースの種類は Microsoft.Compute/virtualMachines です。 サービスとそれに関連付けられるリソースの種類の一覧については、リソース プロバイダーに関するページをご覧ください。
Azure Monitor同様に、コア監視データは、リソースの種類 (namespaces とも呼ばれます) に基づいてメトリックとログに編成されます。 リソースの種類に応じてさまざまなメトリックとログが使用できます。 サービスは、複数のリソースの種類に関連付けられる可能性があります。
Load Balancerのリソースの種類の詳細については、「Azure Load Balancer監視データリファレンスを参照してください。
データ ストレージ
Azure Monitorの場合:
- メトリック データは、Azure Monitor メトリック データベースに格納されます。
- ログ データは、Azure Monitor ログ ストアに格納されます。 Log Analyticsは、このストアに対してクエリを実行できるAzure ポータルのツールです。
- Azure アクティビティ ログは、Azure ポータル内の独自のインターフェイスを持つ別のストアです。
必要に応じて、メトリックおよびアクティビティ ログ データをAzure Monitorログ ストアにルーティングできます。 その後、Log Analyticsを使用してデータのクエリを実行し、他のログ データと関連付けることができます。
多くのサービスでは、診断設定を使用して、メトリックとログ データをAzure Monitor外の他のストレージの場所に送信できます。 たとえば、Azure Storage、ホストされたパートナー システム、非Azureパートナーシステムなどは、Event Hubs を使用します。
データAzure Monitor格納する方法の詳細については、「Azure Monitor データ プラットフォーム」を参照してください。
Azure Monitorのプラットフォーム メトリック
Azure Monitorは、ほとんどのサービスにプラットフォーム メトリックを提供します。 これらのメトリックは次のとおりです。
- 名前空間ごとに個別に定義されます。
- Azure Monitor時系列メトリック データベースに格納されます。
- 軽量であり、凖リアルタイムのアラートをサポートできます。
- リソースのパフォーマンスを時間の経過と共に追跡するために使用されます。
Collection: Azure Monitor はプラットフォーム メトリックを自動的に収集します。 構成は必要ありません。
Routing: プラットフォームの一部のメトリックを Azure Monitor ログや Log Analytics にルーティングし、他のログデータと共にクエリを実行することも可能です。 各メトリックの DS エクスポート設定を確認して、診断設定を使用してメトリックをAzure Monitorログ/Log Analyticsにルーティングできるかどうかを確認します。
- 詳細については、「メトリック診断設定」を参照してください。
- サービスの診断設定を構成するには、
Azure Monitor を参照してください。
Azure Monitor内のすべてのリソースについて収集できるすべてのメトリックの一覧については、Azure Monitor の
Azure Monitor メニューから Metrics を開くと、メトリックス エクスプローラーを使用して、他のAzure サービスからのメトリックを使用してLoad Balancerのメトリックを分析できます。 このツールの使用方法の詳細については、メトリックス エクスプローラーを使用してメトリックAzure Monitorを分析する方法に関するページを参照してください。
Load Balancerで使用可能なメトリックの一覧については、Azure Load Balancer監視データリファレンスを参照してください。
Azure Monitor のリソースログ
リソース ログは、Azure リソースによって実行された操作に関する分析情報を提供します。 ログは自動的に生成されますが、ログを保存またはクエリするにはAzure Monitorログにルーティングする必要があります。 ログはカテゴリに分類されています。 特定の名前空間に複数のリソース ログ カテゴリが含まれる場合があります。
収集: リソース ログは、"診断設定" を作成してログを 1 つ以上の場所にルーティングするまでは収集および保存されません。 診断設定を作成するときは、収集するログのカテゴリを指定します。 Azure ポータル、プログラム、Azure Policyなど、診断設定を作成して維持するには、複数の方法があります。
Routing: 他のログ データでクエリを実行できるように、リソース ログを Azure Monitor ログにルーティングすることをお勧めします。 Azure Storage、Azure Event Hubs、特定のMicrosoft監視パートナーなどのその他の場所も利用できます。 詳細については、「Azure リソース ログとリソース ログの宛先を参照してください。
リソース ログの収集、格納、およびルーティングの詳細については、Azure Monitor の
Azure Monitorで使用可能なすべてのリソース ログ カテゴリの一覧については、Azure Monitor でサポートされているリソース ログ を参照してください。
Azure Monitor内のすべてのリソース ログには同じヘッダー フィールドがあり、その後にサービス固有のフィールドが続きます。 共通スキーマの概要については、Azure Monitor リソース ログ スキーマを参照してください。
使用可能なリソース ログ カテゴリ、関連するLog Analytics テーブル、およびLoad Balancerのログ スキーマについては、Azure Load Balancer監視データリファレンスを参照してください。
診断設定の作成
リソース ログは、診断設定を作成して 1 つ以上の場所にルーティングするまでは収集および格納されません。 診断設定は、Azure ポータル、Azure PowerShell、またはAzure CLIで作成できます。
Azure ポータルを使用する方法と一般的なガイダンスについては、診断設定を参照して、Azure でプラットフォーム ログとメトリックを収集します。 PowerShell またはAzure CLIを使用するには、次のセクションを参照してください。
診断設定を作成するときは、収集するログのカテゴリを指定します。 Load Balancerのカテゴリは AllMetrics です。
PowerShell
Azure PowerShellにサインインします。
Connect-AzAccount
Log Analytics ワークスペース
リソース ログを Log Analytics ワークスペースに送信するには、次のコマンドを入力します。 角かっこで囲まれた値は、実際の値に置き換えます。
## Place the load balancer in a variable. ##
$lbpara = @{
ResourceGroupName = <your-resource-group-name>
Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
## Place the workspace in a variable. ##
$wspara = @{
ResourceGroupName = <your-resource-group-name>
Name = <your-log-analytics-workspace-name>
}
$ws = Get-AzOperationalInsightsWorkspace @wspara
## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
-ResourceId $lb.id `
-Name <your-diagnostic-setting-name> `
-Enabled $true `
-MetricCategory 'AllMetrics' `
-WorkspaceId $ws.ResourceId
ストレージ アカウント
リソース ログをストレージ アカウントに送信するには、次のコマンドを入力します。 角かっこで囲まれた値は、実際の値に置き換えます。
## Place the load balancer in a variable. ##
$lbpara = @{
ResourceGroupName = <your-resource-group-name>
Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
## Place the storage account in a variable. ##
$storpara = @{
ResourceGroupName = <your-resource-group-name>
Name = <your-storage-account-name>
}
$storage = Get-AzStorageAccount @storpara
## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
-ResourceId $lb.id `
-Name <your-diagnostic-setting-name> `
-StorageAccountId $storage.id `
-Enabled $true `
-MetricCategory 'AllMetrics'
イベント ハブ
イベント ハブの名前空間にリソース ログを送信するには、次のコマンドを入力します。 角かっこで囲まれた値は、実際の値に置き換えます。
## Place the load balancer in a variable. ##
$lbpara = @{
ResourceGroupName = <your-resource-group-name>
Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara
## Place the event hub in a variable. ##
$hubpara = @{
ResourceGroupName = <your-resource-group-name>
Name = <your-event-hub-name>
}
$eventhub = Get-AzEventHubNamespace @hubpara
## Place the event hub authorization rule in a variable. ##
$hubrule = @{
ResourceGroupName = 'myResourceGroup'
Namespace = 'myeventhub8675'
}
$eventhubrule = Get-AzEventHubAuthorizationRule @hubrule
## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
-ResourceId $lb.Id `
-Name 'myDiagSetting-event'`
-EventHubName $eventhub.Name `
-EventHubAuthorizationRuleId $eventhubrule.Id `
-Enabled $true `
-MetricCategory 'AllMetrics'
Azure CLI
Azure CLIにサインインします。
az login
Log Analytics ワークスペース
リソース ログを Log Analytics ワークスペースに送信するには、次のコマンドを入力します。 角かっこで囲まれた値は、実際の値に置き換えます。
lbid=$(az network lb show \
--name <your-load-balancer-name> \
--resource-group <your-resource-group> \
--query id \
--output tsv)
wsid=$(az monitor log-analytics workspace show \
--resource-group <your-resource-group> \
--workspace-name <your-log-analytics-workspace-name> \
--query id \
--output tsv)
az monitor diagnostic-settings create \
--name <your-diagnostic-setting-name> \
--resource $lbid \
--metrics '[{"category": "AllMetrics","enabled": true}]' \
--workspace $wsid
ストレージ アカウント
リソース ログをストレージ アカウントに送信するには、次のコマンドを入力します。 角かっこで囲まれた値は、実際の値に置き換えます。
lbid=$(az network lb show \
--name <your-load-balancer-name> \
--resource-group <your-resource-group> \
--query id \
--output tsv)
storid=$(az storage account show \
--name <your-storage-account-name> \
--resource-group <your-resource-group> \
--query id \
--output tsv)
az monitor diagnostic-settings create \
--name <your-diagnostic-setting-name> \
--resource $lbid \
--metrics '[{"category": "AllMetrics","enabled": true}]' \
--storage-account $storid
イベント ハブ
イベント ハブの名前空間にリソース ログを送信するには、次のコマンドを入力します。 角かっこで囲まれた値は、実際の値に置き換えます。
lbid=$(az network lb show \
--name <your-load-balancer-name> \
--resource-group <your-resource-group> \
--query id \
--output tsv)
az monitor diagnostic-settings create \
--name myDiagSetting-event \
--resource $lbid \
--metrics '[{"category": "AllMetrics","enabled": true}]' \
--event-hub-rule /subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group>/providers/Microsoft.EventHub/namespaces/<your-event-hub-namespace>/authorizationrules/RootManageSharedAccessKey
Azure アクティビティ ログ
アクティビティ ログには、そのリソースの外部から見た各Azure リソースの操作を追跡するサブスクリプション レベルのイベントが含まれています。たとえば、新しいリソースの作成や仮想マシンの起動などです。
Collection: アクティビティ ログ イベントが自動的に生成され、Azure ポータルで表示するために別のストアに収集されます。
Routing: アクティビティ ログ データを Azure Monitor ログに送信して、他のログ データと共に分析できます。 Azure Storage、Azure Event Hubs、特定のMicrosoft監視パートナーなどのその他の場所も利用できます。 アクティビティ ログのルーティング方法の詳細については、「Azure アクティビティ ログの概要を参照してください。
注記
ロード バランサーのアクティビティ ログには、NIC ベースのバックエンド プールの更新は含まれません。 NIC ベースのバックエンド プールのロード バランサー バックエンド プールの更新を監視してアラートを生成するには、代わりに NIC リソース レベルまたはリソース グループ レベルでログを収集することをお勧めします。
監視データを分析する
監視データを分析するためのツールは多数あります。
Azure Monitor ツール
Azure Monitorでは、次の基本的なツールがサポートされています。
Metrics エクスプローラーは、Azure リソースのメトリックを表示および分析できるAzure ポータルのツールです。 詳細については、「Azure Monitor のメトリック エクスプローラーを使用してメトリックを分析する」を参照してください。
Log Analytics は、Azure ポータルのツールで、Kusto クエリ言語 (KQL) を使用してログ データのクエリと分析を行うことができます。 詳細については、「Get started with log queries in Azure Monitor」を参照してください。
アクティビティログは、Azureポータルで閲覧や基本的な検索を行うためのユーザーインターフェースを備えています。 より詳細な分析を行うには、データをAzure Monitorログにルーティングし、Log Analyticsでより複雑なクエリを実行する必要があります。
より複雑な視覚化を可能にするツールは次のとおりです。
- Dashboards Azure ポータルでさまざまな種類のデータを 1 つのウィンドウに結合できます。
- Workbooks は、Azure ポータルで作成できるカスタマイズ可能なレポートです。 ワークブックには、テキスト、メトリック、ログクエリを含めることができます。
- Grafana。運用ダッシュボードに優れたオープン プラットフォーム ツール。 Grafana を使用して、Azure Monitor以外の複数のソースからのデータを含むダッシュボードを作成できます。
- Power BI は、さまざまなデータ ソース間で対話型の視覚化を提供するビジネス分析サービスです。 これらの視覚化を利用するために、Azure Monitorからログ データを自動的にインポートするようにPower BIを構成できます。
Azure Monitor エクスポート ツール
次の方法を使用して、Azure Monitorから他のツールにデータを取り込むことができます。
Metrics:REST API を使用してメトリックAzure Monitor メトリック データベースからメトリック データを抽出します。 この API では、取得したデータを絞り込むためのフィルター式がサポートされています。 詳細については、「Azure Monitor REST API リファレンスを参照してください。
ログ: REST API または関連するクライアント ライブラリを使用します。
もう 1 つのオプションは、ワークスペース データのエクスポートです。
REST API for Azure Monitorの使用を開始するには、REST API の監視に関するチュートリアルAzureを参照してください。
VNet フロー ログを使用したLoad Balancer トラフィックの分析
仮想ネットワーク フロー ログ は、仮想ネットワークを通過する IP トラフィックに関する情報をログに記録するAzure Network Watcherの機能です。 仮想ネットワーク フロー ログからのフロー データは、Azure Storageに送信されます。 そこからデータにアクセスし、任意の視覚化ツール、セキュリティ情報イベント管理 (SIEM) ソリューション、または侵入検出システム (IDS) にエクスポートできます。
仮想ネットワーク フロー ログを作成して管理するための一般的なガイダンスについては、「仮想ネットワーク フロー ログの管理」を参照してください。 仮想ネットワーク フロー ログを作成したら、Log Analytics ワークスペース 上のデータにアクセスできます。ここで、データのクエリとフィルター処理を行って、Load Balancerを通過するトラフィックを特定することもできます。 仮想ネットワーク フロー ログ スキーマの詳細については、「トラフィック分析スキーマとデータ集計」を参照してください。
仮想ネットワーク フロー ログを作成するときに Traffic Analytics を有効にすることで、トラフィックの分散、トラフィック パターン、使用されるアプリケーション ポート、仮想ネットワークのトップ トーカーなどのフロー ログ データに関する分析情報と視覚化が提供されます。
VNet フロー ログのLog Analytics クエリ
特定のLoad Balancerに接続されている受信フローのログを表示するには:
NTANetAnalytics
| where DestLoadBalancer == '<Subscription ID>/<Resource Group name>/<Load Balancer name>'
Log Analytics ワークスペースで上記のクエリを使用し、Load Balancerの有効な値で文字列を更新します。 Log Analyticsの使用方法の詳細については、Log Analytics チュートリアルを参照してください。
接続のソース IP を表示する場合、
SrcIp列またはSrcPublicIps列が設定されます。 悪意のないパブリックまたはAzureサービス所有の IP アドレスから送信されるすべてのトラフィックは、SrcPublicIpsに表示され、他のすべてのソース IP はSrcIPに表示されます。 トラフィックの種類の詳細が必要な場合は、FlowType列を使用して、フローに関係するさまざまな種類の IP アドレスをフィルター処理できます。 「 トラフィック分析スキーマとデータ集約に関する注釈 」を参照すると、FlowTypeフィールドの定義がわかります。DestIP、MacAddress、DestVM、TargetResourceID、DestNicのいずれかの列を使用して、受信接続で使用されているバックエンド プール インスタンスを特定します。これらのログを使用して、ポート情報、プロトコル、トラフィック サイズなど、Load Balancerを通過する接続に関する詳細情報を、宛先と送信元から送信されたパケットとバイト数で収集できます。
Kusto クエリ
Kusto クエリ言語 (KQL) を使用して、Azure Monitor ログ/Log Analytics ストアの監視データを分析できます。
重要
ポータルのサービスのメニューから Logs を選択すると、クエリ スコープが現在のサービスに設定された状態でLog Analyticsが開きます。 このスコープは、ログ クエリにその種類のリソースのデータのみが含まれることを意味します。 他のAzure サービスからのデータを含むクエリを実行する場合は、
サービスに対する一般的なクエリの一覧については、Log Analytics クエリ インターフェイスを参照してください。
警告
Azure Monitorアラートは、監視データに特定の条件が見つかった場合に事前に通知します。 アラートにより、ユーザーが気付く前に、管理者が問題を識別して対処できます。 詳細については、「Azure Monitor アラート」を参照してください。
Azure リソースに関する一般的なアラートには多くのソースがあります。 Azure リソースの一般的なアラートの例については、「サンプル ログ アラート クエリを参照してください。 Azure Monitor ベースライン アラート (AMBA) サイトには、重要なプラットフォーム メトリック アラート、ダッシュボード、ガイドラインを実装するための半自動化された方法が用意されています。 このサイトは、Azure ランディング ゾーン (ALZ) の一部であるすべてのサービスを含む、Azure サービスの継続的に拡張されるサブセットに適用されます。
一般的なアラート スキーマは、Azure Monitorアラート通知の使用を標準化します。 詳細については、「共通アラート スキーマ」をご覧ください。
アラートの種類
Azure Monitor データ プラットフォーム内の任意のメトリックまたはログ データ ソースに対してアラートを生成できます。 監視するサービスと収集する監視データに応じて、さまざまな種類のアラートがあります。 アラートの種類に応じて、さまざまな利点と欠点があります。 詳細については、適切な種類の監視アラートの選択に関するページをご覧ください。
次の一覧では、作成できるAzure Monitorアラートの種類について説明します。
- メトリック アラートでは、リソース メトリックを定期的に評価します。 メトリックには、プラットフォーム メトリック、カスタム メトリック、Azure Monitorからメトリックに変換されたログ、または Application Insights メトリックを指定できます。 メトリック警告では、複数の条件と動的しきい値を適用することもできます。
- Log alerts を使用すると、ユーザーはLog Analytics クエリを使用して、定義済みの頻度でリソース ログを評価できます。
- アクティビティ ログ アラートは、定義された条件と一致する新しいアクティビティ ログ イベントが発生したときにトリガーされます。 Resource Healthアラートとサービス正常性アラートは、サービスおよびリソース正常性に関して報告するアクティビティ ログ アラートです。
一部のAzureサービスでは、スマート検出アラート、Prometheus アラート、または で推奨されるアラート ルールもサポートされています。
一部のサービスでは、同じAzure リージョンに存在する同じ種類の複数のリソースに同じメトリック アラート ルールを適用することで、大規模に監視できます。 監視対象リソースごとに個別の通知が送信されます。 サポートされているAzure サービスとクラウドに関しては、「Monitor multiple resources with one alert rule」を参照してください。
注記
サービスで実行されるアプリケーションを作成または実行している場合は、Azure Monitor application insights により多くの種類のアラートが提供される場合があります。
ロードバランサーのアラートルール
次の表に、Load Balancerに推奨されるアラート ルールをいくつか示します。 これらのアラートは例に過ぎません。 Azure Load Balancer監視データリファレンスに記載されている任意のメトリック、ログ エントリ、またはアクティビティ ログ エントリのアラートを設定できます。
| アラートの種類 | 条件 | 説明 |
|---|---|---|
| VM が使用できないため、負荷分散規則を使用できない | フロントエンド IP アドレスとフロントエンド ポート (既知および将来のすべての値) で分割されたデータ パスの可用性が 0 に等しい場合、または 2 次独立アラートにおいて正常性プローブ状態が 0 に等しい場合に、アラートが発生します | これらのアラートは、関連するバックエンド プール内のすべての VM が構成済み正常性プローブによってプローブ対象外にされているため、構成された負荷分散規則のデータ パスの可用性がトラフィックを処理できていないかどうかを判断するのに役立ちます。 |
| VM の可用性が大幅に低い | バックエンド IP とバックエンド ポートで分割された正常性プローブの状態が、プール サイズ全体のユーザー定義のプローブ対象率 (つまり、25% がプローブ対象) と等しい場合は、アラートを発生します | このアラートは、トラフィックを処理するために利用可能な VM が必要数に達していないかどうかを判断します |
| インターネット エンドポイントへの送信接続が失敗する | "接続状態" = "失敗" でフィルター処理された SNAT 接続数が 0 より大きい場合は、アラートを発生します | このアラートは、SNAT ポートが使い果たされ、VM が送信接続を開始できなかった場合に発生します。 |
| SNAT の枯渇に近づいている | 使用された SNAT ポートがユーザー定義の数を超えている場合、アラートを発生します | このアラートには、常に同じ数のポートが割り当てられる静的な送信の構成が必要です。 その後、割り当てられたポートのうち一定の割合が使用された場合に発生します。 |
Advisor の推奨事項
一部のサービスでは、リソースの操作中にクリティカルな条件や差し迫った変更が発生した場合は、ポータルのサービス [概要] ページにアラートが表示されます。 アラートの詳細と推奨される修正は、左側のメニューの [監視] の下の [アドバイザーのレコメンデーション] に表示されます。 通常の操作中、アドバイザーのレコメンデーションは表示されません。
Azure Advisorの詳細については、「Azure Advisorの概要を参照してください。
関連するコンテンツ
- Azure Load Balancer監視データのリファレンスを参照して、Load Balancer用に作成されたメトリック、ログ、およびその他の重要な値を参照してください。
- Azure リソースの監視の一般的な詳細については、 Azure Monitor を使用したAzure リソースの監視に関するページを参照してください。