【Azure】Log Analytics Agentを利用し、仮想マシンのログデータを収集する

Azureを利用した仮想マシンのログ管理について、検証してみましたので、その検証内容について記載します。 内容はLog Analytics ワークスペースの作成から、仮想マシンのログが収集されているところを確認するところまで。
仮想マシンのログ収集という意味では、Log Analytics Agentは、AWSのCloudWatchLogs相当のサービスです。

概要

Log Analyticsとは

Azureのログの格納先。格納されたログに対してクエリを発行し、ログを確認する。

Log Analytics は、Azure portal 内で、ログ クエリを作成したり、その結果を対話形式で分析したりするための主要なツールです。 Azure Monitor の他の場所でログ クエリを使用する場合でも、通常、まず Log Analytics を使用してクエリを作成およびテストします。

Azure Monitor のログ クエリの概要 | Microsoft Docs

Log Analytics Agent とは

Log Analytics Agentを利用し、Log Analyticsにログデータを送付する。

Azure Log Analytics エージェント (旧称 Microsoft Monitoring Agent (MMA) または OMS Linux エージェント) は、オンプレミスのマシン、System Center Operations Manager によって監視されるコンピューター、および任意のクラウド仮想マシンを包括的に管理するために開発されました。 Windows および Linux エージェントは、Azure Monitor にアタッチし、さまざまなソースから収集したログ データを、Log Analytics ワークスペースや、さらには任意の固有ログや、監視ソリューションで定義されているメトリックに格納します。

Azure Log Analytics エージェントを使用してログ データを収集する | Microsoft Docs

通信要件

Azure上の仮想マシンからは、インターネット(Azureのエンドポイント)向けの443ポートが開いていれば問題ありません。

f:id:ykoomaru:20190818115810p:plain

ポート制御だけでなくURLでの制御をしている場合は、以下のURLを参照してください。

Azure Log Analytics エージェントを使用してログ データを収集する | Microsoft Docs

作業

1. Log Analytics ワークスペースの作成

Log Analyticsのワークスペース作成

「ホーム > Log Analytics ワークスペース」 で [追加]をクリック。
[ワークスペース名]等を入力し、[OK]をクリック。
各パラメータについては、以下を参照。 ※ワークスペース名はAzure上で?ユニークな名称にする必要がある模様 Azure portal で Log Analytics ワークスペースを作成する | Microsoft Docs

f:id:ykoomaru:20190819124058p:plain

2. VMとの紐づけ(Agentのインストール)

Log Analyticsのワークスペース仮想マシンとの紐づけ

ホーム > Log Analytics スペース に移動し、[1で作成したワークスペース名] - [仮想マシン] - [ログを取得したい仮想マシン名] をクリック。 ※今回はWindows Server2019環境

f:id:ykoomaru:20190819125729p:plain

[接続] をクリック。

f:id:ykoomaru:20190819132500p:plain

数分後、状態が 「このワークスペース」となっていることを確認する。

f:id:ykoomaru:20190819130913p:plain

Windows Server内でのインストール状況の確認

対象のサーバーにRDP接続し、以下を確認する

① 「Microsoft Monitoring Agent」がインストールされていること f:id:ykoomaru:20190819130802p:plain

② アプリケーションログで「Microsoft Monitoring Agent」が正常にインストール完了したとなっていること f:id:ykoomaru:20190819130852p:plain

③Agentのサービスが「Running」となっていること
Microsoft Monitoring Agent
Microsoft Monitoring Agent Azure VM Extension Heartbeat Service
f:id:ykoomaru:20190819133119p:plain

3. Log Analyticsで取得するログ設定

「ホーム > Log Analytics ワークスペース > 2で作成したワークスペース」に移動し、[Data]-[Windows イベントログ]をクリック。
入力欄に[取得したいログ名]を入力し、[+]をクリック。
※今回は、「System」ログ及び「Application」ログを取得対象としています。

f:id:ykoomaru:20190819131223p:plain

4. 動作確認

最後に動作確認をします。 ※ログの取得設定をしてから表示されるまで10分ほどラグがあるので、注意。

「ホーム > Log Analytics ワークスペース > 2で作成したワークスペース」に移動し、[ログ]をクリック。
クエリに[Event]と入力し、[実行]をクリック。

Azureのログ構造は以下のドキュメントを参照。
Azure Monitor Logs の構造 | Microsoft Docs

f:id:ykoomaru:20190819133502p:plain

WindowsServerで取得したログが表示されていることを確認する。

f:id:ykoomaru:20190819134200p:plain

最後に

Azure Portal上の操作でAgentのインストールや取得するログの種類まで指定できるのでとても便利。Azure上の仮想マシンだけでなく、オンプレのサーバーのログも収集対象とできるため、Azureでログを一元管理することができそう。大量のログをそのまま残しておくと、課金がえぐいことになりそうなので、ログの保管期間やアーカイブの設計が必須。