問題
Azure Marketplaceの英語OSイメージを日本語化するなどカスタムイメージをAzure VM上で作成し、そのイメージを使ってVMを作成すると、Azure MonitorでAzure Monitor for VMsを有効にしてもデータを収集できず正しく動作しません。
原因
これは、イメージ作成中にLog AnalyticsエージェントがAzure Security Centerによって自動インストールされ、そのワークスペースの設定が残っていて、新しいVM用に初期化されていないからです。
このことは「クローンをサポートしない」とDocsに記載されています。
対応策
2つの策があります。
- Azure Security Centerの自動プロビジョニングを無効化する
- イメージ展開されたVMで再インストールする
Azure Security Centerの自動プロビジョニングを無効化する
サブスクリプション単位となりますが、Log Analyticsエージェントの自動プロビジョニングを停止することができます。デフォルトは有効化されていると思います。
もしAzure Defenderのアップグレードを促す画面が出てきて進めなくなったら、下の方に「Skip」ボタンがあると思いますので、それを押すと「価格と設定」画面に進めます。
無効化した状態で、カスタムイメージを作成します。イメージ作成が終われば、元に戻して構いません。
イメージ展開されたVMで再インストールする
サブスクリプション単位なので変更できない、イメージを作ってしまった、などの場合は、展開した後のVMに対して再インストールで対応できます。
Azure MonitorのAzure Monitor for VMsを通常通り有効化します。
「データの待機中」で止まってしまった場合は、当該の仮想マシンのブレードを開き、拡張機能から
DependencyAgentWindows
MicrosoftMonitoringAgent
の順でアンインストールしていきます。
これで、OSの中でモジュールがアンインストールされ、Azureの仮想マシンでも拡張機能が入っていないとみなされるため、整合性が取れます。
この後、再度通常通り、Azure Monitorの画面からAzure Monitor for VMsを有効化します。
数が多い場合は、PowerShellなどでのスクリプト化を検討した方がよいでしょう。