Azure VM からエージェント経由で各種データ (イベントログ / Syslog / メトリック) を取得する方法として、以下の 2 つの方法が提供されています。
DCR を使用して情報収集を行う場合のメモを。
Contents
Azure Diagnostics 拡張機能を使用しない理由
従来の VM の各種データ取得は Azure Diagnostics 拡張機能を使用していたかと思います。
現在も Azure Disagnostics 拡張機能は使用することができますが、サポートされる OS としては、最新の OS はサポートされていません。(Windows Server 2022 はサポート対象外ですが動作はします)
また、Linux で動作させる場合の要件については、Linux Diagnostic Extension 4.0 を使用して、メトリックとログを監視する に記載されていますが、Python 2 が必要となり、動作させるためには、サポートが終了している Python の導入が必要となります。
Linux については次の記載もあり、今後は Diagnositcs 拡張機能は非推奨となり、Azure Monitoring Agent (AMA) に統合される予定となっています。
注意
現在、Linux Diagnostic Extensions (LAD) のすべてのバージョンを、Python 3 を既にサポートしている新しい Azure Monitoring Agent と収束する予定です。 LAD は非推奨となる予定であり、発表と承認待ちの状態です。
また、Azure Arc で接続した環境でも Azure Diagnostics 拡張機能はサポートされておらず、DCR によるデータ収集のみがサポートされています。
最新の OS をサポートし、様々な環境で動作している OS をデータ収集対象とするためには Azure Diagnostics 拡張機能ではなく、データ収集ルールを使用したデータ収集を検討したほうが良いと思い、Azure Diagnostcis 拡張機能ではなく、データ収集ルールを使用しています。
データ収取ルール (DCR) を使用したの情報の収集
情報の取得先
Azure Diagnostics 拡張機能 (Microsoft.Insights.VMDiagnosticsSettings) でデータを収集する場合は、Azure ストレージに対して情報の取得を行うことになるかと思います。
データ収集ルールを使用する場合も拡張機能は必要となりますが、Azure Monitor Agent (AMA) の拡張機能を使用して Log Analytics ワークスペースにデータを収集するのが基本的な構成となるかと。
データ保有期間の調整
DCR は Log Analytics ワークスペースにデータを収集します。
Log Analytics ワークスペースは短期的なデータ格納であれば、コスト的には問題ありませんが長期的にデータを格納する場合、コストが高くなる可能性があります。
そのため、Log Analytics ワークスペースには、データ保有期間 を設定し、短期的なデータ格納にするのが一般的な設定となるのではないでしょうか。
長期的なデータ保存
Log Analytics ワークスペースに保存しているデータを長期的に保存する方法としては、ストレージアカウントへのデータエクスポート があります。
エクスポートは Log Analytics ワークスペース内のテーブルを指定して設定を行いますが、すべてのテーブルはサポートされておらず、エクスポート可能なテーブルについては サポート対象のテーブル に記載されています。
DCR で収集されるデータについては、Event / Syslog / Perf / Heartbeat が代表的なテーブルとなるかと思いますが、これらのテーブルについてはストレージアカウントへのエクスポートがサポートされていますので、長期的なデータ保存についてはストレージアカウントの BLOB ストレージを利用することが可能です。
今回は VM からログとメトリックのデータ取得を行いましたが、VM から Log Analytics ワークスペースに出力される可能性のあるテーブルについては microsoft.compute/virtualmachines の Log Analytics テーブル で確認をすることができます。(他のリソースから Log Analytics ワークスペースに診断データを送信する場合のテーブルについてもこのドキュメントツリーから確認できます)
ストレージアカウントにエクスポートしたデータの検索
ストレージアカウントに保存したデータについては、Data Explorer や、Synapse の Serverless SQL プール を使用して検索を行うことができますので、これらのリソースの利用もセットで考えておくとよいかと。
エクスポートしたデータのライフサイクル管理
エクスポートしたストレージアカウントのデータについては、「am-」で始まるテーブルごとのコンテナーに「追加 BLOB」でエクスポートされていきます。
追加 BLOB については、ライフサイクル管理 で自動的な削除を実施することができますので、長期の保持期間が経過したファイルについては、削除するように設定をしておくことで、エクスポートしたログによるストレージ使用量の肥大化は防ぐことができます。