購読中です 読者をやめる 読者になる 読者になる

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

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

Windows が実行されているAzure仮想マシンの診断機能(Azure Diagnostics)を有効にするための方法についてです。有効にするにはいくつか方法があって、

  • 新ポータルから
  • Azure PowerShell コマンドレットから
  • Visual Studio の Azure Toolsから

の3つの方法があります。

新ポータルから

従来の完全ポータルでも拡張機能のインストールは可能ですが、診断機能は有効にできません。新規作成時はもちろん、既存の仮想マシンに対しても設定を有効にできます。

f:id:StateMachine:20150514132654p:plain

基本的な設定はできますが、詳細な指定はできません。例えば、ログ転送間隔、パフォーマンスカウンタ、カスタムログ転送の設定などは、別途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ファイルをゼロから手書きするのは少し難儀でしょうから、あまりこの方法での設定はお勧めできない感じです。ただし、同一の設定を複数仮想マシンに展開するようなシナリオならば、逆にこちらをお勧めします。

既存の仮想マシンから診断機能の設定を取得するには、前エントリの以下の方法で実現できます。

statemachine.hatenablog.com

Visual Studio から

Visual Studio からの設定がGUIベースでできて、多分一番楽です。Azure 関連のツールをインストールしてあれば、サーバーエクスプローラからAzure仮想マシン一覧が表示されます。ダブルクリックすると、プロパティが開くので、拡張機能のところから、「Microsoft Monitoring Agent Diagnostics」を選び追加します。

f:id:StateMachine:20150515175317p:plain

追加すると、各ログの設定がGUIでできます。最終的にはXMLになって更新されるのでしょう。

f:id:StateMachine:20150515175604p:plain f:id:StateMachine:20150515175641p:plain f:id:StateMachine:20150515175652p:plain f:id:StateMachine:20150515175709p:plain f:id:StateMachine:20150515175716p:plain f:id:StateMachine:20150515175725p:plain f:id:StateMachine:20150515175733p:plain f:id:StateMachine:20150515175737p:plain

VSからインストールした時に少しきになるのは、

  • 拡張機能のバージョンが、この時点で"1.4"と固定されてしまいます。PowerShell経由だと、バージョン固定も、1.* 的なインストールもできて(管理ポータルだと勝手に1.* 的なインストールになる)、拡張機能のVLがあがると勝手に更新されるみたいです。
  • PowerShellから入れた診断機能が、VS側から構成変更できないです。たぶん、VS側のプラグインに不具合だとは思うのですが、微妙に不便です。

まとめ

現状、いくつかインストール方法があるなかで、これといった決めてが無いかんじです。管理ポータル、PowerShell ←→VS 間でシームレスに構成変更できればいいのですが、ここが最大のネックです。テスト環境でVSからXMLの構成ファイルVSから作って、それを元にPowerShellで本環境に展開とかのほうが良い感じいはします。

ノートPCを買い換えました

主力ノートPCを買い替えてしばらく使ってみた感想など。

今回、購入にあたって一番重視したのは、メモリが16GBのることでした。重量は、そんなに持ち歩かないので、2.0 Kg 切ってくれればいいくらいの感じでした。買い換え前は、第1世代のLenovo X1 Carbon Touch を使っていて、これにメモリが16GBのるのならば文句はなかったのですが。

色々探してみると、Mac Book Proが最強のWindowsノートPCっぽい感じもしたのですが、結局 DELL Precision M3800 というモバイルワークステーションぽいのを買いました。前と同じLenovoで、T450もメモリが16GBのるのでこちらと最後まで迷いましたが、なんとかく4K ディスプレイに惹かれてDELLにしちゃいました。

www.dell.com

発売当日に購入しようとしたせいかWebからの注文に対応してなくて、法人窓口を通さないと行けないという無駄に面倒なことをしたりしました(その分安くなったのかもしれませんが)

仕様はざっくり以下の通り。

名前 詳細
CPU Core i7 4702HQ
HDD SSD 512GB
OS Windows 8.1Pro
Mem DDR3 16GB=8GB×2
Display 15.6 inc 4K 10マルチタッチ
Weight 1.88Kg

使っていての気づきを以降につらつらと.....

良い点

  • メモリは16GBあって現状十分な感じ。VS, Eclipse複数立ち上げても余裕な感じ。
  • 意外と重くない。X1 Carbon touchと比べれば重いんですが、元々そんなに持ち歩かないので重くてしょうが無いってことはないです。
  • CPUも4コアあって特に不満はないです
  • 4Kディスプレイはさすがに綺麗です。ノートPCのディスプレイのみで使っているときは、DPIも適度な感じで調整されて問題ないです。(MS明朝が美しく見えるw)
  • HDMIとMiniDPポート両方ついていて良いです。
  • USB3×2も普通に便利。
  • 内蔵HDDスロットが、mSATAと2.5の2つあって、デフォの512GB SSDは2.5に刺さってます。したがって空きのmSATAに256GB買ってきて別途指しました。

不満点

  • キーボードがちょいとショボい。DELETEキーと、Enterキーの小ささが気になる。Page Up/Downも独立してないのが気になる(Lenovoは独立してた)普段は外付けキーボード使っているから、そこまで不満はありませんが。
  • 赤ぽっちがない。特に赤ぽっち信者ではなかったのですが、無くなると不便ですね。
  • タッチパッドのEdge Scrollが有効にならない。ググると海外でも同じこと言っている人がいるのですが、解決策が無い状態。synaptics ではあるのですが、純正いれても動かなかったです。ただWin10にしたら動いたので、DELLドライバが意図的に殺している感じでクソです。
  • ACアダプタを別売りしてない。会社用にもう1つ欲しいのですが、まだ日本で発売してないです。あと、PCへの差し込み部分がL型とかになっていないので、断線しそうでいやな感じ。
  • 外付けに27インチ4Kを別途付けているのですが、DPIの調整が微妙。個別のディスプレイ毎にDPI調整は自動でやってくれますが、個別にはできません(Win10だとできるっぽい感じ)
  • High DPIに対応していないソフトが多数あってツライ。
  • たまに外付けに、23インチ Full HDとかつなげると、外付けのほうが物理サイズが大きいにもかかわらず、解像度が少ないという逆転現象に。うまく調整しきれないので、内蔵もFull HDに落とさないと使える状態にならない。

書き連ねてみると、不満点のほうが多いのですが、DPIの件もWindowsの話ですし。ただ、人類に4Kディスプレイは早すぎたみたいな感じです。

f:id:StateMachine:20150515170747j:plain