CentOSにDatadog Agentをインストールする。

環境

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

インストールするものは、以下です。

  • Datadog Agent 6.11.2

Datadog Agentのインストール

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

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

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

DD_API_KEY=******** bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/datadog-agent/master/cmd/agent/install_script.sh)"

「********」の部分は、各自のDatadog環境にあったAPIキーが表示されていると思います。

# DD_API_KEY=******** bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/datadog-agent/master/cmd/agent/install_script.sh)"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 11365  100 11365    0     0  73187      0 --:--:-- --:--:-- --:--:-- 73322

* Installing YUM sources for Datadog

* Installing the Datadog Agent package

Loaded plugins: fastestmirror, langpacks
Cleaning repos: base datadog epel extras influxdb treasuredata updates zabbix
              : zabbix-non-supported
30 metadata files removed
17 sqlite files removed
0 metadata files removed
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
--> Running transaction check
---> Package datadog-agent.x86_64 1:6.11.2-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package               Arch           Version             Repository       Size
================================================================================
Installing:
 datadog-agent         x86_64         1:6.11.2-1          datadog         124 M

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

Total download size: 124 M
Installed size: 407 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/datadog/packages/datadog-agent-6.11.2-1.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 4172a230: NOKEY
Public key for datadog-agent-6.11.2-1.x86_64.rpm is not installed
Retrieving key from https://yum.datadoghq.com/DATADOG_RPM_KEY.public
Importing GPG key 0x4172A230:
 Userid     : "Datadog Packages <package@datadoghq.com>"
 Fingerprint: 60a3 89a4 4a0c 32ba e3c0 3f0b 069b 56f5 4172 a230
 From       : https://yum.datadoghq.com/DATADOG_RPM_KEY.public
Retrieving key from https://yum.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public
Importing GPG key 0xE09422B3:
 Userid     : "Datadog, Inc <package@datadoghq.com>"
 Fingerprint: a4c0 b90d 7443 cf6e 4e8a a341 f106 8e14 e094 22b3
 From       : https://yum.datadoghq.com/DATADOG_RPM_KEY_E09422B3.public
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : 1:datadog-agent-6.11.2-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.
No datadog.yaml file detected, not starting the agent
  Verifying  : 1:datadog-agent-6.11.2-1.x86_64                              1/1

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

Complete!

* Keeping old datadog.yaml configuration file

/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:

     systemctl stop datadog-agent

And to run it again run:

     systemctl start datadog-agent

インストールは以上で完了です。
Datadog Agentも自動的に起動していました。

# ps -ef | grep datadog
dd-agent 29949     1  0 21:38 ?        00:00:03 /opt/datadog-agent/bin/agent/agent run -p /opt/datadog-agent/run/agent.pid
dd-agent 29951     1  0 21:38 ?        00:00:00 /opt/datadog-agent/embedded/bin/trace-agent --config /etc/datadog-agent datadog.yaml --pid /opt/datadog-agent/run/trace-agent.pid

確認

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

# systemctl list-unit-files | grep -i datadog
datadog-agent-network.service                 static
datadog-agent-process.service                 disabled
datadog-agent-trace.service                   disabled
datadog-agent.service                         enabled

process と trace は無効になっています。
これは改めて調べてみることにします。

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

環境

設定ファイル

Datadog Agentの設定ファイルは以下のディレクトリ配下にあります。

/etc/datadog-agent/

実際に見てみると、こんな感じでした。

# ls -l /etc/datadog-agent/
total 76
-rw-------   1 dd-agent dd-agent    64 May 24 21:10 auth_token
drwxr-xr-x   2 dd-agent dd-agent     6 May 21 23:46 checks.d
drwxr-xr-x 116 dd-agent dd-agent  4096 May 24 21:16 conf.d
-rw-r-----   1 dd-agent dd-agent 31307 May 24 21:37 datadog.yaml
-rw-r--r--   1 dd-agent dd-agent 31274 May 21 23:46 datadog.yaml.example
-r--r-----   1 dd-agent dd-agent   421 May 21 23:46 network-tracer.yaml.example

ログ

Datadog Agentのログは、以下のディレクトリ配下に出力されます。

/var/log/datadog

実際に見てみると、こんな感じでした。

$ ls -l /var/log/datadog/
total 56
-rw-r--r-- 1 dd-agent dd-agent 49519 May 24 21:22 agent.log
-rw-r--r-- 1 dd-agent dd-agent  1509 May 24 21:17 process-agent.log

その他

Datadogの監視においてどのように情報をやり取りするのか気になっていたのですが、ドキュメントに以下のような記載がありました。

Datadog Agent は、次の3つの要素で構成されています: Collector, DogStatsD, Forwarder

・Collector は、ターゲットホストのCPU やメモリ等の一般的なシステムメトリクスを取得すると共に、インストールされているIntegrations の情報を取得します。
・DogStatsD は、ターゲットホストで実行されているアプリケーションやコマンドラインスクリプトからカスタムメトリクスを送信することができるstatsdのサーバです。
・Forwader は、dogstatsd とCollector の両方からデータを受け取り、queueの順番に従ってDatadogに送信します。

Zabbix AgentのActiveチェックと同じような動きになっているようです。
Manager側からデータを取りに行く動きは存在しないのかどうかまでは、ドキュメントを読み切れていないので、引き続き確認してみようと思いす。