The Hawtio platform consists of 2 parts, the backend which is running in a Java Web Container the Jolokia gateway (JMX to JSON) and the front end containing the Angular, D3, … Javascript to do the rendering of the JSON responses in a very nice way. Depending how you plan to use Hawtio for your project in your environment, you can run the backend using a java standalone jar, a servlet engine, application server or an OSGI container. If you do not use a servlet container or application server, you can also embed the hawtio backend inside your process.
The front end could be accessed using the HTML5 web console or from Google Browser
The out of the box defaults try to do the right thing for most folks but if you want to configure things then please check out the configuration guide
You can startup hawtio on your machine using the hawtio-app executable jar.
Download the executable hawtio-app-1.5.11.jar
Once you have downloaded it, just run this from the command line:
java -jar hawtio-app-1.5.11.jar
Note: If you launch hawt.io with Java 9, add the specified modules to avoid errors on startup and allow attaching to other Java processes:
java --add-modules jdk.attach,java.xml.bind -jar hawtio-app-1.5.11.jar
And the console should show you which URL to open to view hawtio; which by default is http://localhost:8080/hawtio/
You can specify the port number to use, for example to use port 8090 run from the command line:
java -jar hawtio-app-1.5.11.jar --port 8090
hawtio supports other options which you can get listed by running from command line:
java -jar hawtio-app-1.5.11.jar --help
If you are running Tomcat, Jetty you could just deploy a WAR: (JBoss AS or Wildfly users see other containers section further below)
TIP: You may want to use the offline deployment which do not connects to the internet for plugins such as Maven and Git.
a bare hawtio web application with minimal dependencies (online mode connecting to the internet for the Maven and Git plugin)
Download hawtio-default-offline.war
a bare offline hawtio web application with minimal dependencies in offline mode, where Maven and Git plugins are not enabled.
a hawtio web application which comes with some Apache ActiveMQ and Apache Camel to play with which is even hawter
Copy the WAR file to your deploy directory in your container.
If you rename the downloaded file to hawtio.war then drop it into your deploy directory then open http://localhost:8080/hawtio/ and you should have your hawtio console to play with.
Otherwise you will need to use either http://localhost:8080/hawtio-default-1.5.11/ or http://localhost:8080/sample-1.5.11/ depending on the file name you downloaded.
Please check the configuration guide to see how to configure things; in particular security.
If you don't see a Tomcat / Jetty tab for your container you may need to enable JMX.
If you are using 6.1 or later of JBoss Fuse, then hawtio is installed out of the box
By default installing hawtio
installs the Maven and Git plugin which uses online connection over the internet to work. You may want to install hawtio-offline
instead which disables those plugins, and runs hawtio without any internet connectivity. When installing hawtio-core
then those plugins are not installed and its also in offline mode.
If you are using Apache Karaf 2.x:
features:chooseurl hawtio 1.5.11
features:install hawtio
If you are using Apache Karaf 3.x:
feature:repo-add hawtio 1.5.11
feature:install hawtio-core
If you are using Apache Karaf 4.x:
feature:repo-add hawtio 1.5.11
feature:install hawtio
If you are using Apache ServiceMix 5.x/6.x:
feature:repo-add hawtio 1.5.11
feature:install hawtio-core
If you are using Apache ServiceMix 7.x:
feature:repo-add hawtio 1.5.11
feature:install hawtio
NOTE Karaf 2.x/3.x has an issue with the hawtio-log
and hawtio-terminal
which does not work. And therefore you need to install hawtio-core
instead of hawtio
.
The hawtio console can then be viewed at http://localhost:8181/hawtio/. The default login for Karaf is karaf/karaf
, and for ServiceMix its smx/smx
.
If you are behind a http proxy; you will need to enable HTTP Proxy support in Fuse / Karaf / ServiceMix to be able to download hawtio from the central maven repository.
There are a few articles about this which may help. Here are the steps:
Edit the etc/org.ops4j.pax.url.mvn.cfg file and make sure the following line is uncommented:
org.ops4j.pax.url.mvn.proxySupport=true
You may also want org.ops4j.pax.url.mvn.settings to point to your Maven settings.xml file. NOTE use / in the path, not .
org.ops4j.pax.url.mvn.settings=C:/Program Files/MyStuff/apache-maven-3.0.5/conf/settings.xml
Fuse / Karaf / ServiceMix will then use your maven HTTP proxy settings from your ~/.m2/settings.xml to connect to the maven repositories listed in etc/org.ops4j.pax.url.mvn.cfg to download artifacts.
If you're still struggling getting your HTTP proxy to work with Fuse, try jump on the Fuse Form and ask for more help.
The following section gives details of other containers
You may have issues with slf4j JARs in WAR deployments on JBoss AS or Wildfly. To resolve this you must use Download hawtio-no-slf4j.war.
See more details here.
Additionally related to logging, you can remove the log4j.properties from the root of the classpath so that Wildlfy uses its logging mechanisms instead of trying to use the embedded log4j. From the command line, you can try:
zip -d hawtio.war WEB-INF/classes/log4j.properties
Since hawtio does use some CDI beans, but does not deploy a beans.xml CDI descriptor, you can also relax Wildfly's implicit CDI detection by changing the Weld config to look like this:
<system-properties>
<property name="hawtio.authenticationEnabled" value="false" />
</system-properties>
To enable security, you'll need to set you configuration up like this:
<extensions>
...
</extensions>
<system-properties>
<property name="hawtio.authenticationEnabled" value="true" />
<property name="hawtio.realm" value="jboss-web-policy" />
<property name="hawtio.role" value="admin" />
</system-properties>
You can follow the steps outlined in this blog for a more comprehensive look at enabling security in Wildfly with hawtio.
If you experience problems with security, you would need to disable security in hawtio by configure the system properties by adding the following to your jboss-as/server/default/deploy/properties-service.xml file (which probably has the mbean definition already but commented out):
<mbean code="org.jboss.varia.property.SystemPropertiesService"
name="jboss:type=Service,name=SystemProperties">
<attribute name="Properties">
hawtio.authenticationEnabled=false
</attribute>
</mbean>
Or in newer versions (Wildfly 8.1) you'll want to add this to standalone/configuration/standalone.xml:
<extensions>
...
</extensions>
<system-properties>
<property name="hawtio.authenticationEnabled" value="false" />
</system-properties>
If you are using Jetty 8.x then JMX may not enabled by default, so make sure the following line is not commented out in jetty-distribution/start.ini (you may have to uncomment it to enable JMX).
etc/jetty-jmx.xml
If you do not use a servlet container or application server and wish to embed hawtio inside your process try the following:
Add the following to your pom.xml
<dependency>
<groupId>io.hawt</groupId>
<artifactId>hawtio-embedded</artifactId>
<version>${hawtio-version}</version>
</dependency>
Then in your application run the following code:
import io.hawt.embedded.Main;
...
Main main = new Main();
main.setWar("somePathOrDirectoryContainingHawtioWar");
main.run();
If you wish to do anything fancy it should be easy to override the Main class to find the hawtio-web.war in whatever place you wish to locate it (such as your local maven repo or download it from some server etc).
Depending on the war you are loading, you may also need to turn off authentication before running the embedded hawtio so that it can be accessible in an unauthenticated environment:
System.setProperty("hawtio.authenticationEnabled", "false");
Chrome Extension currently does not work, as Google requires extensions to be installed using their app store, and hawtio are not yet published to the app store. This may change in the future.
Download the hawtio Chrome Extension version 1.4.47
Then you'll need to open the folder that the CRX file got downloaded to. On a Mac in Chrome you right click the downloaded file and click Show in Finder
now in Google Chrome open the Extensions Page at chrome://extensions/ or Window pull down menu → Extensions
now drop the downloaded CRX file (from Finder or Windows Explorer) onto Chrome's Extensions Page at chrome://extensions/ or Window pull down menu → Extensions and it should install the hawtio extension for Chrome.
now to open a hawtio tab or window at any point, just open a new tab / window in Chrome, click the Apps button on the left hand of the bookmark bar which should open a window with all your extensions in there….
you should see a hawtio icon in the apps page. If not let us know!.
Click the hawtio icon
the Connect page should appear where you can then connect to any processes which are running a jolokia agent.
have fun and profit! Please share with us your feedback! or tweet us!
From a git clone you should be able to run the a sample hawtio console as follows:
git clone git@github.com:hawtio/hawtio.git
cd hawtio/sample
mvn jetty:run
Then opening http://localhost:8282/hawtio/ should show hawtio with a sample web application with some ActiveMQ and Camel inside to interact with.
A good MBean for real time values and charts is java.lang/OperatingSystem
. Try looking at queues or Camel routes. Notice that as you change selections in the tree the list of tabs available changes dynamically based on the content.
hawtio is fully pluggable, and allows to integrate with custom plugins, as if they are out of the box. There is different approaches how you can install and use custom plugins with hawtio, which you can read more about at How Plugin Works.
hawtio offers a number of Maven Plugins, so that users can bootup Maven projects and have hawtio embedded in the running JVM.
The hawtio project has a CI server which builds and deploys daily builds to a Maven repository. For example to try the latest build of the 'hawtio-default' WAR you can download it from the Maven repository.