Agent の概要

このガイドでは、Agent の紹介と、Agent を使用して Datadog プラットフォームにシステムレベルのメトリクスを送信する方法について説明します。また、Ubuntu 上での Agent のインストール例についても説明します。以下の内容をカバーしています。

  • Agent のインストール
  • Agent が起動していることを確認する
  • Agent の機能を構成する
  • トラブルシューティングリソース

概要

Agent について

Datadog Agent は、ホスト上で実行されるソフトウェアです。ホストからイベントやメトリクスを収集し、Datadog に送信し、モニタリングやパフォーマンスデータを分析することができます。ローカルホスト (Windows、MacOS)、コンテナ環境 (Docker、Kubernetes)、オンプレミスデータセンターで実行することが可能です。構成管理ツール (Chef、Puppet、Ansible) を使って、インストールと構成が可能です。

Agent は、15~20 秒ごとに 75~100 のシステムレベルメトリクスを収集することができます。また、追加の構成により、Agent は実行中のプロセスからライブプロセスデータ、ログ、トレースを Datadog プラットフォームに送信することができます。Datadog Agent はオープンソースで、ソースコードは GitHub の DataDog/datadog-agent で公開されています。

Agent のオーバーヘッド

Agent が占有するスペースとリソースの量は、構成と Agent が送信するように構成されているデータによって異なります。初期状態では、平均して約 0.08% の CPU 使用率と、約 830MB から 880MB のディスクスペースが見込まれます。

これらのベンチマークについて詳しくは、Agent Overhead を参照してください。

収集データ

Agent メトリクス

以下の Agent メトリクスは、Agent が Datadog に送信する自分自身に関する情報であり、どのホストやコンテナで Agent が動作しているか、Agent がいつ起動するか、どのバージョンの Python が動作しているかなどを判断することができます。

メトリクス説明
datadog.agent.python.versionAgent が Datadog に報告中の場合は、値 1 が表示されます。メトリクスには python_version がタグ付けされています。
datadog.agent.runningAgent が Datadog に報告中の場合は、値 1 が表示されます。
datadog.agent.startedAgent 起動時に値 1 で送信されるカウント (v6.12 以上で使用可能)。

Agent メトリクスの全リストは、Agent メトリクスのインテグレーションをご覧ください。

チェック

一部のプラットフォームの Agent では、メトリクスを収集するいくつかのコアチェックがデフォルトで有効になっています。

チェックメトリクスプラットフォーム
CPUSystemすべて
ディスクDiskすべて
IOSystemすべて
メモリSystemすべて
ネットワークNetworkすべて
NTPNTPすべて
アップタイムSystemすべて
ファイル処理SystemMac 以外のすべて
ロードSystemWindows 以外のすべて
DockerDockerDocker
WinprocSystemWindows

他のテクノロジーからメトリクスを収集する方法については、インテグレーションのページを参照してください。

ホスト用 Agent とコンテナ用 Agent の相違点

このガイドでは、ホストへの Agent のインストールと構成を説明します。最終的にコンテナ環境に Agent をインストールする予定がある場合、いくつか知っておくべき相違点があります。

  1. ホストでは、Agent は YAML ファイルを使用して構成されます (このガイドの後半で説明します)。一方、コンテナの Agent の構成オプションは、環境変数で渡されます。たとえば、以下のようになります。

    • DD_API_KEY は Datadog API キー用
    • DD_SITE は Datadog サイト用
  2. 同様に、ホスト上では、インテグレーションは Agent 構成ファイルを通して特定されますが、コンテナ環境では、Datadog のオートディスカバリー機能によりインテグレーションが自動的に特定されます。詳しくは、基本的な Agent のオートディスカバリーを参照してください。

コンテナ環境で Agent を実行するためのチュートリアルは、Docker Agent または Kubernetes を参照してください。

なぜ Agent をインストールする必要があるのですか?

Agent ベースのインテグレーションからデータを送信するには、Agent をインストールする必要があります。例えば、Datadog API を通じてログやメトリクスを送信することができます。しかし、Agent は Datadog プラットフォームにデータを転送するために推奨される方法です。

