Datadog Agentを使ってAzure VMのリソース監視

 

マルチクラウド対応の監視サービス(SaaS)であるDatadogを使って、Azure VMのリソース監視を行ってみました。

Datadogを使って、Azure VMのリソース監視を行う場合は以下の2つの方法があります。

      • DatadogとAzureテナントを接続しAzureのメトリック情報を利用する
      • Azure VMにDatadog Agentをインストールしリソース情報を取得する

今回はAzure VMにDatadogのエージェントインストールする方法で試してみました。(今後プロセス監視やログ監視を行う事を考慮しエージェントを利用した方法を選択しています。)

    • 今回実施した内容
      • Azure VMのCPU使用率監視
      • Azure VMのメモリ使用率監視
      • Azure VMのディスク使用率監視

今回の設定にあたっては、Datadogのドキュメントを参考に実施しています。

https://docs.datadoghq.com/ja/monitors/monitor_types/metric/?tab=threshold

また、Azure VMへのDatadog Agentインストールはこちらで実施しております。

Datadog Agentを使ってAzure VMのリソース取得

----

1.DatadogでAzure VMのCPU使用率を監視する

Datadogで監視設定を行うメニューはMonitorsになります。

今回は新規設定になりますので、下記の通りNew Monitorを選択します。

CPU使用率等のリソース監視はメトリック監視になりますので、メトリックを選択します。

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

    • 監視設定で行う設定項目
      • Choose the detection method:検出方法(例;しきい値監視)
      • Define the metric監視条件(例;CPU使用率)
      • Set alert conditions:しきい値(例;90%以上でAlert)
      • Say what’s happening:通知方法(例;Mail通知)

最初に検出方法をChoose the detection methodで設定します。

しきい値監視の場合は、Threshold Alertを選択します。

次に監視条件(メトリクス)をDefine the metricで設定します。

Datadog Agent経由で取得されるOSのリソース情報はsystemになるようです。

    • CPU使用率
      • Metric:system.cpu.user
      • avg by:host

avg byでhostを指定する事で、host単位の値で検知可能です。設定しないと平均値となります。host1 100% host2 10%の場合55%となります。

Multi Alert /hostの指定も同様の意味で指定されます。

次にしきい値をSet alert conditionsで設定します。今回はCPU使用率が90%(Alert)と80%(Warn)のしきい値でアラートを発生させる設定します。

      • 条件1:adove(より上)
      • 条件2:on average(平均値)
      • 条件3:5minntes
      • Alert Threshold :90
      • Warning Threshold:80

なお、データ取得が出来てない場合に通知する場合は、Do not notifyをNotifyに変更します。

次に通知方法をSay what’s happeningで通知方法を設定します。今回はメール通知を利用します。

is alertで発生時、is recoveryで復旧時の定義をします。サンプルではHost名やCPU使用率を表示するようにしています。inculedの部分はチェックを外してます。

 

設定が完了したら、Datadogでテストメール送信を行い確認します。

テストメール送信を行うと下記メールが届きメール送信内容の確認出来ます。

2.DatadogでAzure VMのメモリ使用率(空き容量)を監視する

Azure VMのメモリ使用率監視を設定します。

CPU使用率と同様の設定方法になりますが、監視条件(メトリクス)をDefine the metricで設定する方法が若干異なります。

メモリついてはサイズで取得される為、メモリ使用率については計算が必要になります。

    • メモリの空き容量を計算し算出します。(a+b+c)
      • a(system.mem.cached)
      • b(system.mem.buffered)
      • c(system.mem.free)
    • 全体のメモリ容量を以下の値で取得されます。
      • d(system.mem.total)
    • メモリ使用率(%)は以下の式で計算されます。
      • (d-(a+b+c))/d*100

※複数行指定する場合は、Advancedを選択します。Add Query +で行を追加します。

実際に設定するとこのような画面になります。

CPU使用率と同様に、Set alert conditionsでしきい値、Say what’s happeningで通知設定を行えば監視設定完了です。

