はじめに
ログ検索アラートルールを作成するなかで、同じ場所の設定なのに仕様が異なりアラートの動作に影響が出た事例をご紹介します。
ログ検索アラートルールとは
Log Analytics クエリを使用してリソースを監視することで、一定の頻度でリソース ログを評価し、条件が満たされるとアラートが発生します。 ログ分析 クエリを使用できるため、データに対して高度なロジック操作が実行可能です。
スコープ設定とは
アラートルール作成時一番初めにある設定項目で、作成するアラートルールの監視対象範囲を決定します。
(=Log Analytics クエリを使用して検索するログの範囲の指定)
[リソースを選択する] ペインで、アラート ルールのスコープを設定し、サブスクリプション、リソースの種類、リソースの場所でフィルター処理をし設定できます。
スコープ設定パターン
スコープの設定パターンとしては以下4つあります。
③サブスクリプション、リソースグループ、リソースの種類を指定
パターン③④の違い
「リソースの絞り込み」 設定の利用有無 ⇒ アラートルールの仕様の違いに影響
パターン③:利用有
パターン④:利用無
UIではリソースの設定がすべてか特定かの違いだけのように見えるが、Bicepのコード上では設定パラメーターが異なります。
パターン③:scopeパラメーターに特定のリソースのリソースグループIDを指定し、targetResourceTypesパラメーターにリソースプロバイダー名とリソースタイプを指定する。
scope: '/subscriptions/サブスクリプション名/resourceGroups/リソースグループ名'
targetResourceTypes: 'リソースプロバイダー名/リソースタイプ'
パターン④:scopeパラメーターに特定のリソースのリソースIDを指定する。
scope: '/subscriptions/サブスクリプション名/resourceGroups/リソースグループ名/providers/リソースプロバイダー名/リソースタイプ/リソース名'
スコープ設定のMS推奨
ログ検索アラートルールを利用する場合、基本的に監視対象ログが収集されている Log Analytics ワークスペースを指定する方法(パターン④)を推奨しています。(MSサポートより)
スコープ設定の仕様
1. 選択されたリソース グループに含まれるリソースから収集されたログが格納されている、すべての Log Analytics ワークスペース※ に対してクエリを実行します。
※ 例えば、該当リソース グループ配下の VM から別サブスクリプションの Log Analytics ワークスペースにログを送信している場合、そのワークスペースからもログを検索します。
2. 抽出されたログのうち、「リソースの絞り込み」で選択したリソースから収集されたログのみを対象 として、アラート ルールの評価を行います。 (パターン③)
仕様が影響を与えるアラートの動作(例)
実現したい事
仮想マシンのログ・メトリックを評価し、アラートを発生させたい。
構成:AMAを利用し、LogAnalyticsワークスペースへログおよびメトリックを収集
ログの収集元:仮想マシン(VM)
アラートルールのスコープ:LogAnalyticsワークスペース
アラートの動作
「リソースの絞り込み」設定を利用し、 Log Analytics ワークスペースを設定していた場合(パターン③)、スコープ設定仕様②により VM から収集されたログが評価対象とならず、アラートが発報されませんでした。
パターン③とした理由は、今後の拡張性を考慮し、すべてのワークスペースから検索してくれるのであれば指定したリソースグループ配下のワークスペースが増えても、アラートルールを増やす必要がないためです。
解決策
「リソースの絞り込み」設定を利用せず、パターン④のスコープ設定をすることでスコープ設定仕様②が適用されず、実現したいアラートの動作となりました。
おわりに
UIから感じる差異以上に、仕様が異なったため同じようなことをする方はご注意ください!