LogAnalytics エージェントを利用して仮想マシンの監視やメトリックを収集して運用に役立てているかと思いますが、以下の通り2024年8月31日をすぎるとサポートされなくなるとマイクロソフトから広報がありました。
We’re retiring the Log Analytics agent in Azure Monitor on 31 August 2024
LogAnalytics エージェントからデータ収集ができなくなると監視やメトリック情報の収集ができなくなってしまう可能性がある為、AzureMonitorエージェントへ移行する必要があります。
しかしながら、AzureMonitorエージェントへ移行するにあたり、マイクロソフトのサイトをいくつか確認をしたのですが、わかりづらい部分がありましたので注意点をまとめました。
AzureMonitorエージェントへ移行を行う際に役立ててもらえればと思います。
■前提条件
LogAnalytics エージェントを利用してLogAnalyticsワークスペースへデータ送信している。
LogAnalytics エージェントはAzure上の仮想マシンだけではなく、オンプレミスのサーバーなどでも利用することが可能です。オンプレミスのサーバーなども含めLogAnalytics エージェントがインストールされていれば対象となります。
●確認方法
・Azureポータルでの確認
対象の仮想マシンで”拡張機能とアプリケーション”の拡張機能で”MicrosoftMonitoringAgent”が存在していること
・サーバー上での確認方法
Windowsの場合 ・・・コントロールパネル→プログラムと機能→”MicrosoftMonitoringAgent”が存在していること
Linuxの場合・・・・・service omsagent statusコマンドでLogAnalytics エージェントの動作状況を確認する
※そのほかにも確認する方法はありますが、代表的な確認方法を記載しています
■移行方法についての失敗と考慮点
AzureMonitorエージェントへの移行について大まかには下記を想定して対応を進めました。
1.Azure Monitor エージェントをパッケージからインストールする
2.DCR Config Generatorを実行する
3.DCR Config Generatorで作成したARMテンプレートをAzureポータルからデプロイし関連付けする
4.Azure Monitor エージェントでデータを収集できていることを確認して、LogAnalytics エージェントをアンインストールする
今回、LogAnalytics エージェントの移行を行ったのはAzure上にある仮想マシンとなるので、1についてパッケージや拡張機能からインストール必要はありませんでした。
その為、1を飛ばし下記サイトを参考に2のDCR Config Generatorを利用して設定情報のARMテンプレートを行いました。
Log Analytics エージェントから Azure Monitor エージェントに移行するためのツール
DCR Config Generator の使用方法
なお、DCR Config Generatorの利用についてて惑いましたので注意点を記載します。
・実行するPowerShellのバージョンは、7.1.3 (最小バージョン 5.1)以上であること
実行するマシンはAzureMonitorエージェントを利用するマシンで必要はありませんが、PowerShellのバージョンは7.1.3 (最小バージョン 5.1)以上である必要があります。
・DCR Config Generatorを実行する前にPowerShell上からAzure上へサインインすること
よくよく考えると当たり前のことですが、DCR Config Generatorを実行するのは対象のAzureサブスクリプション内にあるリソースです。その為、PowerShellで該当のAzureへサインインする必要があります。
Azure PowerShell から Azure にサインインする
実行スクリプトは、下記の通り行いスクリプト自体は成功しましたが、ARMテンプレートは出力されませんでした。
———————————————————————
$subId = “<subscription_id>”
$rgName = “<resourcegroup_Name>”
$workspaceName = “<ws_name>”
$dcrName = “<newdcr_name>”
$folderPath = “<結果を出力するフォルダへのパス>”
.\WorkspaceConfigToDCRMigrationTool.ps1 -SubscriptionId $subId -ResourceGroupName $rgName -WorkspaceName $workspaceName -DCRName $dcrName -OutputFolder $folderPath
———————————————————————
DCR Config Generatorで出力されるのは、Windowsのパフォーマンスカウンターのイベントログ、LinuxのパフォーマンスカウンターのSyslog、カスタムログ、IISログ、拡張機能に関連するextensionsのパフォーマンスカウンターのデータソースなどです。
先に記載したログをLogAnalytics エージェントで収集していない場合、ARMテンプレートには出力されません。
※「No output file(s) will be generated」と表示されARMテンプレートは出力されません。
後日、マイクロソフトへも確認しましたが、設定が無い場合、ARMテンプレートは出力されなとのことでした。
ARMテンプレートが出力されない場合、Log Analytics エージェントでのカスタムの設定はされていない為、ARMテンプレートをAzureポータルからデプロイする必要がありません。その為、新規に設定する必要があります。
今回は新規にAzure Monitor エージェントの設定を行ったことで正常にデータ収集を行うことができました。
●考慮点
Azure Monitor エージェントのインストールの前にDCR Config Generatorを実行してカスタム設定が行われているかどうかを最初に確認すればよかったと考えています。
ARMテンプレートが出力されればカスタムデプロイで設定すればよいですし、ARMテンプレートが出力されなければ、新規にAzure Monitor エージェントの設定すればよいとわかります。
その為、ARMテンプレートの出力有無を考慮しAzure Monitor エージェントへの移行方法を策定すればよいと考えています。
その点を踏まえAzure Monitor エージェントの移行方法について一例を記載いたします。
■Azure Monitor エージェントの移行方法について
1.DCR Config Generatorを実行する
2.”データ収集ルール”で設定を行う
1でARMテンプレートが出力された場合、下記を実施する
DCR Config Generator をインストールするには
1でARMテンプレートが出力されなかった場合、下記を実施する
データ収集ルールを作成する
※エンドポイントとして今まで利用していたLogAnalyticsワークスペースを指定することが可能です。
今まで利用していたLogAnalyticsワークスペースを指定すれば、データの継続性を持たせることが可能です。
※2を実行することでAzure上にある仮想マシンであれば、Azure Monitor エージェントが利用できるようになります。
明示的にインストールを行う必要がありません。
※オンプレミスサーバーなどはインストールが必要です。
Windows クライアント デバイス上の Azure Monitor エージェント
3.Azure Monitor エージェントでデータ収集されていることを確認する
Log Analytics ワークスペースにて下記クエリを実行し、Categoryが”Azure Monitor Agent”となっていれば、Azure Monitor エージェントでデータ収集ができています。
———————————————-
Heartbeat
| summarize max(TimeGenerated) by Computer, Category
| sort by Computer
———————————————-
なお、”Direct Agent”になっている場合は、LogAnalytics エージェントでデータ収集をしています。
Azure Monitor エージェントへの移行について、マイクロソフトのサイトからも色々情報は出ていますが、逆に情報があり過ぎてわかりづらくなっている状況だと考えています。
しかし、データの送り先であるLog Analytics ワークスペースは継続して利用可能です。
Log Analytics ワークスペースへのデータ送信をLogAnalytics エージェントからAzure Monitor エージェントへ切り替えるための設定をどのように行えばいいかという視点で考えれば移行もスムーズにできると思います。