3.DatadogでAzure VMのディスク使用率(空き容量)を監視する

Azure VMのディスク使用率監視を設定します。監視条件(メトリクス)をDefine the metricを下記の通り設定します。

    • ディスク使用率
      • Metric:system.disk.in_use
      • avg by:host,device_name

avg byでhostとdevice_nameを指定する事でデバイス(ドライブ等)単位でディスク使用率の取得が出来ます。

※CPU使用率と同様に%設定したかったので*100しています。

CPU使用率と同様に、Set alert conditionsでしきい値、Say what’s happeningで通知設定を行えば監視設定完了です。

Datadog Agentを使ってAzure VMのリソース取得

 

Datadogはマルチクラウド対応の監視サービス(SaaS)です。

Datadogではエージェントレスでのクラウド監視だけではなく、通常の監視のようにAzure VMにエージェントを入れた監視も可能です。

今回はアラート設定の下準備として、Azure VMにDatadogのエージェントインストールを試してみました。

    • 今回実施した内容
      • Azure VM(Cent OS & Windows)へData Dogのエージェントインストール
      • Data DogでAzure VMからリソースデータ取得出来ているの確認

DatadogとAzureのテナント接続についてはこちらで試しております。

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

----

1.Azure VMにDatadogのエージェントをインストールする(Cent OS編)

Azure VM(Cent OS 7)にDatadogのエージェントをインストールしてみます。

1)最初にDataDogにログインします。

2)IntegrationsのメニューでAgentを選択します。CentOS/Red Hatの項目を選択すると下記画面が表示されます。

3)Use our easy one-step installに表示されているDDコマンドをコピーし、監視対象のAzure VM上で実行します。

[ユーザー名@host名 ]$ DD_AGENT_MAJOR_VERSION=7 DD_API_KEY=API_KEY DD_SITE=”datadoghq.com” bash -c “$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script.sh)”

Agentがインストールされて監視が開始します。(デフォルトでは自動的に監視が開始されます。)

Agent の停止する場合は下記コマンドを実行します。

[ユーザー名@host名 ]$ systemctl stop datadog-agent

※Agentインストール完了した時点でCPUやメモリ使用率といったリソース情報は取得開始されます。

2.Azure VMにDatadogのエージェントをインストールする(Windows編)

Azure VM(Windows)にDatadogのエージェントをインストールしてみます。

1)IntegrationsのメニューでAgentを選択します。Windowsの項目を選択すると下記画面が表示されます。Datadog Agent Installerをクリックするとダウンロードが開始されます。

※3に表示されるAPI Key、4に表示されるDataDog Regionはインストール時に利用します。

2)ダウンロードされたIntallerをクリックするとインストールが開始されます。Datadog Agent Setup画面が表示されますので、NextをクリックしSetupを開始します。

※Winodwsのセキュリティメッセージが表示された場合は実行を選択します。

3)下記ライセンス承認画面が表示されますので、確認し問題なければチェックボックスにチェックを入れてNextをクリックします。

4)1)の画面で確認したAPI Keyをコピー&ペーストしてNextをクリックします。

5)1)の画面で確認したRegionを選択しNextをクリックします。

6)Install開始画面が表示されますので、Installをクリックします。

これでDatadog Agentのインストールは完了です。自動的にData Dogに接続されリソースの収集が開始されます。

3.Datadogで取得されているリソース情報を確認する

DatadogのAgentのリソース取得が出来ているかを確認してみます。

InfrastructureのメニューでInfrastructure listを選択すると下記画面が表示されます。Agentからリソース収集されているホストの一覧が表示されます。

※Azure VM側でAgentを停止すると表示されません。

ホスト名を選択すると、ホストで取得されているリソース情報が確認出来ます。

特に何も設定することなく、リソース情報の確認が出来ます。

取得したリソースでの監視設定はこちらで試しております。

Datadog Agentを使ってAzure VMのリソース監視

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

 

Datadogはマルチクラウド対応の監視サービス(SaaS)です。AzureやAWS等のパブリッククラウドの監視がサービス提供されています。

