Azure Monitor Agent のVMログ収集を検証してみた(Windows / Linux / カスタムログ)

こんにちは。システムサービス本部IPコミュニケーショングループのfujimori.tです。
Azure からは、仮想マシン上のさまざまな情報を収集する、「Azure Monitor Agent」が提供されています。
Azure Monitor エージェントの概要
この記事では、Azure Monitor Agent を用いた監視を実際に行い、動作や振る舞いを見ていこうと思います。
目次
用語の確認
Azure Monitor
Azure で提供されている監視サービス群です。後述する「Log Analytics」、「Azure Monitor Agent」も Azure Monitor の一部です。
Azure 上にデプロイしたサービスのログや変更履歴、アプリや VM 上の正常性などを統括的に監視することができます。
Log Analytics
Azure Monitor で提供されているログ分析サービスです。
収集したログを Microsoft の提供するクエリ言語で集計 / 分析することができます。
Azure Monitor Agent
Azure Monitor で提供されている、後述する「データ収集ルール」に従い VM 上からイベントログやパフォーマンス情報等を収集するサービスです。
収集したデータは Microsoft Sentinel や Microsoft Defender for Cloudなどで利用することもあります。
データ収集ルール / データ収集エンドポイント
それぞれ、Azure Monitor Agent が
・何のログを収集するか
・ログを送信する経路
を定義します。
前提
監視対象のマシンは、Azure (Microsoft) と通信できる必要があります。外部ネットワークから完全に遮断された環境では、エージェントを使用することができません。
検証の構成
今回の検証環境は以下の構成です。

インストール・設定事項
Azure Monitor Agent インストール
今回は、Azure VM (Windows Server・Linux マシンの双方) に、Azure Monitor Agent をインストールしていきます。
データ収集ルールを各マシンに関連付けを行うと、自動で Azure Monitor Agent がインストールされます。

関連付けたルールに定義された規則に従い、各マシンからログやデータを収集します。
注意事項
Azure Monitor Agent は、データ収集ルール で定義されたルールをもとに、データの収集を行います。
Azure Monitor Agent で収集できるログのうち、
・カスタム JSON ログ
・カスタム テキスト ログ
については、収集先の Log Analytics に あらかじめカスタムテーブルを作成しておく必要があります。

設定
今回は、
・Windows イベントログ
・Linux Syslog
・カスタム テキストログ
の3種類のログを収集します。

カスタム テキスト ログについて、上記画像に記載のルールを入れております。
動作確認
Windows イベントログについて、作成した VM 上から Application ログを発生させ、Log Analytics 上で確認します。


Linux Syslog についても同様に、作成した VM 上から Syslog を発生させ、Log Analytics 上で確認します。


それぞれのログについて、Log Analytics 上で確認することができました。
最後にカスタムテキストログについて、収集される様子を確認していきます。


それぞれのログについて、Log Analytics 上で確認することができました。
なお、公式ドキュメントに記載の通り、大量のカスタムテキストファイルを同時に監視することは、推奨されておりません。
弊環境では、Linux マシンのカスタムテキストについては 同時に 538 ファイル以上監視するとき、Azure Monitor Agent (内部のfluent-bit) が不安定になる挙動を確認いたしました。
おわりに
Azure Monitor Agentのログ監視を試してみました。
実運用では、出力されたエラー強度やログ内に含まれるメッセージを用いて、アラート通知やメール通知をセットで実施するケースもあります。
本記事がクラウド環境にてアラートの一元管理を行うための一助となれば幸いです。









