Azure Monitorログのアーカイブや基本ログの概要、検索ジョブ、設定、復元手順

Azure,Log Analytics,Monitor

Azure Monitor ログ(Log Analytics)でアーカイブログや基本ログプラン(Basic)が追加されました。

General availability: Azure Monitor Logs – capabilities to add value and lower costs

特にアーカイブログを使うと7年間保管が可能になるなど使い勝手が良くなっています。

今回は追加になった基本ログプラン(Basic)、アーカイブログなどの概要整理から検索ジョブの実行、アーカイブログの復元などの操作方法確認までやってみました。

スポンサーリンク

基本ログプラン(Basic)やアーカイブとは

基本ログプランの概要

クエリはあまり実行しないけどログ取り込みしたいと言う方向けに基本ログプラン(Basic)が追加されました。
基本ログプラン(Basic)追加に伴い既存のログ収集方法を分析ログプラン(Analytics)と言うようになったようです。

テーブルのログ データプランを Basic または Analytics に設定する

このモードを使うとクエリ実行に課金が発生しますが、ログ取り込み自体の課金を抑える事が出来ます。
基本ログプラン(Basic)と分析ログプラン(Analytics)の機能の違いは公式サイトに記載があります。

Basic と Analytics のログ データ プランを比較する

基本ログプラン(Basic)ではリテンション期間(ログ検索可能な期間)は 8 日と短くなっています。
それ以降はアーカイブとして保管されます。
Azure Monitorでの利用もできない為アラートルールの設定には利用できません。
ログ保管での利用がメインとなります。

アーカイブログの概要

アーカイブログはLog Analyticsワークスペースにログ保管を行うモードです。
アーカイブログを使うとログを7年間保管(通常は2年保管)出来るなど長期保管が可能となっています。
通常は31日を超えてログ保管した場合に発生する課金額も安く抑える事が出来ます。

テーブルのログ データプランを Basic または Analytics に設定する

アーカイブログに対して検索を行う為には、復元の作業が必要になります。復元後にクエリ検索と言う形になります。
またデータ復元にあたっても課金が発生します。

課金の違い

基本ログ(Basic)は分析ログプラン(Analytics)での取り込みに比べ1GBあたり約5分の1の価格に抑える事が出来ます。

Azure Monitor の価格

東日本リージョン(2022年12月現在)の価格は下記通りになります。

分類 ログ取り込み ログ検索
分析ログ(Analytics) $3.34/GB 無料
基本ログ(Basic) $0.725/GB $0.008/GB(スキャンされたデータあたり)

データ保管に関する価格(東日本リージョン(2022年12月現在))は下記通りになります。
アーカイブログでは約5分の1の価格に抑える事が可能です。
復元されたデータに対して課金が1日あたり発生します。復元後は速やかに削除する事が必要になります。

分類 データ保管 追加課金
データ保持 1 GB あたり $0.15/月
データ アーカイブ 1 GB あたり $0.029/月 データ復元
1 日あたり GB あたり $0.145

※最小復元データ容量単位が2TB(切り上げ)となっています。課金額については注意が必要です。

基本ログプラン(Basic)やアーカイブ設定

Azure Portalを使って基本ログプラン(Basic)設定します。
Log Analyticsワークスペースのリソースメニューにあるテーブルで設定します。

基本ログプラン(Basic)の設定

基本ログプラン(Basic)への変更、アーカイブ設定します。
基本ログプラン(Basic)をサポートしているテーブルは限られています。

基本ログをサポートするテーブル

基本ログプラン(Basic)設定

変更対象のテーブルで”テーブルの管理”を選択ます。

テーブルプランで基本ログプラン(Basic)か分析ログプラン(Analytics)が設定出来ます。
基本ログプラン(Basic)を選択すると対話型の保持期間(リテンション期間(クエリ検索可能期間))が8日になります。
保持期間の合計は30日となります。
22日間はアーカイブとして保管されます。
保持期間の合計は最大7年まで選択出来ます。
対話型の保持と同じにするとアーカイブせずに8日間保管とする事が出来ます。

保持期間の合計で5年で設定してみます。
5年から8日間を引いた1818日間アーカイブとしてログ保管されます。
テーブル一覧で設定内容を確認します。
プランがBasicになっている事が確認出来ます。
対話型の保持が8日、アーカイブ期間が5年と設定が反映されている事が確認出来ました。

分析ログプラン(Analytics)でアーカイブ設定

分析ログプラン(Analytics)でアーカイブ設定をしてみます。
テーブル単位で保持期間の設定が出来ます。
今回はVMComputerで実施してみます。

分析ログプラン(Analytics)設定
テーブルの管理を選択します。
対話型の保持と保持期間の合計の組み合わせで設定します。
対話型の保持期間を変更する場合は既存のワークスペース設定を使用のチェックを外します。
対話型の保持期間の最長は今までと変わらず2年間になります。
保持期間の合計は最長7年まで選択が可能です。
保持期間の合計ー対話型の保持期間がアーカイブログの保持期間になります。
対話型の保持期間を1年間、保持期間の合計を7年として保存します。
テーブル一覧で設定内容を確認します。
対話型の保持が1年、アーカイブ期間が6年と設定が反映されている事が確認出来ました。
テーブル単位で設定変更出来る事も確認出来ました。

