基本的な Agent の利用方法
Datadog の調査レポート: サーバーレスの状態 レポート: サーバーレスの状態

基本的な Agent の利用方法

Agentをインストールして開始するために、プラットフォームを選択してください。

Agent アーキテクチャ

Agent v6 と v7は、インフラストラクチャーメトリクスとログの収集、そして DogStatsD メトリクスの受信を担当する 1 つのメインプロセスで構成されています。このプロセスの主なコンポーネントは次のとおりです。

  • コレクター: チェックの実行とメトリクスの収集を行います。
  • フォーワーダー: Datadog にペイロードを送信します。

datadog.yaml 構成ファイルで有効にすると、次の 2 つのオプションのプロセスが Agent によって生成されます。

  • APM Agent: トレースを収集するプロセスです (デフォルトで有効になっています)。
  • Process Agent: ライブプロセス情報を収集するプロセスです。デフォルトでは使用できるコンテナのみを収集し、その他に対しては無効になります。

Windows では、サービスは次のように一覧表示されます。

サービス説明
DatadogAgent“Datadog Agent”
datadog-trace-agent“Datadog Trace Agent”
datadog-process-agent“Datadog Process Agent”

Agent がデフォルトでバインドするポートは、Linux では 3 個、Windows と OSX では 4 個です。

ポート説明
5000Agent に関するランタイムメトリクスを公開します。
5001Agent の CLI と GUI で使用され、コマンドを送信して実行中の Agent から情報を取得します。
5002Windows と OSX で GUI サービスを提供します。
8125DogStatsD サーバーで使用され、外部メトリクスを受信します。

コレクター

コレクターは、15 秒ごとにすべての標準のメトリクスを収集します。Agent v6 埋め込みの Python2.7 インタープリターは、インテグレーションとカスタムチェックを実行します。

フォワーダー

Agent フォワーダーは、メトリクスを HTTPS 経由で Datadog に送信します。バッファリングを行うと、ネットワークスプリットがメトリクスの報告に影響を与えることを防ぐことができます。メトリクスは、処理待ちの送信リクエストのサイズまたは数が制限に達するまで、メモリにバッファされます。その後、フォワーダーのメモリのフットプリントを管理可能な範囲に保つために、最も古いメトリクスが破棄されます。ログは、SSL 暗号化 TCP 接続経由で Datadog に送信されます。

DogStatsD

v6 の DogStatsD は、Etsy の StatsD メトリクス集計デーモンの Go 言語実装です。UDP または Unix ソケット経由で任意のメトリクスを受信してロールアップするために使用され、構成要素の一部としてカスタムコードを組み込んでもレイテンシーが発生しません。DogStatsD についての詳細はこちらでご確認いただけます。

Agent v5 は、以下に示す主な 4 つのコンポーネントで構成され、それぞれ別のプロセスとして実行される Python で記述されます。

  • コレクター (agent.py): コレクターは、現在のマシンで構成されているインテグレーションのチェックを実行し、メモリや CPU などのシステムメトリクスをキャプチャします。
  • DogStatsD (dogstatsd.py): アプリケーションからカスタムメトリクスを送信できる StatsD 互換可能バックエンドサーバーです。
  • フォワーダー (ddagent.py): フォワーダーは、DogStatsD とコレクターの両方からデータを取得し、クエリを実行し、Datadog に送信します。
  • SupervisorD: 全体が 1 つのスーパーバイザープロセスで制御されます。すべての要素を実行しない場合に各アプリケーションのオーバーヘッドを制限するために、分離されています。ただし、原則としてすべての要素を実行することをお勧めします。

: Windows の場合、4 つの Agent プロセスはいずれも ddagent.exe インスタンスとして、DevOps' best friend という説明とともに表示されます。

スーパーバイズ、特権、ネットワークポート

SupervisorD マスタープロセスは、dd-agent ユーザーとして実行され、分岐したすべてのサブプロセスは同じユーザーとして実行されます。これは、Datadog Agent によって開始されたシステムコール (iostat/netstat) にも適用されます。Agent 構成は、/etc/dd-agent/datadog.conf/etc/dd-agent/conf.d にあります。すべての構成は、dd-agent によって読み取り可能である必要があります。構成ファイルには API キーとメトリクスにアクセスするために必要な他の証明書が含まれるので、推奨されるアクセス許可は 0600 です。

操作のために次のポートが開かれています。

ポート説明
tcp/17123フォワーダーの通常操作
tcp/17124graphite サポート用のフォワーダー
udp/8125DogStatsD

