DatadogでAzure Appllication Gatewayの正常性監視

 

DatadogをAzureのテナントと接続する事で、Azureのリソース(Application Gateway等)のメトリック監視やダッシュボード表示を行う事が出来ます。

今回は、DatadogでAzureリソースのダッシュボード作成、メトリック監視設定を試してみました。

設定対象はAzure Application Gatewayのバックエンドプールの正常性(正常なホスト(Healthy host count))としてみました。

なお、Azure Monitorを使ったAzure Application Gatewayのバックエンドプールの正常性監視はこちらに記載しています。

Azure MonitorでApplication Gateway正常性プローブを監視

また、AzureとDatadogの接続についてはこちらに記載しています。

DatadogとAzure接続してリソース取得

1.DatadogでもAzure Application Gatewayのバックエンド正常性メトリックを取得出来る

まずAzure Application Gatewayの正常性プローブの変化は、バックエンドプールにある正常なホストの数の変化で分かります。

マイクロソフト様のサイトを読むと、以下のような事が言えます。

https://docs.microsoft.com/ja-jp/azure/application-gateway/application-gateway-metrics#backend-metrics

      • 正常なホスト(Healthy host count)の数が0の場合は、すべてのバックエンドプールに問題が発生しており、サイトが表示されない状態

次にDatadogで取得されるAzure Appllication Gatewayのメットリック値を確認します。

https://docs.datadoghq.com/ja/integrations/azure_application_gateway/

こちらを確認すると、azure.network_applicationgateways.healthy_host_countという項目があり、正常なホスト(Healthy host count)がDatadogでも確認出来そうです。

2.Datadogでダッシュボードを作成してAzure Application Gatewayの正常なホスト(Healthy host count)の数をグラフ表示する

DatadogでApplication Gatewayの正常なホスト(Healthy host count)を表示してみます。

まずメニューのDashboards>New Dashboardを選択します。

Crate dashbordが表示されますので、ダッシュボード名をつけてNew Screenboardを選択します。(今回の場合はどちらを選択しても問題ないです。)

空のダッシュボードが作成されますので、Edit Widgetsを選択しApplication Gatewayのウィザードを追加します。

ウィジェットを表示する項目の編集画面が表示されます。今回は時系列の状態をグラフ表示させたかったので、Timeseriesを選択しました。

次に取得する値の設定画面が表示されます。Application Gatewayの正常なホストを数をバックエンドプール単位で表示しますので、以下の値を設定します。設定が完了したらSaveを選択します。

      • Metric:azure.network_applicationgateways.healthy_host_count
      • avg by:name、backendpool

ダッシュボードの編集画面に戻りますので、Save Changesを選択して保存します。

これで設定は完了です。作成したダッシュボードを表示させると下記のように表示されます。

3.DatadogでAzure Application Gatewayのバックエンドプール監視をしてみる(正常なホスト(Healthy host count)の数で監視する)

DatadogでApplication Gatewayの正常なホスト(Healthy host count)の監視設定をしてみます。

今回の監視設定は下記の条件で実施します。

      • 監視対象:Azure Appllication Gateway
      • 監視項目:Healthy host count
      • 監視間隔:5分
      • ワーニング発出条件:2以下の場合(5分間で正常なホストカウントが2以下の場合)
      • アラート発出条件:0の場合(5分間正常なホストが存在しない場合)

まずメニューのMonitors>New Monitorを選択します。

Select a monitor typeが表示されますので、Metric(今回はメトリック監視なので)を選択します。

Select a metric to monitorの画面が表示されます。実際の監視設定を行います。

まずChoose the detection methodを選択になります。今回はThreshold Alertを選択します。

次にDefine the metricで監視対象の設定を行います。

Application Gatewayの正常なホストを数をバックエンドプール単位で監視しますので、以下の値を設定します。

      • Metric:azure.network_applicationgateways.healthy_host_count
      • avg by:name、backendpool

 

Set alert conditionsでアラート発出条件を設定します。

今回は以下の条件で設定します。

      • Triger when the metric
        • below or equal to
        • in total
        • 5 minutes
      • Alert threshold:0
      • Warning threshold:2
      • Delay evaluation by:900

5分間で正常なホスト(Healthy host count)が0の場合(5分間通信が行えない状態の場合)、アラートとしています。

また、Azureの場合、DatadogがAzureからメトリック収集する間隔が5分間隔になります。

その為、Delay evaluation byを設定しないと、直近5分間応答がない状態になってしまう為、Delay evaluation byを設定します。(今回はDatadogの推奨設定である900秒(15分)を設定しています。)

※Delay evaluation byを設定しているので実際にアラート検出が行えるのは最大20分後になってしまいます。(実際の利用にあたっては監視間隔を含めてチューニングが必要になります。)

最後にSay what’s happeningで通知方法を設定します。今回は以下の条件で設定しています。

      • 通知メールタイトル:Appllication Gateway Healthy Host Count alert
      • メール本文:

        {{#is_alert}}Application Gatewayバックエンド異常
        APGW名: {{name.name}}
        バックエンド名: {{backendsettingspool.name}}
        バックエンド状態:{{value}}
        {{/is_alert}}

        {{#is_recovery}}Application Gatewayバックエンド正常性回復
        APGW名: {{name.name}}
        バックエンド名: {{backendsettingspool.name}}
        バックエンド状態:{{value}}
        {{/is_recovery}}
        @Mailアドレス

        ※is_alertでアラート発生時、is_recoveryでアラート回復時の内容を設定します。

Saveで保存します。これで設定は完了です。

実際にアラートを発生させてみると、こんな感じでアラートメールが送信される事が確認出来ました。

—実際のメール内容—

[Triggered] Appllication Gateway Healthy Host Count alert

Application Gatewayバックエンド異常
APGW名: Application Gateway名 
バックエンド名: バックエンドプール名 
バックエンド状態:0.0