ラボの回答キー: ハイブリッド シナリオでの運用監視の実装

            **メモ:** このラボをご自分のペースでクリックして進めることができる、 **[ラボの対話型シミュレーション](https://mslabs.cloudguides.com/guides/AZ-801%20Lab%20Simulation%20-%20Implementing%20operational%20monitoring%20in%20hybrid%20scenarios)** が用意されています。 対話型シミュレーションとホストされたラボの間に若干の違いがある場合がありますが、示されている主要な概念とアイデアは同じです。 

演習 1: 監視環境の準備

タスク 1: Azure 仮想マシンをデプロイする

  1. SEA-SVR2 に接続し、必要であれば、パスワード “Pa55w.rd” を使用して CONTOSO\Administrator としてサインインします。
  2. SEA-SVR2 で Microsoft Edge を起動し、Azure portal (https://portal.azure.com/) に移動し、このラボで使用するサブスクリプションの所有者ロールを持つユーザー アカウントの資格情報を使用してサインインします。
  3. SEA-SVR2 で、Azure portal を表示している Microsoft Edge ウィンドウで、Azure portal の [Cloud Shell] をクリックして [Azure Cloud Shell] ウィンドウを開きます。
  4. Bash または PowerShell の選択を求めるメッセージが表示されたら、 [PowerShell] を選択します。

    : Cloud Shell を起動するのが初めてで、”ストレージがマウントされていません” というメッセージが表示される場合は、このラボで使用しているサブスクリプションを選択してから、[ストレージの作成] を選択します。

  5. [Cloud Shell] ウィンドウのツールバーで、[ファイルのアップロード/ダウンロード] アイコンをクリックし、表示されるボックスの一覧で [アップロード] をクリックし、ファイル C:\Labfiles\Lab09\L09-rg_template.json を Cloud Shell のホーム ディレクトリにアップロードします。
  6. 前の手順を繰り返して、ファイル C:\Labfiles\Lab09\L09-rg_template.parameters.json を Cloud Shell のホーム ディレクトリにアップロードします。
  7. ラボ環境をホスティングするリソース グループを作成するために、Cloud Shell ウィンドウの PowerShell セッションで次のコマンドを入力し、各コマンドの入力後には Enter キーを押します (<Azure_region> プレースホルダーを、このラボでリソースをデプロイする Azure リージョンの名前に置き換えます)。

    : (Get-AzLocation).Location コマンドを使用して、使用可能な Azure リージョンの名前を一覧表示できます。

    $location = '<Azure_region>'
    $rgName = 'AZ801-L0901-RG'
    New-AzResourceGroup -ResourceGroupName $rgName -Location $location
    
  8. 新しく作成したリソース グループに Azure 仮想マシンをデプロイするには、次のコマンドを入力し、Enter キーを押します。

    New-AzResourceGroupDeployment -Name az801l0901deployment -ResourceGroupName $rgName -TemplateFile ./L09-rg_template.json -TemplateParameterFile ./L09-rg_template.parameters.json -AsJob
    

    : デプロイが完了するのを待たずに、次のタスクに進んでください。 デプロイには約 3 分かかります。

タスク 2: Microsoft.Insights と Microsoft.AlertsManagement リソース プロバイダーを登録する

  1. Microsoft.Insights と Microsoft.AlertsManagement リソース プロバイダーを登録するには、SEA-SVR2 で、Cloud Shell ウィンドウから次のコマンドを入力し、各コマンドの入力後には Enter キーを押します。

    Register-AzResourceProvider -ProviderNamespace Microsoft.Insights
    Register-AzResourceProvider -ProviderNamespace Microsoft.AlertsManagement
    

    : 登録状態を確認するために、Get-AzResourceProvider コマンドレットを使用できます。

    : 登録プロセスが完了するのを待たずに、次のタスクに進んでください。 登録には約 3 分かかります。

  2. Cloud Shell を閉じます。

タスク 3: Azure Log Analytics ワークスペースを作成して構成する

  1. Azure portal の SEA-SVR2[リソース、サービス、ドキュメントの検索] ボックスのツールバーで「Log Analytics ワークスペース」を検索して選択し、 [Log Analytics ワークスペース] ページで [+ 作成] を選択します。
  2. [Log Analytics ワークスペースの作成] ページの [基本] タブで、次の設定を入力し、 [確認と作成] を選択してから、 [作成] を選択します。

    設定
    サブスクリプション このラボで使用している Azure サブスクリプションの名前
    リソース グループ 新しいリソース グループ AZ801-L0902-RG の名前
    Log Analytics ワークスペース 任意の一意の名前
    リージョン 前のタスクで仮想マシンをデプロイした Azure リージョンの名前

    : 前のタスクで仮想マシンをデプロイしたリージョンを必ず指定してください。

    : デプロイが完了するまで待ちます。 デプロイには約 1 分かかります。

  3. Azure portal で、新しくプロビジョニングされたワークスペースのブレードに移動します。
  4. ワークスペース ウィンドウで、 [エージェント管理] ウィンドウに移動し、 [ワークスペース ID][主キー] の値を記録します。 これらは、次の演習で必要になります。

タスク 4:Service Map ソリューションをインストールする

  1. SEA-SVR2 の Azure portal のツール バーの [リソース、サービス、ドキュメントの検索] テキスト ボックスで「Service Map」を検索し、結果の一覧の [Marketplace] セクションで [Service Map] を選びます。
  2. [Service Map ソリューションの作成] ウィンドウの [ワークスペースの選択] タブで、次の設定を指定し、 [確認および作成] を選んで、 [作成] を選びます。

    設定
    サブスクリプション このラボで使用している Azure サブスクリプションの名前
    リソース グループ AZ801-L0902-RG
    Log Analytics ワークスペース 前のタスクで作成した Log Analytics ワークスペースの名前

演習 2: オンプレミス サーバーの監視の構成

タスク 1:Log Analytics エージェントと Dependency Agent をインストールする

  1. SEA-SVR2 のコンソール セッションに接続した状態で、Azure portal が表示されているブラウザー ウィンドウの [エージェント管理] ウィンドウで、 [Windows エージェント (64 ビット) のダウンロード] リンクを選んで、64 ビットの Windows Log Analytics エージェントをダウンロードします。
  2. エージェント インストーラーのダウンロードが完了したら、ダウンロードされたファイルをクリックしてセットアップ ウィザードを開始します。
  3. [ようこそ] ページで [次へ] をクリックします。
  4. [ライセンス条項] ページの記述内容を確認し、 [同意する] を選択します。
  5. [インストール先フォルダー] ページで、既定のインストール フォルダーを変更するか、そのまま使用して、 [次へ] を選択します。
  6. [エージェントのセットアップ オプション] ページで、 Connect the agent to Azure Log Analytics を選んでから、 [次へ] を選びます。
  7. [Azure Log Analytics] ページで、前の演習で記録したワークスペース IDワークスペース キー (主キー) を入力します。
  8. 必要な構成設定が完了したら、 [次へ] を選択します。
  9. [インストールの準備完了] ページで、設定内容を確認し、 [インストール] を選択します。
  10. [構成は正常に終了しました] ページで [完了] を選択します。
  11. SEA-SVR2 で、管理者として Windows PowerShell を起動します。
  12. [管理者: Windows PowerShell] コンソールから、次のコマンドを実行して Dependency Agent をインストールします。

    Invoke-WebRequest "https://aka.ms/dependencyagentwindows" -OutFile InstallDependencyAgent-Windows.exe
    .\InstallDependencyAgent-Windows.exe /S
    

演習 3: Azure VM の監視の構成

タスク 1: ホストベースの監視を確認する

  1. Azure portal で、「仮想マシン」を検索して選択し、[仮想マシン] ページで az801l09-vm0 を選択します。
  2. [az801l09-vm0] ページの [監視] セクションで [メトリック] を選びます。
  3. [az801l09-vm0 | メトリック] ページの既定のグラフで、[メトリック名前空間] ボックスの一覧を表示すると、使用できるのは [仮想マシン ホスト] メトリックのみであることがわかります。

    : ゲスト レベルの診断設定がまだ構成されていないため、これは想定内です。 ただし、[メトリック名前空間] ボックスの一覧で、ゲスト メモリ メトリックを直接、有効にすることができます。 これは、この演習の後半で有効にします。

  4. [メトリック] ボックスの一覧で、使用可能なメトリックの一覧を確認します。

    : この一覧には、CPU、ディスク、ネットワークに関連する幅広いメトリックが含まれており、これらは、ゲスト レベルのメトリックにアクセスすることなく、仮想マシンのホストから収集できます。

  5. [メトリック] ボックスの一覧で [CPU 使用率] を選択し、[集計] ボックスの一覧で、[Avg] エントリが選択されていることを確認し、結果のグラフを調べます。

タスク 2: 診断設定と VM 分析情報を構成する

  1. [az801l09-vm0] ページの [監視] セクションで [診断設定] を選びます。
  2. [az801l09-vm0 | 診断設定] ページの [概要] タブで [ゲスト レベルの監視を有効にする] を選択します。

    : 操作が有効になるまで待ちます。 これには 3 分ほどかかる場合があります。

  3. [az801l09-vm0 | 診断設定] ページの [パフォーマンス カウンター] タブに切り替え、使用可能なカウンターを確認します。

    : 既定では、CPU、メモリ、ディスク、ネットワークのカウンターが有効になっています。 [カスタム] ビューに切り替えると、より詳細な一覧を確認できます。

  4. [az801l09-vm0 | 診断設定] ページの [概要] タブで、使用可能なイベント ログ収集のオプションを確認します。

    : 既定では、ログの収集には、アプリケーション ログとシステム ログからの重大、エラー、および警告のエントリに加え、セキュリティ ログからの監査失敗のエントリが含まれています。 これらは、[ログ] タブでカスタマイズできます。

  5. [az801l09-vm0 | 診断設定] ページで、[ログ] タブを選択し、使用可能な構成設定を確認します。
  6. [az801l09-vm0 | ログ] ページで、左側にある垂直メニューの [監視] セクションの [メトリック] を選択します。
  7. [az801l09-vm0 | メトリック] ページの既定のグラフでは、この時点で、[メトリック名前空間] ボックスの一覧に、[仮想マシン ホスト] エントリに加えて [ゲスト (クラシック)] エントリも含まれています。

    : ゲスト レベルの診断設定を有効にしたため、これは想定どおりです。 また、[新しいゲスト メモリ メトリックを有効にする] オプションもあります。

  8. [メトリック名前空間] ボックスの一覧で [ゲスト (クラシック)] エントリを選択します。
  9. [メトリック] ボックスの一覧で、使用可能なメトリックの一覧を確認し、メモリと論理ディスクに関連するさまざまなメトリックが含まれていることを確認します。

    : この一覧には、ホスト レベルの監視のみに依存している場合には使用できない、ゲスト レベルの詳細メトリックが含まれています。

  10. [メトリック名前空間] ボックスの一覧で [新しいゲスト メモリ メトリックを有効にする] エントリを選択します。
  11. [ゲスト メトリック (プレビュー) を有効にする] ウィンドウで、指定された情報を確認します。
  12. [az801l09-vm0 | 診断設定] ページで、 [シンク] タブを選択し、 [Azure Monitor (プレビュー)] セクションで [有効] を選択してから [保存] をクリックします。

    :[有効] ボタンをアクティブにするには、[Azure Monitor (プレビュー)] セクションの下にある警告通知ボックスを選択します。

  13. [az801l09-vm0 | メトリック] ページに戻ると、既定のグラフでは、この時点で、 [メトリック名前空間] ボックスの一覧に [仮想マシン ホスト] および [ゲスト (クラシック)] エントリに加えて、 [仮想マシンのゲスト] エントリも含まれています。

    : [仮想マシンのゲスト] エントリが表示されるように、ページを更新する必要がある場合があります。

  14. [az801l09-vm0 | メトリック] ページの左側の垂直メニューで [監視] セクションの [ログ] を選択します。
  15. 必要な場合は、 [az801l09-vm0 | ログ] ページで [有効] を選択します。
  16. [監視設定] ページで、 [構成] を選択します。

    : 数分待ってから [更新] を選択する必要がある場合があります。

  17. [az801l09-vm0 | ログ] ページで、左側にある垂直メニューの [監視] セクションの [Insights] を選択します。
  18. 必要に応じて、[az801l09-vm0 | Insights] ページで [有効化] を選択します。

    : この設定により、Azure VM Insights 機能が提供されます。 VM Insights は、Azure Monitor のソリューションの 1 つで、これにより、Windows または Linux を実行する Azure VM とオンプレミス コンピューターの両方のパフォーマンスと正常性の監視が容易になります。

  19. SEA-SVR2 で、Azure portal のツール バーにある [リソース、サービス、ドキュメントの検索] テキスト ボックスで「モニター」を検索して選択します。次に、 [モニター | 概要] ページで、左側にある縦のメニューの [Insights] セクションで、 [仮想マシン] を選択します。
  20. [モニター | 仮想マシン] ページで、 [パフォーマンス] タブを選択し、下にスクロールして仮想マシンのパフォーマンス メトリックを確認します。

    : このオプションにより、正常性モデルを使用した監視とアラートの機能が有効になります。これは、Azure Monitor for VMs によって生成されたメトリックを使用して構築される正常性監視の階層構造となっています。

演習 4: 監視サービスの評価

タスク 1: Azure Monitor の監視とアラートの機能を確認する

  1. SEA-SVR2 で、Azure portal の [監視 | メトリック] ページに戻ります。
  2. [スコープの選択] ページの [参照] タブで AZ801-L0901-RG リソース グループを参照し、それを展開します。次に、そのリソース グループ内の az801l09-vm0 仮想マシン エントリの横にあるチェックボックスをオンにし、[適用] をクリックします。

    : 一覧に az801l09-vm0 がない場合は、[検索して項目をフィルター処理…] ボックスを使用して az801l09-vm0 を検索します。

    : これにより、[az801l09-vm0 | メトリック] ページにあるものと同じビューとオプションが表示されます。

  3. [メトリック] ボックスの一覧で [CPU 使用率] を選択し、[集計] ボックスの一覧に [Avg] エントリが表示されていることを確認し、結果のグラフを調べます。
  4. [モニター | メトリック] ページの [az801l09-vm0 の平均 CPU 使用率] ウィンドウで [新しいアラート ルール] を選択します。

    : ゲスト (クラシック) メトリック名前空間のメトリックでは、メトリックからのアラート ルールの作成はサポートされていません。 これを実現するには、Azure Resource Manager テンプレートを使用します。ドキュメント「Windows 仮想マシンの Resource Manager テンプレートを使用して Azure Monitor メトリック ストアにゲスト OS メトリックを送信する」を参照してください。

  5. [アラート ルールの作成] ページの [条件] セクションの [アラート ロジック] セクションで、次の設定を指定し (他の設定は既定値のままにします)、 [次へ: アクション >] を選択します。

    設定
    しきい値 静的
    演算子 より大きい
    集計の種類 Average
    しきい値 2
    確認する間隔 1 分
    ルックバック期間 1 分
  6. [アラート ルールの作成] ページの [アクション] タブで、[+ アクション グループの追加] ボタンを選びます。
  7. [アクション グループの作成] ページの [基本] タブで、次の設定を指定し (他の設定は既定値のままにして)、 [次へ: 通知 >] を選択します。

    設定
    サブスクリプション このラボで使用している Azure サブスクリプションの名前
    リソース グループ AZ801-L0902-RG
    アクション グループ名 az801l09-ag1
    表示名 az801l09-ag1
  8. [アクション グループの作成] ページの [通知] タブにある [通知の種類] ボックスの一覧で [電子メール/SMS メッセージ/プッシュ/音声] を選択します。 [名前] テキスト ボックスに「admin email」と入力し、[詳細の編集] (鉛筆) アイコンをクリックします。
  9. [電子メール/SMS メッセージ/プッシュ/音声] ページで [電子メール] チェックボックスをオンにし、[電子メール] テキスト ボックスに自分のメール アドレスを入力します。そして、他の設定では既定値をそのままにし、[OK] をクリックします。 [アクション グループの作成] ページの [通知] タブに戻り、[次へ: アクション >] を選択します。
  10. [アクション グループの作成] ページの [アクション] タブで、[アクションの種類] ボックスの一覧に表示された項目を変更せずに確認し、[レビューと作成] を選択します。
  11. [アクション グループの作成] ページの [レビューと作成] タブで [作成] を選択します。
  12. [アラート ルールの作成] ページに戻り、 [次へ: 詳細 >] を選択し、 [プロジェクトの詳細] セクションで、次の設定を指定します (他の設定は既定値のままにします)。

    設定
    アラート ルール名 テストしきい値を超えた CPU の割合
    説明 テストしきい値を超えた CPU の割合
    リソース グループ AZ801-L0902-RG
    重大度 重大度 3
    作成時に有効化 あり
  13. [アラート ルールの作成] ページの [詳細] タブで、 [確認および作成] を選択し、 [作成] を選択します。

    : メトリックのアラート ルールがアクティブになるまでに最大 10 分かかることがあります。

  14. Azure portal で、「仮想マシン」を検索して選択し、[仮想マシン] ページで az801l09-vm0 を選択します。
  15. [az801l09-vm0] ページの [操作] セクションで [コマンドの実行] を選択し、[RunPowerShellScript] を選択します。
  16. [コマンド スクリプトの実行] ページの [PowerShell スクリプト] セクションで、次のコマンドを入力し、[実行] を選択して、ターゲット オペレーティング システム内の CPU 使用率を増やします。

    $vCpuCount = Get-WmiObject Win32_Processor | Select-Object -ExpandProperty NumberOfLogicalProcessors
    ForEach ($vCpu in 1..$vCpuCount){ 
       Start-Job -ScriptBlock{
          $result = 1;
          ForEach ($loopCount in 1..2147483647){
             $result = $result * $loopCount
          }
       }
    }
    

    : “T” キーを押して PowerShell コマンドを入力すると、コードによって 3 つの追加の中かっこが自動的に挿入されます。 これによりスクリプトが失敗するため、 [実行] を選択する前に、必ず 3 つの追加の中かっこを削除してください。

    : これにより、CPU 使用率が、新しく作成されたアラート ルールのしきい値を超えて増加します。

  17. SEA-SVR2 の、Azure portal を表示している Microsoft Edge ウィンドウで、別のタブを開き、[モニター] ページを参照し、[アラート] を選択します。
  18. Sev 3 アラート の数を確認してから [Sev 3] 行を選択します。

    : 数分待ってから [更新] を選択する必要がある場合があります。

  19. [すべてのアラート ] ページで、生成されたアラート を確認します。

タスク 2: Azure Monitor の VM Insights 機能を確認する

  1. SEA-SVR2 で、Azure portal の az801l09-vm0 仮想マシンのページに戻ります。
  2. az801l09-vm0 仮想マシンのページの左側にある垂直メニューで、[監視] セクションの [Insights] を選択します。
  3. [az801l09-vm0 | Insights] ページの [パフォーマンス] タブで、論理ディスクのパフォーマンス、CPU 使用率、使用可能なメモリ、送受信バイト数など、メトリックの既定のセットを確認します。
  4. [az801l09-vm0 | Insights] ページで [マップ] タブを選択し、自動生成されたマップを確認します。
  5. [az801l09-vm0 | Insights] ページで [正常性] タブを選択し、その内容を確認します。

    : 正常性情報を使用できるかどうかは、ワークスペースのアップグレードが完了しているかどうかによって異なります。

タスク 3: Azure Log Analytics の機能を確認する

  1. SEA-SVR2 で、Azure portal の [モニター] ページに戻り、 [ログ] を選びます。

    : Log Analytics に初めてアクセスしている場合は、 [Log Analytics へようこそ] ウィンドウを閉じる必要がある可能性があります。

  2. [スコープの選択] ページで、 [最近表示したもの] タブを選択し、このラボで先ほど作成した一意のワークスペースを選択して、 [適用] を選択します。
  3. クエリ ウィンドウで、次のクエリを貼り付け、 [実行] をクリックし、結果のグラフを確認します。

    // Virtual Machine available memory
    // Chart the VM's available memory over the last hour.
    InsightsMetrics
    | where TimeGenerated > ago(1h)
    | where Name == "AvailableMB"
    | project TimeGenerated, Name, Val
    | render timechart
    
  4. ツール バーの [クエリ] を選択し、 [クエリ] ウィンドウで [仮想マシン] ノードを展開して、 [VM 可用性の追跡] タイルを選択し、 [実行] ボタンをクリックして結果を確認します。
  5. [新しいクエリ 1] タブの [テーブル] ヘッダーを選択し、 [VM の Azure Monitor] セクションでテーブルの一覧を確認します。

    : いくつかのテーブルの名前は、このラボで以前にインストールしたソリューションに対応しています。 特に、InsightMetrics は、パフォーマンス メトリックを格納するために Azure VM Insights で使用されます。

  6. VMComputer エントリの上にカーソルを置き、[プレビュー データの表示] アイコンを選択し、結果を確認します。

    : az801l09-vm0SEA-SVR2.contoso.com の両方のエントリがデータに含まれていることを確認してください。

    : 更新データが使用可能になる前に、数分待つ必要がある場合があります。

  7. Azure portal の SEA-SVR2[リソース、サービス、ドキュメントの検索] ボックスのツール バーで [Log Analytics ワークスペース] を検索して選択し、 [Log Analytics ワークスペース] ページで、このラボで先ほど作成したワークスペースを表すエントリを選択します。
  8. ワークスペース ページの左側の垂直メニューの [全般] セクションで [ソリューション] を選択します。
  9. ソリューションの一覧で [ServiceMap] を選択し、[概要] ページで [Service Map] タイルを選択します。
  10. [ServiceMap] ページの [マシン] タブで、[SEA-SVR2] を選択してサービス マップを表示します。
  11. 拡大して、SEA-SVR2 で使用可能なネットワーク ポートを示すマップを確認し、別のポートを選択してから、対応する接続情報を確認します。
  12. 各接続で、[概要] ビューと [プロパティ] ビューを切り替えます。後者には、接続ターゲットに関するより詳細な情報が表示されます。

演習 5: Azure 環境のプロビジョニング解除

タスク 1: Cloud Shell で PowerShell セッションを開始する

  1. SEA-SVR2 で、Azure portal を表示している Microsoft Edge ウィンドウにある [Cloud Shell] アイコンを選んで Cloud Shell ウィンドウを開きます。

タスク 2: ラボでプロビジョニングされたすべての Azure リソースを削除する

  1. Cloud Shell ウィンドウで次のコマンドを実行して、このラボで作成されたすべてのリソース グループの一覧を表示します。

    Get-AzResourceGroup -Name 'AZ801-L09*'
    

    : 出力に含まれているのが、このラボで作成したリソース グループのみであることを確認してください。 このグループが、このタスクで削除されます。

  2. 次のコマンドを実行して、このラボで作成したすべてのリソース グループを削除します。

    Get-AzResourceGroup -Name 'AZ801-L09*' | Remove-AzResourceGroup -Force -AsJob
    

    : このコマンドは非同期 (-AsJob パラメーターによって決定されます) で実行されます。 そのため、同じ PowerShell セッション内で、すぐに別の PowerShell コマンドを実行できるようになりますが、リソース グループが実際に削除されるまでに数分かかります。