Datadogで仮想マシン(Azure VM)のメトリック(リソース)監視

2020-09-12Azure,DataDog,Others

Datadogを使った仮想マシン(Azure VM)のメトリック(リソース)監視をやってみました。
仮想マシン(Azure VM)のリソース監視をDatadog で行う場合は以下の2つの方法があります。

      • DatadogとAzureテナントを接続しAzureのメトリック情報を利用する
      • 仮想マシン(Azure VM)インストールしたDatadog Agentでメトリック情報を取得する

今回はDatadogを使った仮想マシン(Azure VM)を監視設定手順を確認してみました。
仮想マシン(Azure VM)の死活監視やCPU使用率を例にメトリック監視設定の手順を纏めています。

仮想マシン(Azure VM)へのDatadog Agentインストール手順はこちらに纏めています。

スポンサーリンク

仮想マシン(Azure VM)の死活監視

アラートルール作成

仮想マシン(Azure VM)の死活監視を行います。
Datadog Agentからの通信が止まった場合に検知します。

    • 監視設定で行う設定項目
      • Pick hosts by name or tag:対象のホスト(例;しきい値監視)
      • Set alert conditions:しきい値(例;監視間隔などのアラート発生条件)
      • Notify your team:通知方法や内容(例;Mail通知や本文)
      • Define permissions and audit notifications:アラートルールの編集権限や編集時の通知
ホストの死活監視

MonitorsのNew Monitorで新しいアラートルールを作成します。Hostを選択します。

モニターの種類

Pick hosts by name or tagで対象のホスト選択します。
All Monitored Hostsを選択するとすべての仮想マシン(Azure VM)が監視対象になります。
Set alert conditionsでアラート発生条件を設定します。
5分以上通知がない場合にアラートとしています。
また1時間後に自動解決としています。

Notify your teamで通知方法や内容を設定します。
通知内容に変数を含む事が出来ます。

{{host.name}}:ホスト名
{{is_alert}}:アラート発生時の通知内容
{{is_recovery}}:j回復時の通知内容

@で通知先を記載します。Mailアドレス記載するとMail通知出来ます。複数指定する事も可能です。

※ホスト(仮想マシン)単位での通知なのでMulti Alertとなっています。

Define permissions and audit notificationsでアラート編集権限や設定変更時に通知するかどうか指定出来ます。
今回はデフォルト(編集可で通知しない。)のままとしています。
Createでアラートを作成出来ます。

テストメール送信

アラートルール作成時にTest Notificationを選択するとテストアラートメールを送信できます。
アラート発生時に通知される内容や通知先確認出来ます。

テストメール送信
Test Notificationを選択します。
通知内容を選択します。
Run Testでアラート通知されます。
アラート発生時と回復時のテストメールです。
設定内容通り通知されている事が確認出来ます。

アラートメール

アラート発生時のメールです。

アラートメール

アラート発生時と回復時のアラートメールです。
設定内容通り通知されている事が確認出来ます。

自動ミュートに注意

DatadogのIntegrationでAzureテナントと接続した際の設定値に注意が必要です。
Monitor AutomutingでIntegreation Silence monitor for expected Azure VM shutdownsが自動ミュート設定になります。
この項目にチェックが入っている場合Azure側で仮想マシン(Azure VM)を停止した場合アラート通知が来ません。
ダウンタイム(manage downtime)に仮想マシン(Azure VM)が自動登録されてミュート(非通知)になります。

モニターの自動ミュート

※ダウンタイムが永続になっています。再度起動した場合はダウンタイムから対象ホスト(サーバー)の削除が必要になります。

仮想マシン(Azure VM)のメトリック(リソース)監視

CPU使用率を監視

Datadog Agentで取得出来るメトリクス関連の項目についてはこちらに纏まっています。
こちらを参考にCPU使用率の監視設定を進めます。

メトリクス(System チェック)

設定項目に監視間隔がありません。監視評価期間しかありません。
デフォルト値が決まっています。

評価頻度

監視設定画面が表示されますので設定項目を順番に設定していきます。

    • 監視設定で行う設定項目
      • Choose the detection method:検出方法(例;しきい値監視)
      • Define the metric:監視項目や条件(例;CPU使用率)
      • Set alert conditions:閾値(例;90%以上でAlert)
      • Say what’s happening:通知方法や内容(例;Mail通知や本文)
      • Define permissions and audit notifications:アラートルールの編集権限や編集時の通知
アラートルール作成

MonitorsのNew Monitorで新しいアラートルールを作成します。Metricを選択します。

モニターの種類

Choose the detection methodで検出方法を選択します。
しきい値監視の場合はThresholdを選択します。

検出方法の選択

CPU使用率はsystem.cpu.idleから計算しています。

メトリクス(System チェック)

