Datadog agent使ってAzure VMのプロセスを監視

Datadogを利用したプロセスやサービス監視設定をやってみます。

Datadog agentを使う事によりAzure VMをはじめとしてOSのプロセスやサービス監視する事が出来ます。

    • Datadog Agentを使ってプロセスやサービスのステータスや情報をDatadogへ転送
    • Datadog側でプロセスやサービス監視設定

Datadog Agentはプロセスやサービスのステータスを送信するだけで、実際の監視設定はDatadog側での設定になります。

今回はまずDatadog Agentを使ったCent OS 7とWindows Server 2019のプロセスやサービスのステータスをDatadogへ送信設定をやってみました。

なおライブプロセスとプロセス2つの方法で試しています。

Datadog Agentを使ったログ転送についてはこちら

スポンサーリンク

Cent OS 7でDatadog Agent使ったプロセス情報の送信

Cent OSにDatadog Agentをインストール 

まず最初にOSにDatadog Agentを導入します。導入方法についてはこちらを参考に実施願います。

Datadog Agent使ったプロセス情報の送信方法はライブプロセスとプロセスの2つ

Datadog Agentでプロセス情報をDatadogを送るにはライブプロセスとプロセスの2つになります。

    • ライブプロセスはOSのプロセスやサービスの情報をすべて(除外項目を除く)送信します。
      • 設定ファイルの場所は/etc/datadog-agent/datadog.yaml
    • プロセスはプロセスのステータスをDatadog Agent側で判断してその結果を送信します。
      • 設定ファイルの場所は/etc/datadog-agent/conf.d/process.d/conf.yaml

ライブプロセスとしてdatadog.yamlを設定

デフォルトではライブプロセスが無効になっているのでこれを有効化します。設定はDatadog公式サイトを参考に進めます。

ライブプロセス(Datadog公式)

datadog.yamlの設定箇所は2か所(2行)だけです。# process_config:と# enabled: “true"のこの2行のコメントアウト(#)を除くだけです。これでライブプロセスの有効化設定は完了です。

[root@test-vm ~]# vi /etc/datadog-agent/datadog.yaml

【修正前】

770 # process_config:
771
772 ## @param enabled – string – optional – default: “false"
773 ## A string indicating the enabled state of the Process Agent:
774 ## * “false" : The Agent collects only containers information.
775 ## * “true" : The Agent collects containers and processes infor mation.
776 ## * “disabled" : The Agent process collection is disabled.
777 #
778 # enabled: “true"

【修正後】

770 process_config:
771
772 ## @param enabled – string – optional – default: “false"
773 ## A string indicating the enabled state of the Process Agent:
774 ## * “false" : The Agent collects only containers information.
775 ## * “true" : The Agent collects containers and processes infor mation.
776 ## * “disabled" : The Agent process collection is disabled.
777 #
778     enabled: “true"

設定が完了したらDatadog Agentを再起動します。

[root@test-vm ~]# systemctl restart datadog-agent

Datadog側のInfrastractureのProcessesのメニューを選択すると現在のプロセス、CPU使用量、メモリ使用量等が表示されます。

個別でプロセスの状態を判断するconf.yamlを作成

個別でプロセスのステータス情報を送るにはconf.yamlにステータス判断するプロセスの情報を記載します。

プロセス(Datadog公式)

プロセス監視用のconf.yamlを作成します。

作成場所は/etc/datadog-agent/conf.d/process.d/conf.yamlになります。今回は新規作成しています。

[root@test-vm ~]# vi /etc/datadog-agent/conf.d/process.d/conf.yaml

追記内容は下記の通りになります。今回はSSHとCronの設定しています。(Confファイル内でスペースが入ってないとエラーになったりするケースがあります。この場合適時スペースを調節してみて下さい。)

init_config:

instances:

– name: ssh
  search_string: [“ssh", “sshd"]
  exact_match: False

