2016-01-31 25 views
7

Amazon linux ec2にdd-agentをインストールしました。ホストマシン上でPythonスクリプトを直接実行すると(私は "dogstatsd-python"という名前のSDKを使用しています)、すべてのメトリックをdatadogに送信できます(datadoghq.comにログインしてメトリックを見ました)。 、ホストのIPは「172.14.0.1」datadogエージェントがドッカーのコンテナからアクセスできない

from statsd import statsd 
statsd.connect('172.14.0.1', 8125) 
statsd.increment('my metrics') 

を:しかし、私はドッキングウィンドウコンテナを開始し、容器の内部から同じスクリプトを実行

from statsd import statsd 
statsd.connect('localhost', 8125) 
statsd.increment('mymetrics') 

: スクリプトは何かのようなものです.....いいえメトリックが全くdatadogするために送られなかった

netstat -nr | grep '^0\.0\.0\.0' | awk '{print $2}' 

コマンドで抽出した

"アドレスバインディング"のような設定上の問題が原因かもしれないと思います。おそらく、私がホストにインストールしたdd-agentは、 'localhost'からのメトリックしか受信できません。

誰かが私を助けてくれることを願っています。前もって感謝します。

+0

修正を見つけましたか? 'non_local_traffic:yes'を設定しましたが、動作していないようです。 – nerandell

答えて

2

dd-agentlocalhostを受信すると、ローカルホスト(127.0.0.1)からのみデータを受信できます。ホストdd-agentlocalhostの代わりに0.0.0.0に変更してください。

私たちはdocker-dd-agentを使用しており、OOTBで動作します。

+0

ありがとう! /etc/dd-agent/datadog.confで "localhost"の "bind_host"を "0.0.0.0"に変更しました。 dd-agentを再起動します。しかし、問題はまだあります。変更する必要があるものは何ですか? – sheny35

+0

はい、私はdd-agentドッカーのイメージを知っています。しかし何らかの理由で、私たちはそれを避けようとしています。 – sheny35

9

/etc/dd-agent/datadog.confファイルにnon_local_traffic: yesを設定する必要があります。それ以外の場合、エージェントはコンテナからのメトリックを拒否します。

設定した後、変更を有効にするには、エージェントを再起動する必要がありますが:sudo /etc/init.d/datadog-agent restartまたはsudo service datadog-agent restart

docker-dd-agent画像は、デフォルトでnon_local_traffic: yesを可能にします。

0

この場合、実際にはホストのIPを使用する必要はありません。

statsd.connect(DOGSTATSD_PORT_8125_UDP_ADDR, DOGSTATSD_PORT_8125_UDP_PORT)

トリックを行う必要があります:あなたがドッキングウィンドウのDD-エージェントを実行している場合、あなたが入り込むことができる2つの環境変数があります。そうでない場合は、this section of the Datadog docsに問題の関連情報を見つけることができます。

また、Datadogがドキュメントに表示する唯一のPythonライブラリはdatadogpyであることを指摘しておきます。

関連する問題