Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

Azure 仮想マシン(Linux)の診断機能を有効にする

今回は、Linux が実行されている仮想マシンで診断機能を有効にする方法です。OSがWindowsの場合は以前から診断機能を有効にできましたが、いつの間にLinux仮想マシンに対しても有効にできるようになっていました。

拡張機能の存在自身は、以下のGitHubで公開されており知っていたのですが、そこには肝心なインストール方法がかかれていません。

通常、仮想マシンの拡張機能はPowerShell から入れられますし、 Get-AzureVMAvailableExtension を使えば一覧に表示されるのですが、これを試した時点では、この一覧にはありませんでした。

github.com

インストール方法

前述したとおり、現時点ではPowerShellからインストールする方法は提供されてないため、新ポータルから行います。 仮想マシン作成時、作成後ともに診断機能を有効にできます。以下、画像ですが、Windowsの時ほど細かく設定できるわけではなく、ホントにON/OFFくらいです。

f:id:StateMachine:20150520151613p:plain

診断ログなど

診断ログなどはWindows版と同じくAzure ストレージに出力されます。ドキュメントがまったくないので、どのようなログが取れるかも不明です。ただしテーブルを見ると、

  • CPU
  • Disk
  • Memory

などの各データが転送されている感じです。また、Syslogもテーブルに転送されてます。必要なものはSyslogに出せ的な感じなのでしょうか。

ただ、Windowsでは特定のフォルダに格納されたログをBLOBに転送する「カスタムログ」機能がありましたが、Linux版に同様な機能があるのか分かりません。あったほうが便利だと思うのですが。

あと、以下にパフォーマンスカウンタ的なメトリクス情報が出ています。PT1Hが1時間間隔、PT1Mが、1分間隔だと思います。

  • WADMetricPT1HP10DV2S20150511
  • WADMetricPT1MP10DV2S20150511

あとスキーマは、SchemaTableに出てますけど、ドキュメントとして期待した内容ではないです。

f:id:StateMachine:20150520172907p:plain

以下、テーブルの内容などを。

CPUテーブル f:id:StateMachine:20150520173935p:plain

Diskテーブル f:id:StateMachine:20150520174043p:plain

Memoryテーブル f:id:StateMachine:20150520174207p:plain

Syslogテーブル f:id:StateMachine:20150520174247p:plain

メトリック的な何か f:id:StateMachine:20150520174933p:plain

仕組み

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に書くつもりです。