Agent は 15 秒ごとにホストデータを収集し、環境全体で何が起こっているかを正確に把握することができます。チェックのセクションで述べたように、Agent は 50 以上のデフォルトメトリクスを収集するいくつかのチェックを有効にし、システムレベルのデータについてより深い洞察を提供します。

セットアップ

前提条件

  1. Datadog アカウントを作成します。

  2. Datadog API キーを手元に用意します。

  3. Datadog の UI を開いておきます。

: このチュートリアルでは、Ubuntu オペレーティングシステムを使用しています。サポートされているプラットフォームの全リストは、基本的なエージェントの利用方法ページを参照してください。

インストール

Datadog UI で、Integrations > Agent に移動し、Ubuntu を選択して、Ubuntu 用の Agent インストールページに移動します。Datadog Agent をホストにインストールするには、そのページにある 1 行のインストールコマンド (以下に示す例) を使用し、Datadog API キーで更新します。

Ubuntu の 1 行インストールコマンドの例:

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

最新のインストール方法については、お使いの OS のアプリ内 Agent インストールページをご覧ください。

検証

ターミナルコマンド

インストールを検証するには、Agent のステータスコマンドを実行します。

sudo datadog-agent status

インストールに成功すると、次のような Agent 情報で始まる Agent Status レポートが返されます。

===============
Agent (v7.36.1)
===============

  Status date: 2022-06-15 15:54:48.364 EDT / 2022-06-15 19:54:48.364 UTC (1655322888364)
  Agent start: 2022-06-15 15:54:29.85 EDT / 2022-06-15 19:54:29.85 UTC (1655322869850)
  Pid: 9801
  Go Version: go1.17.6
  Python Version: 3.8.11
  Build arch: amd64
  Agent flavor: agent
  Check Runners: 6
  Log Level: info

イベント

Datadog UI で、イベントエクスプローラページ Events > Explorer に移動します。Agent が起動または再起動すると、Agent は Datadog にイベントを送信します。Agent が正常にインストールされた場合、以下のメッセージが表示されます。

Datadog agent (v. 7.XX.X) started on <Hostname>

サービスチェック

Agent は、以下のサービスチェックを行うように設定されています。

  • datadog.agent.up: Agent が Datadog に接続した場合、OK を返します。

  • datadog.agent.check_status: Agent チェックが Datadog にメトリクスを送信できない場合は、CRITICAL を返します。それ以外の場合は、OK を返します。

これらのチェックは、Datadog プラットフォームで使用することで、モニターやダッシュボードを通じて Agent のステータスを一目で視覚化することができます。詳しくは、サービスチェックの概要を参照してください。

メトリクス

Datadog UI で、メトリクスサマリーページ Metrics > Summary に移動し、メトリクス datadog.agent.started または メトリクス datadog.agent.running を検索してください。これらのメトリクスがすぐに表示されない場合、Agent が Datadog プラットフォームにデータを送信するのに数分かかることがあります。

いずれかのメトリクスをクリックすると、Metric パネルが開きます。このパネルには、これらのメトリクスがどこから収集されたか、および関連するタグに関する追加のメタデータが表示されます。このチュートリアルでは今のところ、このホストにはタグが構成されていないため、versionhost など、Datadog がメトリクスに割り当てるデフォルトのタグだけが表示されるはずです。タグを追加する方法については、次の Agent コンフィギュレーションファイルのセクションを参照してください。

ntp.offsetsystem.cpu.idle など、他のデフォルトメトリクスも調べてみてください。

Agent 構成ファイル

Agent の主なコンフィギュレーションファイルは datadog.yaml です。必要なパラメーターは以下の通りです。

  • Datadog API キー。Agent のデータを組織と関連付けるために使用されます。
  • Datadog サイト ()

使用可能なすべての構成オプションの詳細については、サンプル config_template.yaml ファイルを参照してください。

Agent のコンフィギュレーションファイルを調整することで、タグを含む他の Datadog の機能を利用することができます。

Agent のコンフィギュレーションファイルによるタグの設定

