Tag: collectd

在运行在ECS集群上的Docker容器中公开JMX端口

我有一个在Docker容器中运行的Java应用程序。 我已经在ECS集群中部署了这个容器。 我想公开一个JMX端口,这样我就可以使用安装在该机器上的CollectD代理收集JVM统计信息。 我在Java应用程序中指定的JVM参数是 JAVA_OPTS="-Dspring.config.location=classpath:/base/ -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8008 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=10.0.7.118 如果我在非docker环境中运行这个应用程序,我能够连接到这个JMX端口。 但是,我无法在Docker中做同样的事情。 我在“我的任务定义”中也给出了端口映射,所以这个端口可以暴露给外部世界。 我知道,如果我使用docker run命令运行这个docker,比我可以指定-p参数来进行端口映射,但是我不能在这里做同样的事情,因为我在部署这个映像的ECS集群上运行这个应用程序。 所以我必须依靠任务定义提供的端口映射。 TaskDefnition "ContainerDefinitions": [ { "Name": "MyApplication", "Cpu": "2048", "Essential": "true", "Image": "location of the image", "Memory": "8192", "MemoryReservation": "4096", "Environment": [ { "Name": "Test", "Value": { "Fn::GetAtt": [ "SomeAttrib", "SomeAccessKey" ] } } ], "PortMappings": [ { "HostPort": […]

如何收集来自uwsgi的指标,帮助collectd

下午好,好人。 帮我find正确的解决scheme。 在一个docker集装箱启动uwsgi应用程序。 在另一个docker集装箱启动的收集器指标 – collectd,收集指标并将其发送到服务器-openstdb。 这个问题我怎么做会收到来自uwsgi收集的指标。 我明白,必须从uwsgi选项“–enable-metrics”开始,并可能添加“–stats-push statsd:address [,prefix]”。 并进入configurationcollections添加插件。 但是,这一切在实践中如何不明白。 感谢任何帮助