検索ジョブ

検索ジョブにはAzure Portal、REST API、Azure CLIが使えます。
今回はAzure Portalを使います。

検索ジョブを使用する場面

検索ジョブは基本ログの検索を行う場合や10分以上かかるKQLクエリを実行する場合などに利用します。
検索ジョブの実行結果は新規テーブルに出力されます。

検索ジョブの実行

VMProcessのテーブルをサンプルに検索ジョブを実行します。

Azure Monitor で検索ジョブを実行する

VMProcessのテーブルを対話型の保持期間30日間、保持期間の合計を60日間(アーカイブ期間30日間)に変更します。
2022年11月9日(UTC)まで対話型のクエリ検索が可能な期間の状態で実施しています。

検索ジョブの実行
対話型のクエリ検索を行います。
11月3日から11月12日までの期間でクエリを実行すると11月9日からの結果が確認出来る状態です。
検索ジョブを有効にすると実行ボタンが検索ジョブに変わります。
projectで表示項目を選択してみます。

検索ジョブのクエリで使える演算子は限定されています。
Order句等は利用不可なので削除します。

KQL クエリの制限事項

クエリ内の検索期間は時間の範囲には反映されません。個別に設定が必要になります。今回は90日としています。

検索ジョブ結果を保管するテーブル名の指定が必要になります。
検索ジョブの実行を指定します。

検索ジョブ実行結果を保存するテーブル名はVMProcess_job_01としています。

検索ジョブ実行完了メッセージが表示されます。
VMProcess_job_01の表示を選択します。
VMProcess_job_01として検索ジョブ実行結果が表示されます。
project句で指定した値が取得されている事が分かります。
TimeGeneratedは検索ジョブ実行時間になります。元々の値は_OriginalTimeGeneratedとして表示されます。

※アーカイブ期間のログ取得は復元を使います。検索ジョブで直接取得する事は出来ません。

検索ジョブ実行時のエラーについて

検索ジョブ実行時にエラーや結果が得られないケースがあります。

検索ジョブ実行エラー
検索対象にアーカイブログ期間を含めずに実行します。
この場合はエラーになります。

検索対象をアーカイブログ期間のみした場合です。
検索ジョブ自体は完了しますが、テーブルの中身は何もない状態となります。

※検索ジョブでアーカイブログの取得が出来ない為結果は空になります。

アーカイブログの復元

アーカイブログは直接クエリ検索できません。ログの復元が必要になります。
復元にはREST APIやAzure CLIを使います。
Azure Portalを使った復元は提供されていません。(2022年12月現在)

こちらを参考に手順を確認します。

Azure Monitor でログを復元する

アーカイブログ復元コマンド

Azure CLIを使ったログ復元にはaz monitor log-analytics workspace table restoreを使います。

    • クエリ設定内容
      • Log Analyticsワークスペース名:test-loganalytics-workspace-01
      • リソースグループ名:test-rg
      • 復元元のテーブル:VMProcess
      • 復元先のテーブル名:VMProcess_RST
      • 復元期間(開始):2022-11-03T00:00:00.000
      • 復元期間(開始):2022-11-05T00:00:00.000

作成したクエリです。復元先のテーブル名は_RSTで終わる必要があります。

アーカイブログ復元のクエリ
PS C:\> az monitor log-analytics workspace table restore create –subscription サブスクリプションID –resource-group test-rg –workspace-name test-loganalytics-workspace-01 –name VMProcess_RST –restore-source-table VMProcess –start-restore-time “2022-11-03T00:00:00.000Z" –end-restore-time “2022-11-05T00:00:00.000Z" –no-wait

復元後の確認

復元されたアーカイブログを確認します。

復元されたアーカイブログの確認
クエリで指定したテーブルにログが復元されます。
指定した範囲のログが復元されている事が分かります。
検索ジョブとは異なりTimeGeneratedは変わりません。
テーブル一覧を確認します。
種類に復元されたログとして表示されます。

テーブルの削除

検索ジョブ結果や復元されたログのテーブルは利用後削除します。

テーブルを削除する

※削除しないと無駄な課金が発生します。特に復元されたログのテーブルの課金は1日単位で発生します。

テーブルの削除
テーブルで削除を選択します。
確認メッセージが表示されるのではいと入力します。
テーブル削除されている事が確認出来ます。

最後に

Azure Monitorログ(Log Analytics)でアーカイブログ機能中心に確認してみました。
各テーブル(ログの種別)単位で保管期間が設定出来たり保管期間を7年にする事が出来るなど便利になっています。
検索ジョブなども便利に使えるようになっておりとても便利かと思いました。

今後も引き続き色々試してみたいと思います。

スポンサーリンク