広告

Azure Monitor:アラートの種類

Azure

前回の続きで、今回は アラート ルール について、一緒に学んでいきたいと思います。

アラート ルールとは

Azure Monitor の監視データを使用してインフラストラクチャまたはアプリケーションに問題が見つかったとき、アラートによって事前通知されます。
簡単に言うとイベントをトリガーにして、メール通知や、自動処理などをするための機能です。

Azure Monitor アラートの種類

Azure Monitor のアラートは以下の3種類があります。

  • メトリック アラート
  • ログ アラート
  • アクティビティ アラート

メトリック アラート

メトリック アラートには、以下のメトリックが含まれています。

  • プラットフォーム メトリック
    • Azure が用意した基本的なメトリック
  • カスタム メトリック
    • ツールやエージェントで収集したメトリックデータを Azure Monitor に送信する
    • (2021/10/15時点 プレビュー)
  • Azure Monitor からの一般的なログのメトリックへの変換
    • Log Analytics のログから変換されたメトリックデータ
  • Application Insights のメトリック

メトリック アラートは既定でステートフルです。つまり、状態が変更されたときにのみ (発生、解決済み)、通知を送信します。
要するに、アラートが発生したときとアラートが解決されたときに、それぞれ一度だけ通知します。

プラットフォーム メトリック

Azure が用意した基本的なメトリックです。
すべてメトリックをカバーできないため、プラットフォーム メトリック 一覧 を確認する必要があります。

または、下の図のように、アラート作成の「アラートの条件」画面で、フィルターをかけて必要なものを検索することもできます。
platform metric

カスタム メトリック

カスタム メトリックは仮想マシンのエージェントなどで収集するメトリックとなります。
エージェントがメトリックのデータを収集して、Azure Monitor に送信する仕組みとなっています。

送信する方法は以下のものがあります。

  • Azure Application Insights SDK を使用する ※ 開発
  • 仮想マシンの Azure Diagnostics 拡張機能 (診断設定)
  • 仮想マシンの Azure Monitor エージェント (プレビュー) で収集
  • InfluxData Telegraf エージェント (Linux 用エージェント)
  • Azure Monitor REST API へ直接送信する ※ 開発

上記エージェントの方法は、Azure 上の一般的な方法となりますので、エージェントについて詳しく理解したい方は、以前の記事に目を通していただければと思います。

Azure Monitor からの一般的なログのメトリックへの変換

この種類のメトリックは、Log Analytics で収集したログのパフォーマンス カウンターデータをメトリクスに変換して、アラートの条件として使用するものとなります。

Log Analytics のログクエリからでもアラートを作成することはできますが、変換するメリットとしては以下のものがあります。

  • ほぼリアルタイムの監視機能が提供される (Log Analytics のクエリより早い)
  • メトリック アラートはステートフル
    • 要するに、アラートが発生したときとアラートが解決されたときに、それぞれ一度だけ通知します。
  • 複雑なクエリを書く必要はない
  • アラート ロジックの評価基準の「集約粒度(期間)」と「評価の頻度」を "1分ごと" にすることが可能
    • Custom query のアラートの場合、最短 5 分となります
    • 【2021/10/22 追記】現在ログ アラートの方でも、頻度を1分に設定できるようになりました (プレビュー)。参考

※ 「集約粒度(期間)」と「評価の頻度」は下記の図の設定を指しています。

サポートされている Log Analytics ログは以下:

  • Windows & Linux マシンのパフォーマンス カウンター
  • Agent Health のためのハートビート レコード
  • Update Management レコード
  • Windows イベント ログ
    ※ ログでサポートされるすべてのメトリックの一覧はこちらをご参照ください。

ログのメトリックアラートを使用するための前提条件:

  • Log Analytics ワークスペース
  • 監視対象仮想マシンが Log Anlytics ワークスペースに接続している
  • Log Analytics ワークスペースにて、パフォーマンス カウンターの収集を構成されている

作成方法

  • 基本のメトリックアラートの作成方法と同じ
  • リソースの選択で、仮想マシンではなく、対象仮想マシンが接続している Log Analytics ワークスペース を選択すること

Application Insights のメトリック

アプリのメトリックの監視については、知識不足のため、ここでは深堀しないようにしますが、標準メトリックについて、こちらをご参考していただければと思います。

ログ アラート

ログ アラートにより、ユーザーは Log Analytics クエリを使用して、設定された頻度でリソース ログを評価し、その結果に基づいてアラートを発行することができます。

Azure ポータルでログ アラートを作成する場合、基本的には以下の方法があります。

  • Log Analytics の「ログ」から作成

    • 対象リソースの「監視」-「ログ」でもクエリの画面に遷移できます
  • 直接 Alert を作成

    • アラートの「スコープ」はログ収集先の Log Analytics ワークスペースを選択する
    • 「条件」は「Custom log search」を選択する

また、上記の内容通り、メトリックではないので、「集約粒度(期間)」と「評価の頻度」は最短 "5分ごと" となります。
なので、メトリックよりは反応が遅いことになります。

アクティビティ ログ アラート

アクティビティ ログ アラートは、アラートに指定した条件と一致する新しいアクティビティのログ イベントが発生したときにアクティブになるアラートです。
また、以前ご紹介した Azure Service Health はアクティビティ ログをベースとしているので、Azure Service Health でアラートを作成する場合、本質的には アクティビティ ログ アラートとなります。

アクティビティ ログは、Azure に対する操作のログと理解していただければいいと思います。
例えば、リソースが変更されたときや仮想マシンが起動されたときなどの情報が含まれます。

アラート作成する際に、条件のシグナル種類を指定すれば、アクティビティ ログ のシグナルのみを表示させることができます。
リソースの種類によって、シグナルの種類も異なります。
下図は仮想マシンの場合の例となります。

最後に

元々アラートの部分を一回で全部済ませそうと思いましたが、アラートの種類のみで長文になってしまいましたので、アラートの作成部分を次回で学んでいこうと思います。
できれば、理解しづらいところを分かりやすくまとめようと思います。

参考情報

参考:

コメント

タイトルとURLをコピーしました