Windows が実行されているAzure仮想マシンの診断機能(Azure Diagnostics)を有効にするための方法についてです。有効にするにはいくつか方法があって、
- 新ポータルから
- Azure PowerShell コマンドレットから
- Visual Studio の Azure Toolsから
の3つの方法があります。
新ポータルから
従来の完全ポータルでも拡張機能のインストールは可能ですが、診断機能は有効にできません。新規作成時はもちろん、既存の仮想マシンに対しても設定を有効にできます。
基本的な設定はできますが、詳細な指定はできません。例えば、ログ転送間隔、パフォーマンスカウンタ、カスタムログ転送の設定などは、別途PowerShellなどを通して行う必要があります。
PowerShellから
PowerShellからは、Set-AzureVMDiagnosticsExtension コマンドで設定できます。診断機能に利用するストレージは、ストレージコンテキストオブジェクトとして渡す必要があります。そして、設定ファイルはXMLで渡す必要があり、これらのスキーマは Azure Diagnostics 1.2 Configuration Schema で解説されています。
$ctx = New-AzureStorageContext -StorageAccountName $account -StorageAccountKey $key Get-AzureVM -ServiceName $name -Name $name | Set-AzureVMDiagnosticsExtension -DiagnosticsConfigurationPath C:\temp\diag.xml -StorageContext $ctx -Version "1.*" | Update-AzureVM
このXMLファイルをゼロから手書きするのは少し難儀でしょうから、あまりこの方法での設定はお勧めできない感じです。ただし、同一の設定を複数仮想マシンに展開するようなシナリオならば、逆にこちらをお勧めします。
既存の仮想マシンから診断機能の設定を取得するには、前エントリの以下の方法で実現できます。
Visual Studio から
Visual Studio からの設定がGUIベースでできて、多分一番楽です。Azure 関連のツールをインストールしてあれば、サーバーエクスプローラからAzure仮想マシン一覧が表示されます。ダブルクリックすると、プロパティが開くので、拡張機能のところから、「Microsoft Monitoring Agent Diagnostics」を選び追加します。
追加すると、各ログの設定がGUIでできます。最終的にはXMLになって更新されるのでしょう。
VSからインストールした時に少しきになるのは、
- 拡張機能のバージョンが、この時点で"1.4"と固定されてしまいます。PowerShell経由だと、バージョン固定も、1.* 的なインストールもできて(管理ポータルだと勝手に1.* 的なインストールになる)、拡張機能のVLがあがると勝手に更新されるみたいです。
- PowerShellから入れた診断機能が、VS側から構成変更できないです。たぶん、VS側のプラグインに不具合だとは思うのですが、微妙に不便です。
まとめ
現状、いくつかインストール方法があるなかで、これといった決めてが無いかんじです。管理ポータル、PowerShell ←→VS 間でシームレスに構成変更できればいいのですが、ここが最大のネックです。テスト環境でVSからXMLの構成ファイルVSから作って、それを元にPowerShellで本環境に展開とかのほうが良い感じいはします。