avg byで集計単位を指定します。host(サーバー)単位の集計としています。
直近5分間の平均値としています。

Define the metric

Set alert conditionsでアラート発生条件を設定します。
90%以上の場合はAlert、80%以上の場合はWarningとしています。

しきい値

また各種詳細項目についてはこちらの解説を参考に設定します。

高度なアラート条件

※system.cpu.idleの値はパーセントで取得されます。
※回復基準は空白にしています。

Notify your teamで通知方法や内容を設定します。
通知内容に変数を含む事が出来ます。

条件付き変数

{{host.name}}:ホスト名
{{is_alert}}:アラート発生時の通知内容
{{#is_warning}}:警告発生時の通知内容
{{value}}:取得された値
{{#is_warning_recovery}}:警告から回復時の通知内容
{{/is_alert_recovery}}:アラート回復時の通知内容

@で通知先を記載します。Mailアドレス記載するとMail通知出来ます。複数指定する事も可能です。
Priorityで重要度を指定出来ます。

※ホスト(仮想マシン)単位での通知なのでMulti Alertとなっています。

CPU使用率のアラートです。
{{#is_alert}}
ホスト名:{{host.name}}
CPU使用率:{{value}}
{{/is_alert}}
{{#is_warning}}
ホスト名:{{host.name}}
CPU使用率:{{value}}
{{/is_warning}}
{{#is_alert_recovery}}
ホスト名:{{host.name}}
CPU使用率:{{value}}
{{/is_alert_recovery}}
{{#is_warning_recovery}}
ホスト名:{{host.name}}
CPU使用率:{{value}}
{{/is_warning_recovery}}
@Mailアドレス(xxx@hoge-hoge.com)

Define permissions and audit notificationsでアラート編集権限や設定変更時に通知するかどうか指定出来ます。
今回はデフォルト(編集可で通知しない。)のままとしています。
Createでアラートを作成出来ます。

アラートルール

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

アラートルール確認
作成したアラートルールはMonitorsで確認出来ます。
ステータスも表示されます。
PriorityやTypeでの絞り込みも出来ます。

アラートメール

仮想マシン(Azure VM)でCPU使用率のアラートを発生させてメールの受信を確認します。

アラートメール
CPU使用率が90%以上になった時点でAlert、80%以上の時点でWarningのメールを受信しています。
また回復時のメールも受信しています。
CPU使用率にも値が表示されています。

ステータスの変化を確認

モニターステータス

 

アラートルールの詳細を確認出来ます。
実行しているクエリ(監視条件)から通知内容も確認出来ます。
現在のステータスだけではなくステータスの変化も確認出来ます。
アラートの発生履歴についても確認出来ます。

Azureのメトリック値(CPU使用率)を使った設定

Azureテナントと接続しておくと、仮想マシン(Azure VM)のメトリック値も取得出来ます。
仮想マシン(Azure VM)のメトリック値を使った監視設定も出来ます。

DatadogへのAzureテナント登録手順はこちらに纏めています。

注意点があります。
Azureから取得される値を利用する場合は遅延について考慮する必要があります。

Evaluation Delay
クラウドメトリクスの遅延

メトリック値を指定

項目はクラウド名.リソース種別.メトリック値で表示されます。
azure.vm.percentage_cpuで仮想マシン(Azure VM)のメトリック値を使った監視が出来ます。

※仮想マシンの分析情報で取得される値ではありません。

※CPU使用率のアラートを発生させるとAgent経由の方が早く検知していました。

メモリ使用率監視

CPU使用率だけではなくメモリ使用率も監視出来ます。
直接メモリ使用率に該当する項目がない為、取得された値を組み合わせて計算監視します。

メトリクス(System チェック)

メモリ使用率監視

system.mem.usableが空き容量に該当します。
system.mem.totalがメモリ容量に該当します。
それぞれを組合せてメモリ使用率を計算しています。

ディスク使用率監視

ディスク使用率も監視出来ます。
デバイス単位で取得された値を利用するようにしています。

メトリクス(System チェック)

ディスク使用率監視
 

最後に

Datadogのメトリクス監視について仮想マシン(Azure VM)のCPU使用率を例に纏めてみました。
死活監視も含めた設定手順を纏めています。
今回は基本的な設定で実施していますが、取得内容も多種に渡っており細かい設定も可能です。
取得対象のリソースや区分の設定も簡単に出来るので便利かと思います。
アラート発生時にSlack通知やその他のインシデント管理ツールとの連携も出来る為便利かと思います。

監視設定のエクスポートも可能な為コピーして設定を今後も引き続き色々試してみたいと思います。

プロセスやサービス監視設定手順についてはこちらに纏めています。

ライブプロセスを使った監視設定手順についてはこちらに纏めています。

スポンサーリンク