v3.4.1 以上の Agent では、すべてのリスニングプロセスはデフォルトで 127.0.0.1::1 にバインドされます。以前のバージョンでは、0.0.0.0 (すべてのインターフェイス) にバインドされます。プロキシから Agent を実行する詳細については、Agent のプロキシ構成を参照してください。許可される IP 範囲の詳細については、ネットワークトラフィックを参照してください。

ファイルディスクリプタを開く数は 1024 までにすることをお勧めします。この値は、コマンド ulimit -a で確認できます。Shell Fork Bomb Protection など、ハードウェアの制限でこの推奨値を下回る場合、たとえば superisord.conf に次の内容を追加することが一解決方法として考えられます。

[supervisord]
minfds = 100 # ハードウェア制限

GUI

GUI が実行されるポートを datadog.yaml ファイルで構成できます。GUI を無効にするには、ポートの値を -1 に設定します。 Windows および macOS では、GUI はデフォルトで有効になり、ポート 5002 で実行されます。Linux では、GUI はデフォルトで無効になります。

Agent の実行中は、datadog-agent launch-gui コマンドを使用して、デフォルトの Web ブラウザーで GUI を開きます。

: Agent GUI は、32 ビット Windows プラットフォームではサポートされません。

要件

  1. cookie をブラウザーで有効にする必要があります。GUI は、GUI サーバーとのすべての通信を認証するために使用されるトークンを生成し、ブラウザーに保存します。

  2. GUI を起動するには、必要なアクセス許可を持っている必要があります。datadog.yaml を開くことができる場合は、GUI を使用できます。

  3. セキュリティ上の理由から、GUI はローカルネットワークインターフェイス (localhost/127.0.0.1) からのみアクセスできます。そのため、Agent を同じホストで実行する必要があります。したがって、Agent を VM やコンテナーで実行してホストマシンからアクセスすることはできません。

サポートされる OS バージョン

OSサポートされるバージョン
AmazonAmazon Linux 2
Debian x86_64 (systemd を使用)Debian 7 (wheezy) 以上
Debian x86_64 (SysVinit を使用)Agent 6.6.0 以上では Debian 7 (wheezy) 以上
Ubuntu x86_64Ubuntu 14.04 以上
RedHat/CentOS x86_64RedHat/CentOS 6 以上
Dockerバージョン 1.12 以上
Kubernetesバージョン 1.3 以上
SUSE Enterprise Linux x86_64 (systemd を使用)SUSE 11 SP4 以上
SUSE Enterprise Linux x86_64 (SysVinit を使用)Agent 7.16.0 以上では SUSE 11 SP4
Fedora x86_64Fedora 26 以上
macOSmacOS 10.12 以上
Windows Server 64 ビットServer Core (Nano 以外)
Windows 64 ビットWindows 7 以上

: ソースインストールは、このリストにないオペレーティングシステムでも実行でき、ベストエフォートベースでサポートされている可能性があります。

OSサポートされるバージョン
AmazonAmazon Linux 2
Debian x86_64Debian 7 (wheezy) 以上
Ubuntu x86_64Ubuntu 12.04 以上
RedHat/CentOS x86_64RedHat/CentOS 5 以上
Dockerバージョン 1.12 以上
Kubernetesバージョン 1.3 ~ 1.8
SUSE Enterprise Linux x86_64SUSE 11 SP4 以上
Fedora x86_64Fedora 26 以上
MacOSmacOS 10.10 以上
Windows Server 64 ビットWindows Server 2008r2 以上
Windows 64 ビットWindows 7 以上

: ソースインストールは、このリストにないオペレーティングシステムでも実行でき、ベストエフォートベースでサポートされている可能性があります。

OSサポートされるバージョン
AIXAIX 6.1 TL9 SP6, 7.1 TL5 SP3, 7.2 TL3 SP0

CLI

Agent v6 以上のコマンドラインインターフェイスはサブコマンドに基づいています。サブコマンドを実行するには、まず Agent バイナリを呼び出します。

<AGENT_バイナリパス> <サブコマンド> <オプション>
サブコマンドNotes
check指定されたチェックを実行します。
configcheck実行中の Agent のうち、ロード済みで解決済みの構成をすべて出力します。
diagnoseシステムに対して接続診断を実行します。
flareフレアを収集して Datadog に送信します
health現在の Agent の状態を出力します。
help任意のコマンドのヘルプ。
hostnameAgent が使用するホスト名を出力します。
import以前のバージョンの Agent から構成ファイルをインポートして変換します。
installserviceサービスコントロールマネージャー内で Agent をインストールします。
launch-guiDatadog Agent GUI を起動します。
regimportレジストリ設定を datadog.yaml にインポートします。
remove-serviceサービスコントロールマネージャーから Agent を削除します。
restartAgent を再起動します
restart-serviceサービスコントロールマネージャー内で Agent を再起動します。
startAgent を起動します
start-serviceサービスコントロールマネージャー内で Agent を起動します。
status現在の Agent のステータスを出力します
stopAgentを 停止します
stopserviceサービスコントロールマネージャー内で Agent を停止します。
versionバージョン情報を出力します。

