JavaScriptを有効にしてください

Log Analytics エージェントを移行し隊

 ·   9 分で読めます  ·   Kento

2024/8 に廃止を迎える Log Analytics エージェントの移行方法を試してみました

Azure Monitor とは

Azure で監視サービスといえば Azure Monitor です
以下の要素から構成されています

  • データソース (正確には Azure Monitor の範囲ではない)
    • どこからデータを取ってくるか
  • データ収集、ルーティング、変換
    • どうやってデータを取得するか
  • データプラットフォーム
    • どこにデータを格納するか
  • 利用 (Consumption)
    • 監視データをどのように利用するか
AzureMonitor01
Azure Monitor の全体構成:

この要素を意識すると公開情報で知りたい内容を探しやすくなります

AzureMonitor02
Azure Monitor の公開情報:

Log Analytics エージェント

2024/8 に Log Analytics エージェントは廃止を迎えます
We’re retiring the Log Analytics agent in Azure Monitor on 31 August 2024 | Azure の更新情報 | Microsoft Azure

これは Azure Monitor のデータ収集の要素を担っていました
もう少しかみ砕くとデータソースがマシンで、データプラットフォームとしてログを選択するときの データ収集を担っていました

Azure Monitor エージェント

Log Analytics エージェントの廃止後に利用するものとして Azure Monitor エージェントがあります
廃止される Log Analytics エージェントと役割は同じですが使い方が変更されている箇所があります

項目 Log Analytics エージェント Azure Monitor エージェント
対象マシン Azure VM、非 Azure VM Azure VM、Azure Arc 対応サーバー
収集するログの設定 Log Analytics ワークスペース単位で一括設定 データ収集ルールで指定、マシンに紐づけ
送信先 Log Analytics の設定 エージェント インストール時にワークスペース ID を入力 データ収集ルールごとに指定
送信先 Log Analytics の認証 ワークスペース ID とキー マネージド ID

データ収集ルール

Azure Monitor エージェントを利用するためにはデータ収集ルールが必要です
データ収集ルールには

  • どんなデータを Azure Monitor に送信するのか
  • どこに送信するのか

を記述します
作成したデータ収集ルールをマシンに紐づけることでログの収集が開始されます

Log Analytics エージェントから移行する場合、廃止する Log Analytics エージェントで使用されていた収集するログの設定をデータ収集ルールに移植する必要があります

移行方法

Log Analytics エージェントから Azure Monitor エージェントへ移行するにはいくつかのポイントがあります
今回はポイントをかいつまんで備忘録としてメモしていきます
公式のガイダンスはこちらです
レガシ エージェントから Azure Monitor エージェントへの移行 - Azure Monitor | Microsoft Learn

ざっくり手順

  1. 前提条件の確認
  2. Log Analytics エージェントの使用状況の確認
  3. データ収集ルールの作成
  4. データ収集ルールの関連付け
  5. 追加機能の有効化
  6. Log Analytics エージェントのアンインストール

テスト環境としてスクリーンショットの通りのログ収集設定を Log Analytics ワークスペースに適用しています

portal01
移行対象のログ収集設定01:

portal02
移行対象のログ収集設定02:

1. 前提条件の確認

エージェントの切り替えに伴って、必要なネットワーク要件などが Log Analytics エージェントと異なっている部分があります
詳しくは公開情報を確認してください
Azure Monitor エージェントを管理する - Azure Monitor | Microsoft Learn

2. Log Analytics エージェントの使用状況の確認

移行作業をしないといけないマシンが何台あるのか、どんな追加機能が使われているのか、移行作業は進んでいるのか などを確認する必要があります
状況を確認する便利ツールとして「AMA 移行ヘルパー」が提供されています
※AMA = Azure Monitor Agent

portal03
AMA 移行ツールの画面01:

こちらを見ると “my-logana” という名前の Log Analytics ワークスペースに対して、Azure VM にインストールされた Log Analytics エージェントが接続されていることがわかります
また、移行作業としては何も行っていないことも分かります
この 1台の Azure VM を Azure Monitor エージェントに移行してみます

portal04
AMA 移行ツールの画面02:

レガシ エージェントから Azure Monitor エージェントに移行するためのツール - Azure Monitor | Microsoft Learn

3. データ収集ルールの作成

データ収集ルールは Azure Portal から作成することができます
しかし、以前から Log Analytics エージェントで収集しているログの種類を1つずつ確認をし、データ収集ルールを作成するのは手間です
そこで提供されているのが「DCR Config Generator」というツールです
このツールを使うと Log Analytics ワークスペースに設定されているログの収集設定を データ収集ルール用にエクスポートすることができます
ARM テンプレートでエクスポートされるのですぐにリソースの作成に取り掛かることができます

DCR Config Generator はあくまでも Log Analytics ワークスペースに紐づく収集のみを対象にしています
すなわち、Log Analytics ワークスペースのめにゅーにある [レガシ エージェントの管理] で設定する内容です
そのため VM Insights など追加機能は別途、移行の手順を実施する必要があります

レガシ エージェントから Azure Monitor エージェントに移行するためのツール - Azure Monitor | Microsoft Learn

上記の公開情報の手順通りに実行するだけですが、実行履歴を記載しておきます

まず AzureMonitorCommunity/Azure Services/Azure Monitor/Agents/Migration Tools/DCR Config Generator at master · microsoft/AzureMonitorCommunity · GitHub からスクリプト (WorkspaceConfigToDCRMigrationTool.ps1) をダウンロードします

ダウンロードしたスクリプトを実行する準備をします
Azure にログインし、サブスクリプション ID や Log Analytics ワークスペースが格納されいるリソース グループ名などを記載しておきます

1
2
3
4
5
6
Connect-AzAccount
$subId = (Get-AzContext).Subscription.Id # Log Analytics ワークスペースのサブスクリプション ID
$rgName = "XXXX" # Log Analytics ワークスペースのリソース グループ
$workspaceName = "XXXX" # Log Analytics ワークスペースの名前
$dcrName = "XXXX" # 出力 DCR ごとに使用されるベース名
$outputFolderPath # 指定しない場合は、作業ディレクトリ パスが使用されます

入力ができたらスクリプトを実行します

1
.\WorkspaceConfigToDCRMigrationTool.ps1 -SubscriptionId $subId -ResourceGroupName $rgName -WorkspaceName $workspaceName -DCRName $dcrName -OutputFolder $outputFolderPath
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
PS C:\Users\XXX> .\WorkspaceConfigToDCRMigrationTool.ps1 -SubscriptionId $subId -ResourceGroupName $rgName -WorkspaceName $workspaceName -DCRName $dcrName -OutputFolder $outputFolderPath

##########################################################################
####                                                                  ####
####        Welcome to the Data Collection Rule (DCR) Generator       ####
####                                                                  ####
####        where we help you step into the world of AMA and DCR      ####
####                                                                  ####
####                                                                  ####
####             Azure Monitor Control Plane, April 2024              ####
##########################################################################


Info: No output folder provided. Defaulting to the current working directory: C:\Users\XXX

Info: You are already logged into Azure

Info: Fetching the specified Log Analytics Workspace details
Info: Successfully retrieved the LAW details

Info: Fetching the Log Analytics Workspace data sources

Info: Windows Performance Counters is enabled on the workspace

Info: Linux Performance Counters is not enabled on the workspace

Info: Windows Event Logs is enabled on the workspace

Info: Linux SysLogs is not enabled on the workspace

Info: VM Insights Extension Data Source is not enabled on the workspace

Info: Custom Logs is not enabled on the workspace

Info: IIS Logs is not enabled on the workspace

Info: Generating the arm template files
[0]: windows_dcr_arm_template.json
Info: Done. Check your output folder (C:\Users\XXX) for all the generated files!

Do you want to run a test deployment of one of the generated DCR ARM templates? (y/n): y

Below is the list of all the generated arm template files
    [0]: windows_dcr_arm_template.json

>>>> Deployment Subscription Id                            : YYYY
>>>> Deployment Resource Group                             : amatest-rg
>>>> Select the # of the template file from the list above : 0

