VMSS(Virtual Machine Scale Set)のLinux仮想マシンからのログ取り込み

Azure LogAnalyticsワークスペースに様々なログを取り込んでみます。他にも色々とやってますので下記エントリも確認お願いします!

すでに単体の仮想マシンからログを取り込む方法に関しては紹介済みです。

ですが、VMSSを使って簡単にスケールアウト、スケールインができる環境ではどのようにエージェントインストールとLog Analyticsワークスペースへの接続を実現できるでしょうか?1台づつ接続して個別にインストールしていたのでは大変ですよね。

これは「拡張」を使うことで解決できます。手順を見ていきます。

VMSS作成

まずはVMSSを作成します。自動的にLog Analyticsワークスペースに接続できることを確認するのが目的のため、内容はあまり気にしなくて大丈夫です。Linuxを選択しているところは注意してください。

拡張機能の設定(専用の拡張を使う方法)

Azure LogAnalyticsワークスペースに接続するための専用の拡張が存在します。なぜか、Azureポータルからの操作ではこの拡張は表示されませんので注意して下さい。Azure CLIで設定を行います。

下記のコマンドでvmssに拡張のセットが可能です。リソースグループ名、VMSSの名前、ワークスペースID、ワークスペースキーは実際の値に置き換えた上で実行して下さい。

az vmss extension set --name OmsAgentForLinux --publisher Microsoft.EnterpriseCloud.Monitoring --resource-group <nameOfResourceGroup> --vmss-name <nameOfNodeType> --settings "{'workspaceId':'<Log AnalyticsworkspaceId>'}" --protected-settings "{'workspaceKey':'<Log AnalyticsworkspaceKey>'}" 

拡張機能の設定(Custom Script for Linuxを使う方法)

もう一つの方法としてCustom Script for Linuxを使う方法も紹介しておきます。Custom Script for Linuxであれば任意のコマンド、スクリプトを使えるので本件に限らず任意のロジックを組み込めます。

拡張機能を追加します。

Custom Script For Linuxを選択します。

ここで、Azure LogAnalyticsワークスペースに接続するためのコマンドを記載してあげれば、VM作成後にコマンドが実行され、うまくいきます。

接続するためのコマンドは「エージェント管理」から取得できます。

ここでコピーしたコマンドを「Command」部分に直接貼り付け…てはいけません。

/bin/sh -c '実行するコマンド(コピーしたwgetからはじまるワンライナー)'

という形にしてください。

動作確認

これで、VMSSで展開されたVMも自動的にLog Analyticsワークスペースに接続可能となります。

この拡張を展開する前に存在しているVMがあった場合には「最新のモデルにアップグレード」させてあげてください。これにより、コマンドが実行されます。

テストではインスタンス数を3に変更し、新規に1台も展開してみました。

3台が稼働状態となりました。

きちんと自動で接続できたことが確認できました。

参考URL

今回の内容は以上です!他にも色々とやってますので下記エントリも確認お願いします!

コメントを残す