DatadogAgentをインストールする

Linux に Datadog Agent をインストールして、基本的なリソースをモニタリングしてみましたので、メモしておきます。

環境

インストールを行った環境は、以下の通りです。

  • OS:CentOS 7.9.2009
  • Datadog Agent 7.30.0

Datadog Agentのインストール

まずは、Datadog Agent をインストールしていきます。

インストールスクリプトを実行する。

Datadog のメニューから。「Integration」-「Agent」を開きます。

このページから、インストール対象となるOSを選択します。
今回は「CentOS/RedHat」を選びました。

ここに、以下のようなインストールコマンドが記載されていますので、そのままコピペして実行しましょう。

DD_AGENT_MAJOR_VERSION=7 DD_API_KEY=******** DD_SITE="datadoghq.com" bash -c "$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script.sh)"

********」の部分は、各自のDatadog Organization の API キーが表示されていると思います。

$ DD_AGENT_MAJOR_VERSION=7 DD_API_KEY=******** DD_SITE="datadoghq.com" bash -c "$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script.sh)"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 23766  100 23766    0     0  66966      0 --:--:-- --:--:-- --:--:-- 67135

* Datadog Agent install script v1.6.0


* Installing YUM sources for Datadog

* Installing the Datadog Agent package

Loaded plugins: fastestmirror
Cleaning repos: base datadog epel extras google-cloud-sdk google-compute-engine
              : updates
0 metadata files removed
0 sqlite files removed
0 metadata files removed
  Installing package: datadog-agent

Loaded plugins: fastestmirror
Determining fastest mirrors
Retrieving key from https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public
Importing GPG key 0xE09422B3:
 Userid     : "Datadog, Inc <package@datadoghq.com>"
 Fingerprint: a4c0 b90d 7443 cf6e 4e8a a341 f106 8e14 e094 22b3
 From       : https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public
Retrieving key from https://keys.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public
Retrieving key from https://keys.datadoghq.com/DATADOG_RPM_KEY_FD4BF915.public
Resolving Dependencies
--> Running transaction check
---> Package datadog-agent.x86_64 1:7.30.0-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package               Arch           Version             Repository       Size
================================================================================
Installing:
 datadog-agent         x86_64         1:7.30.0-1          datadog         221 M

Transaction Summary
================================================================================
Install  1 Package

Total download size: 221 M
Installed size: 221 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/datadog/packages/datadog-agent-7.30.0-1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID e09422b3: NOKEY
Public key for datadog-agent-7.30.0-1.x86_64.rpm is not installed
Retrieving key from https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public
Importing GPG key 0xE09422B3:
 Userid     : "Datadog, Inc <package@datadoghq.com>"
 Fingerprint: a4c0 b90d 7443 cf6e 4e8a a341 f106 8e14 e094 22b3
 From       : https://keys.datadoghq.com/DATADOG_RPM_KEY_CURRENT.public
Retrieving key from https://keys.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public
Retrieving key from https://keys.datadoghq.com/DATADOG_RPM_KEY_FD4BF915.public
Importing GPG key 0xFD4BF915:
 Userid     : "Datadog, Inc. RPM key (2020-09-08) <package+rpmkey@datadoghq.com>"
 Fingerprint: c655 9b69 0ca8 82f0 23bd f3f6 3f4d 1729 fd4b f915
 From       : https://keys.datadoghq.com/DATADOG_RPM_KEY_FD4BF915.public
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:datadog-agent-7.30.0-1.x86_64                              1/1 
Enabling service datadog-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/datadog-agent.service to /usr/lib/systemd/system/datadog-agent.service.
Loading SELinux policy module for datadog-agent.
Labeling SELinux type for the system-probe binary.
Couldn’t load system-probe policy (missing selinux utilities).
To be able to run system-probe on your host, please install or update the selinux-policy-targeted and
policycoreutils-python (or policycoreutils-python-utils depending on your distribution) packages.
Then run the following commands, or reinstall datadog-agent:
    semodule -i /etc/datadog-agent/selinux/system_probe_policy.pp
    semanage fcontext -a -t system_probe_t /opt/datadog-agent/embedded/bin/system-probe
    restorecon -v /opt/datadog-agent/embedded/bin/system-probe