タグは、メトリクスとイベントにメタデータの追加レイヤーを追加します。これにより、Datadog の視覚化において、データのスコープと比較ができるようになります。複数のホストから Datadog にデータが送信された場合、この情報をタグ付けすることで、最も視覚化したいデータにスコープを絞ることができます。

例えば、異なるチームから収集したデータを持っていて、チーム・アルファのメトリクスだけを見たい場合、特定のホストに team:alpha または team:bravo タグを付けると、team:alpha タグが付いているメトリクスにフィルターがかかるようになります。タグ付けの詳細については、タグの使用を開始するを参照してください。

  1. Agent のメインコンフィギュレーションファイルを探します。Ubuntu の場合、ファイルの場所は /etc/datadog-agent/datadog.yaml です。

  2. datadog.yaml ファイルで、tags パラメーターを探します。ホストレベルのタグを datadog.yaml 構成で設定すると、このホストから転送される全てのメトリクス、トレース、ログにタグを適用することができます。

    ## @param tags  - list of key:value elements - optional  
    ## @env DD_TAGS - space separated list of strings - optional
    ## List of host tags. Attached in-app to every metric, event, log, trace, and service check emitted by this Agent.
    ##
    ## This configuration value merges with `DD_EXTRA_TAGS`, allowing some
    ## tags to be set in a configuration file (`tags`), and additional tags to be added
    ## with an environment variable (`DD_EXTRA_TAGS`).
    ##
    ## Learn more about tagging: https://docs.datadoghq.com/tagging/
    #
    # tags:
    #   - team:infra
    #   - <TAG_KEY>:<TAG_VALUE>
    
  3. tags パラメーターのコメントを解除し、提供された例の team:infra タグを追加します。また、例えば test:agent_walkthrough のように、独自のタグを追加することもできます。

    ## @param tags  - list of key:value elements - optional  
    ## @env DD_TAGS - space separated list of strings - optional
    ## List of host tags. Attached in-app to every metric, event, log, trace, and service check emitted by this Agent.
    ##
    ## This configuration value merges with `DD_EXTRA_TAGS`, allowing some
    ## tags to be set in a configuration file (`tags`), and additional tags to be added
    ## with an environment variable (`DD_EXTRA_TAGS`).
    ##
    ## Learn more about tagging: https://docs.datadoghq.com/tagging/
    #
    tags:
       - team:infra
       - test:agent_walkthrough
    
  4. Agent の restart コマンドを実行して、Agent を再起動します。Ubuntu の restart コマンド:

    sudo service datadog-agent restart
    
  5. 数分後、再び Metrics > Summary に移動し、メトリクス datadog.agent.started をクリックします。デフォルトの hostversion タグに加えて、team タグや追加した個人用タグも表示されます。また、ページ上部にある Tag フィールドでメトリクスをフィルターすることもできます。

  6. Events > Explorer で、最新の Agent イベントとともに表示されるカスタムタグを見つけます。

その他の構成オプション

ログトレースプロセスのデータ収集は、Agent コンフィギュレーションファイルから有効にすることができます。これらは、デフォルトで有効になっている機能ではありません。例えば、コンフィギュレーションファイルで、logs_enabled パラメーターが false に設定されていることに注目してください。

##################################
## Log collection Configuration ##
##################################

## @param logs_enabled - ブール値 - オプション - デフォルト: false
## @env DD_LOGS_ENABLED - ブール値 - オプション - デフォルト: false
## logs_enabled を true に設定し、Datadog Agent のログ収集を有効にします。
#
# logs_enabled: false

Agent コンフィギュレーションファイルを通じて構成可能なその他の Datadog 機能は以下の通りです。

セットアップ中、ドキュメントが datadog.yaml ファイルまたは Agent コンフィギュレーションファイルに言及している場合、このファイルを構成する必要があります。

コマンド

Agent を起動停止 または 再起動する方法については、Agent のコマンドを参照してください。

トラブルシューティング

Agent のトラブルシューティングに関するヘルプ

その他の参考資料

次のステップ