Azure Monitor アラートルールのディメンション概要から設定例

2019-11-17Azure,Monitor,Virtual Machine

Azure Monitorのアラートルールにディメンション(Dimension)という設定項目があります。
ディメンションの概要から設定有無による違いについて纏めてみました。

    • ディメンションの概要、設定例
    • ディメンションを使用してログ検索警告ルールを作成
    • ディメンション有無によるアラート発生状況差異を確認
    • メトリック警告ルールのディメンション設定

※仮想マシン(Azure VM)のCPU使用率のアラートルールを例に纏めています。

スポンサーリンク

ディメンションについて

ディメンションとは

ディメンションは監視データ内の項目を指し、区分して集計したい場合に利用します。
メトリックアラートやログアラートなどで指定する事が出来ます。

ディメンションごとの分割を使って複数のリソースに対する同じ条件を監視する

アラートをトリガーする条件を絞り込んだり、特定のパターンに基づいてアラートを発行するようカスタマイズすることができます。

    • リソース単位で分割して監視したい
    • リソース内の設定単位で監視したい

ディメンションは組み合わせて利用する事も出来ます。
複数の設定を組み合わせて条件設定したい場合などに利用出来ます。

複数の次元 (多次元)

ディメンションの設定例

ディメンションの設定例です。
監視データ内の項目がディメンションに表示されます。

ディメンションの例
画面はログ検索の例です。
クエリの実行結果で得られるログの項目がディメンションとして設定できます。

スコープによってシグナルが異なる

リソースグループやサブスクリプション単位などで指定した場合とリソース単位で指定した場合では選択できるシグナルが異なります。
スコープをリソースグループ単位で指定した場合にメトリックのシグナルが指定出来ない場合があります。

※ディメンションには直接関係しませんが時々聞かれる事があるので記載しています。

スコープによってシグナルが異なる
リソースグループで仮想マシン(Azure VM)を指定した場合です。
アラートルールで設定出来るシグナルにメトリックがありません。
リソースを個別で指定した場合です。
個別で指定した場合にはプラットフォームメトリックがあります。

ディメンションを使ってアラートルール作成

仮想マシン(Azure VM)のCPU使用率を例にディメンション設定を確認します。
仮想マシン(Azure VM)の分析情報(VM Insights)についてはこちらに纏めています。

3つのパターンでアラートルール作成

比較するためメトリック警告とログ検索警告ルールでアラートルールを作成します。
ログ検索警告ルールはディメンションありとなしの2パターンで作成しています。
仮想マシン(Azure VM)のCPU使用率はメトリックと分析情報(VM Insights)のログを使用します。

    • メトリック警告ルール(1つ)
      • 対象リソースは仮想マシン(Azure VM)(test-vm-01,02)を指定
      • シグナルはメトリックのCPU Percentageを指定
      • 条件はCPU Percentageが80より大きい場合
      • ディメンションは指定しない
    • ログ検索警告ルール(2つ)
      • 対象リソースはLog Analyticsワークスペース
      • シグナルはカスタムログ検索を指定 
      • 条件はUtilizationPercentageが80より大きい場合
      • ディメンション設定は2パターン 
        • ディメンションを指定しない
        • ディメンションにComputer指定

※プラットフォームで取得されるCPU Percentageと分析情報(VM Insights)で取得されるUtilizationPercentageの値は異なります。
※CPU使用率が80%より大きい場合にアラートとしています。
※ログ検索警告ルールは分析情報(VM Insights)のログを使用します。
※メトリック警告ルールでリソースIDを指定しようとするとアラートルール作成時にエラーとなります。The dimension name Microsoft.ResourceId is reserved and cannot be used.のエラーが発生します。

アラートルール作成

アラートルールを作成します。

※クエリは最低限の設定としています。

アラートルール作成
カスタムログ検索のアラートルールを作成例です。
今回はディメンションがある場合とない場合の2パターン作成します。

InsightsMetrics
| where Name == “UtilizationPercentage"

ディメンションを設定する場合です。
ディメンション名にcomputerを指定します。
リソースID列も指定できます。

※今回はリソースID列は分割しないを選択しています。

アラートルール確認

3パターンのアラートルールが作成されている事を確認します。

アラートルールを確認
3つのアラートルールが作成されている事が確認できます。
メトリック警告ルール、ログ検索警告ルールが作成されています。

アラート発生状況を確認

test-vm-01のみCPU使用率を100%にしてアラート発生状況を確認します。
ディメンションなしのログ検索アラートは全リソースの平均になる為アラートが発生しない事が確認出来ます。

※2台(test-vm-01,02)の仮想マシン(Azure VM)が稼働している状態です。
※仮想マシン(Azure VM)のCPU使用率は10%程度です。

アラート発生状況を確認
ディメンションなしのメトリック警告アラートとディメンションありのログ検索アラートが発生している事が確認出来ます。
ディメンションなしのログ検索アラートは発生していません。

メトリックの場合はディメンションを設定しなくても良い

1 つのメトリック アラート ルールで複数の時系列を監視する

メトリック警告ルールの場合はディメンション設定は必要ありません。
元々リソース単位で時系列のデータが収集される為必要ありません。

※リソースIDを指定しようとするとアラートルール作成時にエラーとなります。The dimension name Microsoft.ResourceId is reserved and cannot be used.のエラーが発生します。 

アラート詳細
ディメンションを分割してませんが、影響受けるリソースがtest-vm-01となっています。

最後に

Azure Monitorのアラートルールにあるディメンション(Dimension)について纏めてみました。
メトリック警告ルールの場合はディメンションが必要ない場合がある事が確認できました。
またログ検索ルールの場合はディメンション設定有無によりアラート発生状況に違いが出る事が確認できました。

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

スポンサーリンク