チュートリアル:Azure Monitor ログを使用して Service Fabric で Windows コンテナーを監視する
これはチュートリアルの第 3 部です。Service Fabric で調整された Windows コンテナーを監視するように Azure Monitor ログを構成する手順について説明します。
このチュートリアルでは、以下の内容を学習します。
- Service Fabric クラスターの Azure Monitor ログを構成する
- コンテナーとノードのログの表示とクエリに Log Analytics ワークスペースを使用する
- Log Analytics エージェントを構成してコンテナーとノード メトリックを選択する
前提条件
このチュートリアルを始める前に、次の準備が必要です。
- Azure にクラスターを用意する、またはこのチュートリアルを参照して作成する
- コンテナー化されたアプリケーションをクラスターにデプロイする
Resource Manager テンプレートでクラスターを使用して Azure Monitor ログを設定する
このチュートリアルの第 1 部で提供されたテンプレートを使用した場合、汎用の Service Fabric Azure Resource Manager テンプレートに次の追加を行う必要があります。 Azure Monitor ログを使用したコンテナーの監視用に設定する独自のクラスターがある場合:
- Resource Manager テンプレートに次の変更を加えます。
- PowerShell を使用してデプロイし、テンプレートをデプロイしてクラスターをアップグレードします。 Azure Resource Manager はリソースが存在することを認識しているので、アップグレードとして展開されます。
クラスター テンプレートに Azure Monitor ログを追加する
template.json に次の変更を加えます。
Log Analytics ワークスペースの場所と名前を parameters セクションに追加します。
"omsWorkspacename": { "type": "string", "defaultValue": "[toLower(concat('sf',uniqueString(resourceGroup().id)))]", "metadata": { "description": "Name of your Log Analytics Workspace" } }, "omsRegion": { "type": "string", "defaultValue": "East US", "allowedValues": [ "West Europe", "East US", "Southeast Asia" ], "metadata": { "description": "Specify the Azure Region for your Log Analytics workspace" } }
いずれかに使用した値を変更するには、template.parameters.json に同じパラメーターを追加して、そのパラメーターに使用されている値を変更します。
ソリューション名とソリューションを variables に追加します。
"omsSolutionName": "[Concat('ServiceFabric', '(', parameters('omsWorkspacename'), ')')]", "omsSolution": "ServiceFabric"
仮想マシン拡張機能として Microsoft Monitoring Agent を追加します。 Virtual Machine Scale Sets リソースを見つけます: resources>"apiVersion": "[variables('vmssApiVersion')]"。 properties>virtualMachineProfile>extensionProfile>extensions 以下の ServiceFabricNode 拡張機能以下に次の拡張機能の説明を追加します。
{ "name": "[concat(variables('vmNodeType0Name'),'OMS')]", "properties": { "publisher": "Microsoft.EnterpriseCloud.Monitoring", "type": "MicrosoftMonitoringAgent", "typeHandlerVersion": "1.0", "autoUpgradeMinorVersion": true, "settings": { "workspaceId": "[reference(resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename')), '2015-11-01-preview').customerId]" }, "protectedSettings": { "workspaceKey": "[listKeys(resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename')),'2015-11-01-preview').primarySharedKey]" } } },
Log Analytics ワークスペースを個別のリソースとして追加します。 resources で、仮想マシン スケール セット リソースの後に次を追加します。
{ "apiVersion": "2015-11-01-preview", "location": "[parameters('omsRegion')]", "name": "[parameters('omsWorkspacename')]", "type": "Microsoft.OperationalInsights/workspaces", "properties": { "sku": { "name": "Free" } }, "resources": [ { "apiVersion": "2015-11-01-preview", "name": "[concat(variables('applicationDiagnosticsStorageAccountName'),parameters('omsWorkspacename'))]", "type": "storageinsightconfigs", "dependsOn": [ "[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]", "[concat('Microsoft.Storage/storageAccounts/', variables('applicationDiagnosticsStorageAccountName'))]" ], "properties": { "containers": [ ], "tables": [ "WADServiceFabric*EventTable", "WADWindowsEventLogsTable", "WADETWEventTable" ], "storageAccount": { "id": "[resourceId('Microsoft.Storage/storageaccounts/', variables('applicationDiagnosticsStorageAccountName'))]", "key": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('applicationDiagnosticsStorageAccountName')),'2015-06-15').key1]" } } }, { "apiVersion": "2015-11-01-preview", "name": "System", "type": "datasources", "dependsOn": [ "[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]" ], "kind": "WindowsEvent", "properties": { "eventLogName": "System", "eventTypes": [ { "eventType": "Error" }, { "eventType": "Warning" }, { "eventType": "Information" } ] } } ] }, { "apiVersion": "2015-11-01-preview", "location": "[parameters('omsRegion')]", "name": "[variables('omsSolutionName')]", "type": "Microsoft.OperationsManagement/solutions", "dependsOn": [ "[concat('Microsoft.OperationalInsights/workspaces/', parameters('OMSWorkspacename'))]" ], "properties": { "workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]" }, "plan": { "name": "[variables('omsSolutionName')]", "publisher": "Microsoft", "product": "[Concat('OMSGallery/', variables('omsSolution'))]", "promotionCode": "" } },
サンプル テンプレートはこちらです (このチュートリアルの第 1 部で使用されました)。これらの変更がすべて加えられており、必要に応じて参照できます。 これらの変更で、Log Analytics ワークスペースがリソース グループに追加されます。 Microsoft Azure Diagnostics エージェントで構成されたストレージ テーブルから Service Fabric プラットフォーム イベントを取得するように、ワークスペースが構成されます。 Log Analytics エージェント (Microsoft Monitoring Agent) も、仮想マシン拡張機能としてクラスターの各ノードに追加されます。つまり、クラスターを拡大縮小すると、各マシンのエージェントは自動的に構成され、同じワークスペースに接続されます。
新しい変更を加えたテンプレートをデプロイして、現在のクラスターをアップグレードします。 処理が完了すると、リソース グループにログ分析リソースが表示されます。 クラスターの準備ができたら、コンテナー化されたアプリケーションをデプロイします。 次のステップでは、コンテナーの監視を設定します。
Log Analytics ワークスペースにコンテナー監視ソリューションを追加する
ワークスペースでコンテナー ソリューションを設定するには、コンテナー監視ソリューションを検索し、([監視 + 管理] カテゴリの下に) コンテナー リソースを作成します。
"Log Analytics ワークスペース" の入力を求められたら、リソース グループに作成したワークスペースを選択し、 [作成] を選択します。 "コンテナー監視ソリューション" がワークスペースに追加され、テンプレートによってデプロイされた Log Analytics エージェントが起動され、Docker ログと統計情報の収集が開始されます。
リソース グループに戻ると、新しく追加された監視ソリューションが表示されます。 それを選択すると、ランディング ページに実行中のコンテナー イメージ数が表示されます。
チュートリアルの第 2 部の fabrikam コンテナーのインスタンスが 5 個実行されていたことがわかります
[コンテナー監視ソリューション] を選ぶと、詳細なダッシュボードが表示されます。ここでは、複数のパネルをスクロールしたり、Azure Monitor ログでクエリを実行したりできます。
エージェントが Docker ログを選択しているので、既定で stdout と stderr が表示されます。 水平方向にスクロールすると、コンテナー イメージのインベントリ、状態、メトリック、さらに役立つデータを入手するために実行できるサンプル クエリが表示されます。
これらのパネルのいずれかを選ぶと、表示されている値を生成する Kusto クエリが表示されます。 このクエリを * に変更すると、選択されている全種類のログが表示されます。 ここから、コンテナーのパフォーマンスやログのクエリやフィルターを実行したり、Service Fabric プラットフォームのイベントを確認したりすることができます。 また、エージェントは、各ノードから常にハートビートを発しているので、クラスターの構成が変わった場合に、すべてのコンピューターからデータが収集されていることをハートビートによって確認することができます。
パフォーマンス カウンターを選択するように Log Analytics エージェントを構成する
Log Analytics エージェントを使用するもう 1 つの利点として、Azure Diagnostics エージェントを構成し、毎回 Resource Manager テンプレート ベースのアップグレードを実行するのではなく、ログ分析の UI 操作で選択可能なパフォーマンス カウンターを変更できる点があります。 これを行うには、コンテナー監視 (または Service Fabric) ソリューションのランディング ページで [OMS ワークスペース] を選択します。
これにより Log Analytics ワークスペースに移動します。ここでは、ソリューションの確認、カスタム ダッシュボードの作成、Log Analytics エージェントの構成を行うことができます。
- [詳細設定] メニューを開くには、 [詳細設定] を選択します。
- [接続されたソース]>[Windows サーバー] の順に選択し、"5 台の Windows コンピューターが接続されています" と表示されることを確認します。
- [データ]>[Windows パフォーマンス カウンター] の順に選択し、新しいパフォーマンス カウンターを検索して追加します。 ここには、収集できるパフォーマンス カウンターに関する Azure Monitor ログの推奨事項の一覧と、他のカウンターを検索するオプションが表示されます。 Processor(_Total)% Processor Time カウンターと Memory(*)\Available MBytes カウンターが収集されていることを確認します。
数分後にコンテナー監視ソリューションを最新の情報に更新すると、"コンピューターのパフォーマンス" データが表示されるようになります。 これは、リソースの使用状況を把握するのに役立ちます。 また、これらのメトリックを使用して、クラスターの拡大縮小に関する適切な判断を下すことができます。また、クラスターが期待どおりに負荷を分散しているかどうかを確認することができます。
注: これらのメトリックを使用するには、時間フィルターが適切に設定されていることを確認します。
次のステップ
このチュートリアルでは、次の作業を行う方法を学びました。
- Service Fabric クラスターの Azure Monitor ログを構成する
- コンテナーとノードのログの表示とクエリに Log Analytics ワークスペースを使用する
- Log Analytics エージェントを構成してコンテナーとノード メトリックを選択する
コンテナー化されたアプリケーションの監視を構成したので、以下を試してみましょう。
- このチュートリアルと同様の手順で、Linux クラスター用に Azure Monitor ログを構成する。 このテンプレートを参照して、Resource Manager テンプレートを変更してみましょう。
- Azure Monitor ログを構成して、検出と診断に役立つ自動アラートを設定する。
- Service Fabric の推奨されるパフォーマンス カウンターの一覧を参照して、実際のクラスターに合わせて構成する。
- Azure Monitor ログの一部として提供されているログ検索とクエリ機能をよく理解します。