Agent 5 アーキテクチャ

このページでは、Agent 5 アーキテクチャについて説明します。Agent の最新バージョンのアーキテクチャについては、Agent アーキテクチャを参照してください。

Agent v5 アーキテクチャ

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

  • コレクター (agent.py): コレクターは、現在のマシンで構成されているインテグレーションのチェックを実行し、メモリや CPU などのシステムメトリクスをキャプチャします。
  • DogStatsD (dogstatsd.py): アプリケーションからカスタムメトリクスを送信できる StatsD 互換バックエンドサーバーです。
  • フォワーダー (ddagent.py): フォワーダーは、DogStatsD とコレクターの両方からデータを取り出し、送信キューに入れてから Datadog に送信します。
  • SupervisorD: コレクター、DogStatsD サーバー、フォワーダーはすべて、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

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

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

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