独自の内部アプリケーションからJMX(RMI経由)メトリックを収集しようとしているdatadog-agentからの接続が拒否されていますドッカーコンテナ。ただし、jconsoleは、独自のドッカーコンテナ内に存在するアプリケーションからメトリックを収集できます。 datadog-agentはそれ自身のコンテナ内に存在します。両方のコンテナは、同じホスト上の同じネットワーク内に存在します。何か案は?私は他のスタックオーバーフローの質問を見てきました。 IPアドレス0.0.0.0と、特定のホストアドレスが Dockerコンテナの出力内でDatadog-agentがスピンアップするJMX RMI接続エラー
ドッカーコンテナ0 /etc/dd-agent/conf.d/jmx.yamlカスタムjmx.yamlファイル内で試されてきた
- :
`docker run -d --name my_streams_app -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e API_KEY=someapikeyhere -e SD_JMX_ENABLE=yes -p 9998:9998 --network=my_streams_default quay.io/temp/my_streams`
- jconsoleを:
*を介しカフカメトリック
ストリーム出力my_streams_app *が実行される実行します送信されたメトリックを受け取ることができます。
ドッカー容器1は:
:0.0.0.0と9998を使用して、また、特定のIPを使用することができますことは、コンテナ内からdatadogのJMXによってメトリックを収集するための
*はDatadogエージェントはJMXのデフォルト(RMI)は、上記容器0に存在my_streams_appからメトリックを取得するために使用する容器 内datadogエージェントを実行します。
*両方のコンテナは、同じホスト(私のラップトップMAC OSX)内の同じネットワーク上で実行されます。
*ドッカーコンテナ内のdatadog-agent内から他のコンテナ内のmy_streams_app ipおよびportにnetcatできます。docker run -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e LOG_LEVEL=DEBUG -e SD_BACKEND=docker --network=mystreams_default 4b1488e74733
*コマンドを扱いますインスタンス:
- ホスト:0.0.0.0 ポート:9998 タグ: newTagは: jmx_urlをmy_streams: "サービス:JMX:RMI:/// JNDI/RMI://0.0.0.0:9998/jmxrmi" を 名前:jmx_instance
docker_images: - my_streams_app
init_config: is_jmx:true conf: - 含む: ドメイン: '"kafka.streams"' bean: '"kafka。ストリーム ":タイプ=" ストリーム・メトリック」、クライアントID =「my_test-1-StreamThread-1" 」 属性: コミットのコールレート: METRIC_TYPE:ゲージ コミット時間平均: METRIC_TYPE:ゲージ はコミット時-MAXを: METRIC_TYPE:ゲージ ポーリング呼び出しレート: METRIC_TYPE:ゲージ
のJConsole:
*は経由の上、ドッキングウィンドウコンテナ0内my_streams_appからメトリックを収集します。jconsole 0.0.0.0:9998
エラー出力:
2017-07-05 20:48:20,236 | ERROR | App | Cannot connect to instance service:jmx:rmi:///jndi/rmi://0.0.0.0:9998/jmxrmi. java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 0.0.0.0; nested exception is: java.net.ConnectException: Connection refused (Connection refused)] java.io.IOException: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 0.0.0.0; nested exception is: java.net.ConnectException: Connection refused (Connection refused)] at org.datadog.jmxfetch.Connection.connectWithTimeout(Connection.java:117) at org.datadog.jmxfetch.Connection.createConnection(Connection.java:61) at org.datadog.jmxfetch.RemoteConnection.<init>(RemoteConnection.java:56) at org.datadog.jmxfetch.ConnectionFactory.createConnection(ConnectionFactory.java:29) at org.datadog.jmxfetch.Instance.getConnection(Instance.java:162) at org.datadog.jmxfetch.Instance.init(Instance.java:173) at org.datadog.jmxfetch.App.init(App.java:511) at org.datadog.jmxfetch.App.main(App.java:115) Caused by: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 0.0.0.0; nested exception is: java.net.ConnectException: Connection refused (Connection refused)] at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:370) at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:268) at org.datadog.jmxfetch.Connection$1.run(Connection.java:86) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:473) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 0.0.0.0; nested exception is: java.net.ConnectException: Connection refused (Connection refused)] at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:142) at com.sun.jndi.toolkit.url.GenericURLContext.lookup(GenericURLContext.java:204) at javax.naming.InitialContext.lookup(InitialContext.java:415) at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(RMIConnector.java:1928) at javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1895) at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:287) ... 7 more Caused by: java.rmi.ConnectException: Connection refused to host: 0.0.0.0; nested exception is: java.net.ConnectException: Connection refused (Connection refused) at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619) at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216) at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202) at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:341) at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:138) ... 12 more Caused by: java.net.ConnectException: Connection refused (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:580) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.<init>(Socket.java:429) at java.net.Socket.<init>(Socket.java:209) at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40) at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:147) at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
のrmiregistryがFailed to retrieve RMIServer stub
- jconsoleを:
ここに関連性の高い情報がたくさんあります。 JMXに接続するためのDatadog設定は何ですか?コンテナはどのように起動されますか( 'docker'コマンド)? jconsoleはどのように接続していますか(IP、認証情報、ポートなど)?どんなバージョンのもの(Docker、ホストOSなど)?問題をよりよく再現できるように、この情報を追加するために質問を修正してください。 –