Azure Monitorのアラートルールのディメンションについて(概要、設定例)

2019-11-17Azure,Monitor,Virtual Machines

Azure Monitorのアラートルールにおける、ディメンション(Dimension)設定の概要、設定手順、設定有無によるアラート発生状況の違いです。

ディメンションを活用することで、アラート発生の条件を柔軟に絞り込んだり、特定のリソースやパターンごとにカスタマイズしたアラートを設定することが可能です。
仮想マシン(Azure VM)のCPU使用率を例に、ディメンション設定の有無によるアラートの発生条件の違いを確認しています。
ログ検索ルールとメトリックアラートルールのそれぞれにおけるディメンション設定の違いを確認しています。

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

※本記事内では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
※本記事内では、Azure MonitorのアラートルールのDimension(ディメンション)をディメンションとして表記しています。

スポンサーリンク

Azure Monitorのアラートルールのディメンションについて

ディメンションとは

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

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

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

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

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

複数の次元 (多次元)

ディメンションの設定例

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

ディメンションの設定例
シグナルにログ検索を選択した場合の例です。
クエリの実行結果から得られるログの項目を、ディメンションとして設定できます。

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

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

スコープによってシグナルが異なる
リソースグループで仮想マシンを指定した場合の例です。
アラートルールで設定できるシグナルに、メトリックが含まれていません。
リソースを個別に指定した場合の例です。
個別に指定した場合は、プラットフォームメトリックを利用できます。

—広告—

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

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

アラートルールを3つのパターンで作成して比較する

比較のため、メトリック警告ルールとログ検索警告ルールでアラートルールを作成します。
ログ検索警告ルールは、ディメンションあり・なしの2パターンで作成しています。
仮想マシンのCPU使用率については、メトリックと分析情報(VM Insights)のログを使用します。
CPU使用率が80%を超えた場合にアラート検知するようにしています。

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

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

アラートルールの作成手順

アラートルールを作成します。
クエリの設定は必要最低限としています。

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

InsightsMetrics
| where Name == “UtilizationPercentage"

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

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

作成したアラートルールを確認

作成したアラートルールを確認します。
3つのアラートルールが作成されていることを確認できます。

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

2台の仮想マシンが稼働している状態でアラート発生状況を確認

1台の仮想マシン(test-vm-01)のCPU使用率を100%にして、アラートの発生状況を確認します。
もう1台の仮想マシン(test-vm-02)のCPU使用率は、10%程度としています。
ディメンションなしのログ検索アラートは、全リソースの平均値になるため、アラートが発生しないことが確認できます。

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

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

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

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

発生したアラートの詳細
ディメンションで分割していませんが、影響を受けるリソースは1台の仮想マシン(test-vm-01)のみとなっています。

※メトリック警告ルールでリソースIDをディメンションとして指定しようとすると、アラートルール作成時に「The dimension name Microsoft.ResourceId is reserved and cannot be used.」というエラーが発生します。

—広告—

最後に

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

引き続き、いろいろ試してみたいと思います。

スポンサーリンク