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 をモニタすることができるようになりますね。
ただ、この状態ではプロセス数などはモニタできないので、もう少し設定していく必要があります。