No datadog.yaml file detected, not starting the agent
  Verifying  : 1:datadog-agent-7.30.0-1.x86_64                              1/1 

Installed:
  datadog-agent.x86_64 1:7.30.0-1                                               

Complete!

* Adding your API key to the Agent configuration: /etc/datadog-agent/datadog.yaml


* Setting SITE in the Agent configuration: /etc/datadog-agent/datadog.yaml

/usr/bin/systemctl
* Starting the Agent...



Your Agent is running and functioning properly. It will continue to run in the
background and submit metrics to Datadog.

If you ever want to stop the Agent, run:

    sudo systemctl stop datadog-agent

And to run it again run:

    sudo systemctl start datadog-agent

インストールは以上で完了です。

インストールがエラーになる場合

インストールコマンドを実行してもエラーになってしまう場合は、root ユーザにスイッチしてからコマンドを実行してみてください。
インストール時に実行される「install_script.sh」 の中で、 sudo で各種コマンドが実行されているので問題ないはずなのですが、sudo できないユーザーだったりするとエラーになってしまうのだと思います。。

確認

プロセスの状態

まずは、プロセスの状態を確認してみます。
プロセスが 3 つ起動していますね。インストールしたら自動で起動してくるようです。
process-agen はライブプロセスモニタリング、trace-agent は アプリケーションパフォーマンスモニタリング(APM)で使用するプロセスだと思います。

$ ps -ef | grep datadog
dd-agent  1495     1  2 03:38 ?        00:00:06 /opt/datadog-agent/bin/agent/agent run -p /opt/datadog-agent/run/agent.pid
dd-agent  1496     1  0 03:38 ?        00:00:01 /opt/datadog-agent/embedded/bin/process-agent --config=/etc/datadog-agent/datadog.yaml --sysprobe-config=/etc/datadog-agent/system-probe.yaml --pid=/opt/datadog-agent/run/process-agent.pid
dd-agent  1497     1  0 03:38 ?        00:00:01 /opt/datadog-agent/embedded/bin/trace-agent --config /etc/datadog-agent/datadog.yaml --pid /opt/datadog-agent/run/trace-agent.pid

