2013-09-30 22 views
12

JMX konsoluna bağlanamaz ve ben JMX kullanmak activemq.xml yapılandırmayı düzenlenmiş Apache ActiveMQ içinde Apache ActiveMQ Browser version 2.5.2.8Apache ActiveMQ tarayıcısı ben <code>Apache ActiveMQ version 5.8.0</code> kullanıyorum

indirildi belirlediğim başlatma komut içinde

<broker xmlns="http://activemq.apache.org/schema/core" useJmx="true" brokerName="localhost" dataDirectory="${activemq.data}"> 
    <!-- This needed to be set to true, otherwise JMX won't start in 5.8.0 --> 
    <managementContext> 
    <managementContext createConnector="true"/> 
    </managementContext> 
</broker> 

JMX ayarları aşağıdaki gibi: Ben Apache ActiveMQ'yu yeniden başlattığınızda

#ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=11099 " 
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password" 
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access" 
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" 
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote" 

, günlük JMX başlatılır beni ve accessibl gösterir E:

JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi | org.apache.activemq.broker.jmx.ManagementContext | JMX connector 

portu bir dinleme bağlantı noktasına sonuçları dinleme Ayrıca kontrol:

[[email protected] ~]$ netstat -lptun | grep 1099 
(Not all processes could be identified, non-owned process info 
will not be shown, you would have to be root to see it all.) 
tcp  0  0 :::1099      :::*      LISTEN  16775/java 

Apache ActiveMQ bir sunucu üzerinde çalışıyor. Örneğin, IP 10.0.0.100'de. Apache ActiveMQ Tarayıcı benim bilgisayarımda çalışır (10.0.0.200).

Apache ActiveMQ Tarayıcı ile bağlanmaya çalıştığımda, bağlantılar başarısız oluyor. Ben aşağıdaki ayarları kullanıyorum:

JMX URL: service:jmx:rmi:///jndi/rmi://10.0.0.100:1099/jmxrmi 
JMX role: admin 
JMS password: activemq 

Ben jmx.password ve jmx.access varsayılan olarak şu anda kullanıcı ve şifre bıraktı.

yerel port 1099 için bağlantı noktası 1099 için bir tünel oluşturabilir ve sonra localhost yerine 10.0.0.100 hiçbir güvenlik duvarı sorunu olduğundan emin olmak için bağlanmak için macunla bağlarken ben de denedim

. Ama hepsi başarısız.

Hiçbir şey unutuyor muyum?

cevap

15

Maalesef, JMX'in düzgün çalışması için iki bağlantı noktasına ihtiyacı var. İkincisi ise (RMI kayıt portu) varsayılan olarak rasgele kullanılacak RMI bağlantı noktasını ayarlamak için

-Dcom.sun.management.jmxremote.rmi.port=<port> 

kullanabilirsiniz JDK7u4 yana vb

güvenlik duvarları ile sorunlara neden olarak toplanır.

+0

kullandığım ikinci liman olduğunu bilmiyordum. Teşekkürler! –

5

JDK sürümü ile kısıtlıysanız, bu nedenle -Dcom.sun.management.jmxremote.rmi.port'u kullanamazsınız, alternatif olarak managementContext'in kendisinde RMI kayıt defteri bağlantı noktasını belirtebilirsiniz. acı saat sonra

<broker xmlns="http://activemq.apache.org/schema/core" useJmx="true" brokerName="localhost" dataDirectory="${activemq.data}"> 
    ... 
    <managementContext> 
     <managementContext connectorPort="1099" rmiServerPort="<port>" /> 
    </managementContext> 
    ... 
</broker> 
8

. Bir güvenlik duvarının arkasına bağlanmak için sihir.

<managementContext> 
    <managementContext createConnector="true" rmiServerPort="1098" connectorPort="1099" /> 
</managementContext> 

Numune bağlantı dizesi:

service:jmx:rmi://10.0.4.14:1098/jndi/rmi://10.0.4.14:1099/jmxrmi