: 一部のオプションにはフラグのセットとオプションがあり、ヘルプメッセージで詳細に説明されています。たとえば、check サブコマンドの使用方法を表示するには、次のように実行します。

<AGENT_バイナリパス> check --help

Agent のオーバーヘッド

以下は、Datadog Agent リソース消費の例です。テストは、AWS EC2 マシンの c5.xlarge インスタンス (4 VCPU/ 8 GB RAM) で行われました。Agent 自体を監視するために、vanilla datadog-agent がプロセスチェックとともに実行されました。さらにインテグレーションを有効にすると、Agent リソースの消費が増えます。 JMX チェックを有効にすると、監視対象の JVM によって公開される Bean の数に応じて、Agent が使用するメモリの量が増えます。トレースとプロセスを有効にしても、Agents のリソース消費が増えます。

  • Agent テストのバージョン: 6.7.0
  • CPU: 平均で CPU の約 0.12 % を使用
  • メモリ: 約 60 MB の RAM を使用 (RSS メモリ)
  • ネットワーク帯域幅: 約 86 B/秒 ▼ | 260 B/秒 ▲
  • ディスク:
    • Linux: ディストリビューションによって 350 MB ~ 400 MB
    • Windows: 260 MB
  • Agent テストのバージョン: 5.24.0
  • CPU: 平均で CPU の約 0.35% を使用
  • メモリ: 約 115 MB の RAM 使用。
  • ネットワーク帯域幅: 約 1900 B/秒 ▼ | 800 B/秒 ▲
  • ディスク:
    • Linux 312MB
    • Windows: 295MB

: コンテナ Agent v5.15 以降では、メモリキャッシュが増えているためコンテナリソースを 256 MB 以上に設定することをお勧めします。この制限を大きくすることは、ベースラインの使用量に対応するためではなく、一時的なスパイクに対応するためです。Agent 6 では、メモリのフットプリント制限が非常に厳しくなっています。

ログ収集:

以下は、HTTP フォワーダーが有効になっている状態で*毎秒 110KB のログが記録される*ファイルから得た結果です。これは、使用可能な圧縮レベルに応じてリソース使用量がどのように増加するかを示しています。

  • Agent テストのバージョン: 6.15.0
  • CPU: 平均で CPU の約 1.5% を使用
  • メモリ: 約 95 MB の RAM 使用。
  • ネットワーク帯域幅: 約 14KB/秒 ▲
  • ディスク:
    • Linux: ディストリビューションによって 350 MB ~ 400 MB
    • Windows: 260 MB
  • Agent テストのバージョン: 6.15.0
  • CPU: 平均で CPU の約 1% を使用
  • メモリ: 約 95 MB の RAM 使用。
  • ネットワーク帯域幅: 約 20KB/秒 ▲
  • ディスク:
    • Linux: ディストリビューションによって 350 MB ~ 400 MB
    • Windows: 260 MB
  • Agent テストのバージョン: 6.15.0
  • CPU: 平均で CPU の約 0.7 % を使用
  • メモリ: 約 90 MB の RAM を使用 (RSS メモリ)
  • ネットワーク帯域幅: 約 200KB/秒 ▲
  • ディスク:
    • Linux: ディストリビューションによって 350 MB ~ 400 MB
    • Windows: 260 MB

構成管理ツール

構成管理ツールを使用して、Datadog Agent とインテグレーションを管理します。

  • [Saltstack で Datadog Agent をインストールする1

Datadog Agent の次のステップ

Agent の更新

特定のホスト上で実行されている Datadog Agent のコアを手動でマイナーバージョンにアップデートするには、プラットフォームの対応するインストールコマンドを実行します。

注: 特定の Agent インテグレーションを手動でアップデートするには、インテグレーション管理ガイドを参照してください。

構成ファイル

Agent 構成ファイルガイドを参照してください

Datadog サイト

Agent データを Datadog EU サイトに送信するには、Agent のメイン構成ファイル datadog.yaml を編集して、site パラメーターを以下のように変更します。

site: datadoghq.eu

ログの場所

Agent ログファイルガイドを参照してください

その他の参考資料