DeploymentName          : windows_dcr_arm_template
ResourceGroupName       : amatest-rg
ProvisioningState       : Succeeded
Timestamp               : 2024/05/07 7:07:09
Mode                    : Incremental
TemplateLink            :
Parameters              :
                          Name                          Type                       Value
                          ============================  =========================  ==========
                          dcrName                       String                     "my-dcr-windows"
                          dcrLocation                   String                     "japaneast"
                          logAnalyticsWorkspaceArmId    String                     "/subscriptions/YYYY/resourcegroups/amatest-rg/providers/microsoft.operati
                          onalinsights/workspaces/my-logana"

Outputs                 :
DeploymentDebugLogLevel :

Info: Deployment done! Check your resource group in Azure for the newly created DCR.

Do you want to run a test deployment of one of the generated DCR ARM templates? (y/n): n

スクリプトの実行中に、作成したデータ収集ルールの ARM テンプレートをデプロイするか聞かれます

file01
作成された ARM テンプレート:
1
2
3
4
5
Info: Generating the arm template files
[0]: windows_dcr_arm_template.json
Info: Done. Check your output folder (C:\Users\XXX) for all the generated files!

Do you want to run a test deployment of one of the generated DCR ARM templates? (y/n):

ここで y を選択するとデプロイ先となるサブスクリプション ID やリソース グループ名が聞かれます
もし、データ収集ルールのリソース名を独自の名前にしたい場合や、出力先の Log Analytics ワークスペースを変更したい場合、ここでは作成せずに、エクスポートされた ARM テンプレートを編集してデプロイすることも可能です

今回は y を選択し、そのまま ARM テンプレートからデプロイを実行してみました

デプロイされたデータ収集ルールを見てみます
収集する内容として”パフォーマンス カウンター” と ”Windows イベント ログ” が設定されています

portal05
作成したデータ収集ルール01:

パフォーマンス カウンターで収集される内容は、Log Analytics ワークスペースで設定されているものと同じのようです(正確に全部確認したわけではない

portal06
作成したデータ収集ルール02:

windows イベント ログ で収集される内容は、Log Analytics ワークスペースで設定されているものと同じです(項目数が少ないので一目でわかる

portal07
作成したデータ収集ルール03:

送られる Log Analytics ワークスペースでは、データ収集ルールを作成の基にした Log Analytics ワークスペースが指定されています

portal08
作成したデータ収集ルール04:

4. データ収集ルールの関連付け

作成したデータ収集ルールを移行対象の VM に関連付けます
今回は Azure Portal から実行しました
リソースから対象の VM を選択すると拡張機能のインストールとシステム割り当てのマネージド ID が有効化されました

portal09
データ収集ルールの関連付け:

しばらくすると Log Analytics ワークスペースにログが送られるようになりました

portal10
Azure Monitor エージェントでのログ収集:

5. 追加機能の有効化

VM Insights など追加機能を利用している場合は、それらの機能を Azure Monitor エージェンで使うように有効化します
詳細はこちらで レガシ エージェントから Azure Monitor エージェントへの移行 - Azure Monitor | Microsoft Learn

6. Log Analytics エージェントのアンインストール

取得したいログが無事に取れていることが確認できれば Log Analytics エージェントはお役御免です
アンインストールしておきます
拡張機能でインストールしている場合は、拡張機能をアンインストールすれば OK です

portal11
Log Analytics エージェントのアンインストール:

公式からエージェントの削除ツールが公開されています
が、自分はイマイチ使い方がわからなかったのと
アンインストールの手順はそんなに大変じゃないので無理に使わなくてもいいかなと思いました
MMA 検出および削除ユーティリティ - Azure Monitor | Microsoft Learn

まとめ

Log Analytics エージェントから Azure Monitor エージェントへ移行する手順を確認しました

FAQ がまとめらているページもあるので困ったら見てみるとよさそうです
Log Analytics エージェントから Azure Monitor エージェントへの移行に関するよくあるご質問集 | Japan Azure Monitoring Support Blog

参考

共有

Kento
著者
Kento
2020年に新卒で IT 企業に入社. インフラエンジニア(主にクラウド)として活動中