Azureでは仮想マシンといったIaaS環境だけではなく、サーバレスのサービス等のPaaSも監視する事が出来ます。

    • Datadog製品紹介ページ

https://www.datadoghq.com/ja/product/

このDatadogですが、無料アカウントを作成すれば、2週間すべての機能を利用する事が出来ます。

Datadogを利用してAzureの監視してみようという事で今回はDatadogを使ってAzureの監視を行う為の初期設定までを行ってみました。

    • 今回実施した内容
      • Azure PortalでDatadog用のサービスプリンシパルを作成
      • DatadogでAzureテナントへの接続設定

DatadogでAzureを監視する為の初期設定は下記サイトを参考に実施してみました。

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

Datadogエージェントインストールは下記で試しております。

Datadog Agentを使ってAzure VMを監視

——-

1.Azure PortalでDatadog用のサービスプリンシパルを作成する

まず最初に、Azure Portal上でDatadogがAzureにアクセスする為のサービスプリンシパルを作成します。作成はマイクロソフト様のサイトも併せて確認しながらやってみました。

    •  Azure AD アプリケーションとサービス プリンシパルをポータルで作成する

https://docs.microsoft.com/ja-jp/azure/active-directory/develop/howto-create-service-principal-portal

    • Azure Portalで実施する作業内容
      • Azure AD にアプリケーションを登録作成する
      • アプリケーションにロールを割り当てる
      • サインイン用のシークレットを作成し、シークレット値をコピーする
      • サインイン用のテナントとアプリ ID の値を取得しコピーする

1)Azure Active Directoryのメニューでアプリの登録を選択します。下記画面が表示されますので新規登録をクリックします。

2)アプリケーションの登録画面が表示されるので、名前(任意)、サポートされているアカウントの種類、リダイレクトURL(https://app.datadog.com)を入力する。

これで、アプリケーションの作成は完了です。

次にアプリケーションにロールを割り当てます。

3)サブスクリプションのメニューでアクセス制御(IAM)を選択します。下記画面が表示されますのでロールの割り当てを追加するをクリックします。

4)ロールの割り当ての追加画面が表示されますので、役割に監視閲覧者、先ほど作成したアプリケーションを選択します。

5)Azure Active Directoryのメニューでアプリの登録を選択します。下記画面が表示されますのでs先ほど作成したアプリケーションをクリックします。

6)アプリケーションのメニューで証明書とシークレットを選択します。下記画面が表示されますので新しいクライアントシークレットをクリックします。

7)クライアントシークレットの追加画面が表示されますので。名前(任意)を入れて追加をクリックします。

8)証明書とシークレット画面が表示されますので、シークレットの値をコピーしておきます。

9)アプリケーションの概要で、クライアントIDとテナントIDをコピーしておきます。

これで、DatadogがAzureにアクセスする為の準備は完了です。

2.DatadogでAzureテナントへの接続設定

DatadogでAzureテナントへの接続設定を行います。

Datadogの無料アカウントは作成済みの前提とします。

1)Datadogにログインし、Integrationsのメニューを選択すると下記画面が表示されます。Azureを選択します。(監視する内容関係なく、一番最初はAzureへの接続設定が必要になります。)

2)Azure Integrations画面が表示されます。

      • Tenant ID:アプリケーションの画面で確認したテナントID
      • Client ID:アプリケーションの画面で確認したクライアントID
      • Client Secret:アプリケーションの画面で確認したシークレット値
      • Optionaliy limit metrics collection to hosts with tag:監視対象に設定したTAG

※TAGを設定しない場合、すべて監視対象となる為注意が必要です。

値を入力し、Install Integrationをクリックすると設定完了です。

3.DatadogでAzureリソースが見えているかを確認する

Data DogでAzureテナントへの接続設定が終わると、特に設定なく監視が開始されます。

そのため、監視対象側でタグ設定を行い、監視対象を絞るなどそういう設定が必要になります。

今後、実際のアラート設定を試していきたいと思います。