The ActiveMQ Web Console is a web based administration tool for working with ActiveMQ. When used with the JMX support it can be an invaluable tool for working with ActiveMQ

Running the Web Console on ActiveMQ 5.0 or later

We have integrated the Web Console into the binary distribution. So Download a binary distribution then follow the instructions for Version 5 Run Broker. Then you can point your web browser at the URL

And hey presto, you should now have the Web Console running.

As of 5.3 or later you should also have the Camel Web Console available for use to browse your endpoints and Enterprise Integration Patterns at the following URL

Configuring the Web Console via xbean:activemq.xml

The integrated Web Console uses Jetty to host the Web Console. Jetty has a compact XML syntax for configuration within the activemq.xml configuration. See http://docs.codehaus.org/display/JETTY/XBean+Support.

Changing the port

If you want to change the port number of the web application try the following

mvn jetty:run -Djetty.port=9090

You can also set the port with the port attribute in the nioConnector tag in the activemq.xml configuration file:

<connectors>
    <nioConnector port="8161" />
</connectors>

Starting the Web Console in a seperate VM/in a Web-Container

If you want to start the web-console in a different process than ActiveMQ (f.e. for security or reliability reasons) then you've two options:

Configure using System-Properties

You need to configure the following system properties:

  • -Dwebconsole.type=properties
  • -Dwebconsole.jms.url=<url of the broker> (f.e. tcp://localhost:61616)
  • -Dwebconsole.jmx.url=<jmx url to the broker> (f.e. service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi)
  • -Dwebconsole.jmx.user=<remote jmx user name>
  • -Dwebconsole.jmx.password=<remote jmx password>

These may be specified on the maven command line with mvn jetty:run -Dwebconsole.type=properties..... or deploy the activemq-web-console.war into a Web-Container (f.e. Jetty, Tomcat) and follow the example below.

Configure using JNDI

Deploy the activemq-web-console.war into a Web-Container (f.e. Jetty, Tomcat) and specify the following System property

  • -Dwebconsole.type=jndi
    The jndi-resources are named
  • java:comp/env/jms/connectionFactory: JMS-ConnectionFactory (Type javax.jms.ConnectionFactory)
  • java:comp/env/jmx/url: URL of the brokers JMX (Type java.lang.String)

Don't forget to add the activemq-all jar to your webcontainer's shared lib directory (common/lib for tomcat, lib for jetty).

Failover configurations

It's possible to configure the web-console to monitor master/slave-broker setup. To do so use the normal failover: Syntax for the JMS-URL and a comma separated list of JMX-URLs. This works with the System-property- and with the JNDI-configuration.
Example:
-Dwebconsole.jms.url=failover:(tcp://serverA:61616,tcp://serverB:61616)
-Dwebconsole.jmx.url=service:jmx:rmi:///jndi/rmi://serverA:1099/jmxrmi,service:jmx:rmi:///jndi/rmi://serverB:1099/jmxrmi

Example configuration using Jetty 6

To start the web-console in a dedicated jetty use the following startup-script (execute from the jetty-root-dir):

java -Dwebconsole.type=properties -Dwebconsole.jms.url=tcp://localhost:61616 -Dwebconsole.jmx.url=service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi -Dwebconsole.jmx.user=system -Dwebconsole.jmx.password=manager -jar start.jar

If the web-console should be password protected (BASIC Authentication) use the standard jetty mechanisms:
1. Define a UserRealm in jetty.xml:

<Set name="UserRealms">
      <Array type="org.mortbay.jetty.security.UserRealm">
        <Item>
          <New class="org.mortbay.jetty.security.HashUserRealm">
            <Set name="name">ActiveMQ Realm</Set>
            <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/amqrealm.properties</Set>
          </New>
        </Item>
      </Array>
    </Set>

2. Configure the users/passwords in the amqrealm.properties in jetty/etc

myAdmin: secret,amqAdmin

3. Configure the security constraint either in the webconsoles web.xml or in jetty's webdefault.xml

<security-constraint>
    <web-resource-collection>
      <web-resource-name>A Protected Page</web-resource-name>
      <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>amqAdmin</role-name>
    </auth-constraint>
  </security-constraint>

  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>ActiveMQ Realm</realm-name>
  </login-config>

This is just a sample configuration of a password protected webconsole. Instead of the HashUserRealm one could also use a KerberosRealm or a JDBCRealm.

Example configuration using Tomcat

To start web console in Tomcat 5.x use the following steps:

JAVA_OPTS="-Dwebconsole.type=properties \
-Dwebconsole.jms.url=tcp://localhost:61616 \
-Dwebconsole.jmx.url=service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi \
-Dwebconsole.jmx.user= \
-Dwebconsole.jmx.password="

Using the Web Console

To get started, go to the Send page and send a message to a queue (you can send multiple if you like, see the message count field).

Now that you have sent messages to a queue you should be able to Browse then and view the queue as an RSS or Atom feed.

Running the Web Console on earlier versions

The 5.3 webconsole does not run unmodified against a remote activemq 4.*. However, it's easy to patch to avoid the new properties. See https://issues.apache.org/activemq/browse/AMQ-2145

To run the ActiveMQ Web Console on earlier versions of ActiveMQ follow these instructions

  • Install Maven 2.0.4 or later
  • Grab the latest Source of ActiveMQ
  • Type the following commands into a command shell
#mvn clean install -Dmaven.test.skip=true
cd activemq-web-console
patch -p0<AMQ-2145.diff
mvn jetty:run -Dwebconsole.type=properties -Dwebconsole.jms.url=tcp://localhost:61616 -Dwebconsole.jmx.url=service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi -Dwebconsole.jmx.user=system -Dwebconsole.jmx.password=manager

Most likely everyone except geronimo 2.1.x users will have upgraded to activemq 5.x. Note that the jms connector url for geronimo is

-Dwebconsole.jmx.url=service:jmx:rmi:///jndi/rmi://localhost:1099/JMXConnector

Now point your browser at http://localhost:8080/ (or the appropriate port)

And you should be in business!

Graphic Design By Hiram