今回は、Linux が実行されている仮想マシンで診断機能を有効にする方法です。OSがWindowsの場合は以前から診断機能を有効にできましたが、いつの間にLinux仮想マシンに対しても有効にできるようになっていました。
拡張機能の存在自身は、以下のGitHubで公開されており知っていたのですが、そこには肝心なインストール方法がかかれていません。
通常、仮想マシンの拡張機能はPowerShell から入れられますし、 Get-AzureVMAvailableExtension を使えば一覧に表示されるのですが、これを試した時点では、この一覧にはありませんでした。
インストール方法
前述したとおり、現時点ではPowerShellからインストールする方法は提供されてないため、新ポータルから行います。 仮想マシン作成時、作成後ともに診断機能を有効にできます。以下、画像ですが、Windowsの時ほど細かく設定できるわけではなく、ホントにON/OFFくらいです。
診断ログなど
診断ログなどはWindows版と同じくAzure ストレージに出力されます。ドキュメントがまったくないので、どのようなログが取れるかも不明です。ただしテーブルを見ると、
- CPU
- Disk
- Memory
などの各データが転送されている感じです。また、Syslogもテーブルに転送されてます。必要なものはSyslogに出せ的な感じなのでしょうか。
ただ、Windowsでは特定のフォルダに格納されたログをBLOBに転送する「カスタムログ」機能がありましたが、Linux版に同様な機能があるのか分かりません。あったほうが便利だと思うのですが。
あと、以下にパフォーマンスカウンタ的なメトリクス情報が出ています。PT1Hが1時間間隔、PT1Mが、1分間隔だと思います。
- WADMetricPT1HP10DV2S20150511
- WADMetricPT1MP10DV2S20150511
あとスキーマは、SchemaTableに出てますけど、ドキュメントとして期待した内容ではないです。
以下、テーブルの内容などを。
CPUテーブル
Diskテーブル
Memoryテーブル
Syslogテーブル
メトリック的な何か
仕組み
GitHubを見ると分かりますが、各ディストリビューション毎のDLLファイルや、シェルスクリプトにバイナリが埋め込まれていてRPM/DEBファイルに展開されるのが分かります。なので、GitHubで公開されていてもあまり意味が無い感じです。
インストールされるパッケージは、/var/log/dpkg.log (Ubuntuだったので)から拾ってみると以下の通りで、
2015-05-20 07:58:29 install libglibmm-2.4-1c2a:amd64 <none> 2.39.93-0ubuntu1 2015-05-20 07:58:29 status half-installed libglibmm-2.4-1c2a:amd64 2.39.93-0ubuntu1 2015-05-20 07:58:30 status installed libglibmm-2.4-1c2a:amd64 2.39.93-0ubuntu1 2015-05-20 07:58:33 status installed libc-bin:amd64 2.19-0ubuntu6.6 2015-05-20 07:58:44 startup archives install 2015-05-20 07:58:45 install omi:amd64 <none> 1.0.8.1 2015-05-20 07:58:45 status half-installed omi:amd64 1.0.8.1 2015-05-20 07:58:45 status half-installed omi:amd64 1.0.8.1 2015-05-20 07:58:47 status installed omi:amd64 1.0.8.1 2015-05-20 07:58:47 status installed ureadahead:amd64 0.100.0-16 2015-05-20 07:58:47 startup archives install 2015-05-20 07:58:48 install scx:amd64 <none> 1.6.0.166 2015-05-20 07:58:48 status half-installed scx:amd64 1.6.0.166 2015-05-20 07:58:49 status installed scx:amd64 1.6.0.166
コアとなるパッケージは、omiと、scx らしく/opt/microsoftにインストールされます。検索してみると、
上記のようなリンクが見つかって、MS謹製のUNIX/Linux向けエージェントみたいでした。SystemCenterとかのコンポーネントのようです(この辺りはよく知らないので)
拡張機能自身のログは以下にありました。
azureuser@linuxdiagtest:/var/log/azure/Microsoft.OSTCExtensions.LinuxDiagnostic/2.0.6$ ls -al total 60 drwxr-xr-x 2 root root 4096 May 20 07:58 . drwxr-xr-x 3 root root 4096 May 20 07:58 .. -rw-r--r-- 1 root root 1658 May 20 07:58 CommandExecution.log -rw-r--r-- 1 root root 47367 May 20 07:58 extension.log
拡張機能の本体は、以下です
root@linuxdiagtest:/var/lib/waagent/Microsoft.OSTCExtensions.LinuxDiagnostic-2.0.6# ls -al total 32036 drwxr-xr-x 14 root root 4096 May 20 07:58 . drwx------ 5 root root 4096 May 20 07:58 .. drwxr-xr-x 2 root root 4096 May 20 07:58 config -rw-r--r-- 1 root root 283 May 20 07:58 daemon.log drwxr-xr-x 2 root root 4096 May 20 07:58 debian -rwxr--r-- 1 root root 24164 May 20 07:58 diagnostic.py -rw-r--r-- 1 root root 480 May 20 07:58 HandlerEnvironment.json -rwxr--r-- 1 root root 399 May 20 07:58 HandlerManifest.json drwxr-xr-x 2 root root 4096 May 20 07:58 mdsd -rwxr--r-- 1 root root 1366 May 20 07:58 mdsdConfig.xml.tmplate -rw-r--r-- 1 root root 0 May 20 07:58 mdsd.log -rw-r--r-- 1 root root 1 May 20 07:58 mrseq -rw-r--r-- 1 root root 0 May 20 07:58 omfileconfig -rwxr--r-- 1 root root 7006 May 20 07:58 portal.xml.template drwxr-xr-x 2 root root 4096 May 20 07:58 redhat drwxr-xr-x 2 root root 4096 May 20 07:58 rsyslog5 drwxr-xr-x 2 root root 4096 May 20 07:58 rsyslog7 drwxr-xr-x 2 root root 4096 May 20 07:58 rsyslog8 -rwxr--r-- 1 root root 16017057 May 20 07:58 scx-1.6.0-166.universald.1.x64.sh -rwxr--r-- 1 root root 16661427 May 20 07:58 scx-1.6.0-166.universalr.1.x64.sh drwxr-xr-x 2 root root 4096 May 20 07:58 shared drwxr-xr-x 2 root root 4096 May 20 07:58 status drwxr-xr-x 2 root root 4096 May 20 07:58 suse drwxr-xr-x 2 root root 4096 May 20 07:58 suse12 drwxr-xr-x 2 root root 4096 May 20 07:58 Utils -rw-r--r-- 1 root root 11564 May 20 07:58 xmlCfg.xml
xmlCfg.xml がコンフィグファイルのようですが、変更方法不明です。
あまり情報がありませんが以上です。何か分かったら別BLOGに書くつもりです。