– name: crond
  search_string: ['crond’]
  exact_match: False

設定が完了したらDatadog Agentを再起動します。

[root@test-vm ~]# systemctl restart datadog-agent

datadog-agent statusコマンドでプロセスの監視状況が確認出来ます。processの項目を見るとcrondとSSHの値が取得出来ている事が確認出来ます。

process (1.XX.0)
—————-
Instance ID: process:crond: XXXXXXXXXXXXXXXXXX[OK]
Configuration Source: file:/etc/datadog-agent/conf.d/process.d/conf.yaml
Total Runs: 26
Metric Samples: Last Run: 17, Total: 440
Events: Last Run: 0, Total: 0
Service Checks: Last Run: 1, Total: 26
Average Execution Time : 2ms
Last Execution Date : 2021-01-10 17:39:17.000000 JST
Last Successful Execution Date : 2021-01-10 17:39:17.000000 JST

Instance ID: process:ssh:XXXXXXXXXXXXXXXXX [OK]
Configuration Source: file:/etc/datadog-agent/conf.d/process.d/conf.yaml
Total Runs: 27
Metric Samples: Last Run: 17, Total: 457
Events: Last Run: 0, Total: 0
Service Checks: Last Run: 1, Total: 27
Average Execution Time : 4ms
Last Execution Date : 2021-01-10 17:39:25.000000 JST
Last Successful Execution Date : 2021-01-10 17:39:25.000000 JST

Datadogのポータル上でもMonitor>New Monitor>で確認するとプルダウンに設定したプロセスが表示されており取得出来ている事が確認出来ます。

 

Windows 2019でDatadog Agent使ったサービス情報の送信

Windows ServerにDatadog Agentをインストール 

まず最初にWindows OSにDatadog Agentを導入します。導入方法についてはこちらを参考に実施願います。

Datadog Agent使ったwindows サービスステータスの送信方法はライブプロセスとプロセスの2つ

Windowsの場合も同様に、Datadog AgentでサービスステータスをDatadogを送るにはライブプロセスとプロセスの2つになります。

    • ライブプロセスはOSのプロセスやサービスの情報をすべて(除外項目を除く)送信します。
      • 設定ファイルの場所はC:\ProgramData\Datadog\datadog.yaml
    • Windows サービスはプロセスのステータスをDatadog Agent側で判断してその結果を送信します。
      • 設定ファイルの場所は:\ProgramData\Datadog\conf.d\windows_service.d\conf.yaml

ライブプロセスとしてdatadog.yamlを設定

デフォルトではライブプロセスが無効になっているのでこれを有効化します。同様に設定はDatadog公式サイトを参考に進めます。

ライブプロセス(Datadog公式)

datadog.yamlの設定箇所は1か所(1行)だけです。process_config: enabled: “false"をtrueに変更するだけです。これでライブプロセスの有効化設定は完了です。

logs_enabled: false(修正前)→logs_enabled: true 修正後

【設定対象ファイル】
C:\ProgramData\Datadog\datadog.yaml

【修正前(316行目ー317行目】
process_config:
enabled: “false"

【修正前】

process_config:
enabled: “true"

※行番号は環境やVerによって前後する可能性がありますので参考程度で。

設定が完了したらDatadog Agentを再起動して確認します。

まずはDatadog Agentを再起動します。Datadog AgentはC:\Program Files\Datadog\Datadog Agent\embedded配下にagent.exeとして存在しています。

C:\>cd C:\Program Files\Datadog\Datadog Agent\embedded

C:\Program Files\Datadog\Datadog Agent\embedded>agent.exe restart-service

Datadog側のInfrastractureのProcessesのメニューを選択すると現在のプロセス、CPU使用量、メモリ使用量等が表示されます。

個別でサービスの状態を判断するconf.yamlを作成

サービス監視用のconf.yamlを作成します。Datadog公式サイトの情報を参考に進めます。

Windows Service(Datadog公式)

こちらのPower Shellを確認すると、以下のように結果が得られますのでサービス名をメモします。

まず最初にサービス名を確認します。サービス一覧はこちらのページのPower Shellを使って確認します。こちらのPower Shellを確認するとサービス一覧が表示されます。

Windowsの謎 ~サービス一覧を出すコマンド~(Qiita)

こちらのPower Shellを確認すると、以下のように結果が得られますのでサービス名をメモします。

表示名 サービス名 スタートアップの種類 状態
— —– ———- —
Microsoft Monitoring Agent Audit Forwarding AdtAgent 無効 停止
AllJoyn Router Service AJRouter 手動 (トリガー開始) 停止
Application Layer Gateway Service ALG 手動 停止
Application Identity AppIDSvc 自動 (トリガー開始) 実行
Application Information Appinfo 手動 (トリガー開始) 停止

GUIで確認する場合は、コントロール パネル\システムとセキュリティ\管理ツール\サービスでサービス一覧が表示されます。

Windows Timeの場合はこちらのように表示されます。サービス名の項目を利用して指定して設定します。

作成場所はC:\ProgramData\Datadog\conf.d\windows_service.d\conf.yamlになります。今回はWindows Timeを例に新規作成しています。

※ログとサービスでは設定ファイルの場所が違うので要注意です。

init_config:

instances:

  – services:
  – W32Time
disable_legacy_service_tag: true
tags:
  – provider:Azure

先ほどと同様にDatadog Agentを再起動します。

C:\>cd C:\Program Files\Datadog\Datadog Agent\embedded

C:\Program Files\Datadog\Datadog Agent\embedded>agent.exe restart-service

次にDatadog Agentでステータスを確認します。

C:\Program Files\Datadog\Datadog Agent\embedded>agent.exe status

windows_serviceの項目を見るとServiceの情報が取得出来ている事が確認出来ます。

 windows_service (2.7.0)
———————–
Instance ID: windows_service:XXXXXXXXXXXXXXX [OK]
Configuration Source: file:C:\ProgramData\Datadog\conf.d\windows_service.d\conf.yaml
Total Runs: 119
Metric Samples: Last Run: 0, Total: 0
Events: Last Run: 0, Total: 0
Service Checks: Last Run: 2, Total: 238
Average Execution Time : 1ms
Last Execution Date : 2021-01-11 17:17:43.000000 JST
Last Successful Execution Date : 2021-01-11 17:17:43.000000 JST

Datadogのポータル上でもMonitor>New Monitor>Custom Checkで確認するとプルダウンに設定したプロセスが表示されており取得出来ている事が確認出来ます。