$ systemctl status datadog-agent
● datadog-agent.service - Datadog Agent
   Loaded: loaded (/usr/lib/systemd/system/datadog-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2021-08-15 03:38:12 UTC; 7min ago
 Main PID: 1495 (agent)
   CGroup: /system.slice/datadog-agent.service
           └─1495 /opt/datadog-agent/bin/agent/agent run -p /opt/datadog-agent/run/agent.pi...

Aug 15 03:39:39 datadog-demo agent[1495]: 2021-08-15 03:39:39 UTC | CORE | INFO | (pkg/c...eck
Aug 15 03:39:39 datadog-demo agent[1495]: 2021-08-15 03:39:39 UTC | CORE | INFO | (pkg/c...uns
Aug 15 03:39:44 datadog-demo agent[1495]: 2021-08-15 03:39:44 UTC | CORE | INFO | (pkg/c...eck
Aug 15 03:39:44 datadog-demo agent[1495]: 2021-08-15 03:39:44 UTC | CORE | INFO | (pkg/c...uns
Aug 15 03:39:45 datadog-demo agent[1495]: 2021-08-15 03:39:45 UTC | CORE | INFO | (pkg/c...eck
Aug 15 03:39:45 datadog-demo agent[1495]: 2021-08-15 03:39:45 UTC | CORE | INFO | (pkg/c...uns
Aug 15 03:39:46 datadog-demo agent[1495]: 2021-08-15 03:39:46 UTC | CORE | INFO | (pkg/c...eck
Aug 15 03:39:46 datadog-demo agent[1495]: 2021-08-15 03:39:46 UTC | CORE | INFO | (pkg/c...uns
Aug 15 03:43:12 datadog-demo agent[1495]: 2021-08-15 03:43:12 UTC | CORE | INFO | (pkg/s...es.
Aug 15 03:43:17 datadog-demo agent[1495]: 2021-08-15 03:43:17 UTC | CORE | INFO | (pkg/s...es.
Hint: Some lines were ellipsized, use -l to show in full.

systemdからどう見えているのか確認してみました。

$ systemctl list-unit-files | grep -i datadog-agent
datadog-agent-process.service                 disabled
datadog-agent-security.service                disabled
datadog-agent-sysprobe.service                disabled
datadog-agent-trace.service                   disabled
datadog-agent.service                         enabled

Datadogの Infrastructure List を見てみると、今回Datadog Agentをインストールしたホストが表示されていました。
(Datadog Agentのインストール・起動が終わってから、Listに表示されるまでに数分程度かかると思います。)

インストール後のプロセス起動を停めたい

Datadog は、Datadog Agent が起動すると自動的に Metrics を収集・送信しますので、Infrastructure のホスト 1台 とカウントされてしまうので、月額利用料に影響が出てくる可能性があります。
例えば、Ansible などで VM イメージを作成するときなど、インストールだけ実行してプロセスを起動させたくないことがあると思います。
その場合は、インストールコマンドに「DD_INSTALL_ONLY=true」を付けて実行すると、インストール後のプロセス起動を抑止することができます。

例えば、以下のような感じです。「bash -c」よりも前であれば、順番は問いません。

DD_INSTALL_ONLY=true DD_AGENT_MAJOR_VERSION=7 DD_API_KEY= DD_SITE="datadoghq.com" bash -c "$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script.sh)"

実際に試してみたところ、以下のような感じになりました。

  • プロセス起動:しない
  • 自動起動設定:有効化 済
$ DD_INSTALL_ONLY=true DD_AGENT_MAJOR_VERSION=7 DD_API_KEY=******** DD_SITE="datadoghq.com" bash -c "$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script.sh)"

$ ps -ef | grep datadaog

$ systemctl status datadog-agent
● datadog-agent.service - Datadog Agent
   Loaded: loaded (/usr/lib/systemd/system/datadog-agent.service; enabled; vendor preset: disabled)
   Active: inactive (dead)

$ systemctl list-unit-files | grep -i datadog-agent
datadog-agent-process.service                 disabled
datadog-agent-security.service                disabled
datadog-agent-sysprobe.service                disabled
datadog-agent-trace.service                   disabled
datadog-agent.service                         enabled

$ sudo reboot

$ ps -ef | grep datadog-agent
dd-agent   848     1  1 06:04 ?        00:00:04 /opt/datadog-agent/bin/agent/agent run -p /opt/datadog-agent/run/agent.pid
dd-agent   849     1  0 06:04 ?        00:00:01 /opt/datadog-agent/embedded/bin/process-agent --config=/etc/datadog-agent/datadog.yaml --sysprobe-config=/etc/datadog-agent/system-probe.yaml --pid=/opt/datadog-agent/run/process-agent.pid
dd-agent   850     1  0 06:04 ?        00:00:00 /opt/datadog-agent/embedded/bin/trace-agent --config /etc/datadog-agent/datadog.yaml --pid /opt/datadog-agent/run/trace-agent.pid 

この状態だと、OS を再起動すると Datadog Agent が自動起動してきますので、VM イメージ作成などの際に活用するといいのではないかなと思います。

Datadog からの見え方

続いて、Datadog でどのように見えているかを確認してみます。

Datadog にログインして「Infrastructure」を開きます。
「datadog-demo.us-cetral1-a…」というホストが見えていますね。紫色の骨マークがついているものが、Datadog Agent が起動しているホストになります。
(Datadog Agentのインストール・起動が終わってから、Listに表示されるまでに数分程度かかると思います。)

自動生成されるホストのダッシュボードはこんな感じです。

まとめ

Datadog Agent をインストールするだけで、基本的な Metrics をモニタすることができるようになりますね。
ただ、この状態ではプロセス数などはモニタできないので、もう少し設定していく必要があります。