我正在尝试使用jconsole通过使用SSH创build的socks代理来查看EC2实例的统计信息。 我已经尝试了下面的链接中提到的各种脚本,但无济于事:
http://simplygenius.com/2010/08/jconsole-via-socks-ssh-tunnel.html
http://gabrielcain.com/blog/2010/11/02/using-ssh-proxying-to-connect-jconsole-to-remote-cassandra-instances/
我正在运行ssh -f -ND 8123 myuser@mymachine并validation至lessFirefox通过它作为代理。
然后我跑
jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=8123 service:jmx:rmi:///jndi/rmi://ec2-XX-XX-XXX-XXX.compute-1.amazonaws.com:8080/jmxrmi
我在我的EC2实例上运行netstat -n,并看到由我的机器创build的连接。 然而,连接最终消失,我得到了我的SSH隧道“通道2:打开失败:连接失败:操作超时”。
我已经通过安全组打开了jmx端口,并且已经检查了EC2实例上的端口以确保它是开放的(通过telnet连接到它)。
我不确定接下来要看的地方。 是否有一些属性在sshd_config或ssh_config我需要启用隧道? 或在Mac OS X中的任何东西?
我觉得自己是一个严肃的noob,但系统pipe理真的不是我的强项。 我花了几个小时,不能得到这个工作。
在您的Cassandra(v0.8.5)节点上,查找$CASSANDRA_HOME/bin/conf/cassandra-env.sh的以下行:
# add this if you're having trouble connecting: JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>"
确保第二行没有注释,并设置为ec2实例的公共DNS名称 。