LoginSignup
1

More than 5 years have passed since last update.

hawtioがSpring Boot 2に対応し、ActuatorがWebコンソールで利用できるようになっていました

Last updated at Posted at 2018-11-25

はじめに

hawtioはJavaアプリケーションをモニタリングできるWebコンソールを提供します。
2018年11月にリリースされたhawtio 2.3.0では、Change Logに記載のとおりSpring Boot 2に対応しています。
※Spring Boot 1.xには以前から対応していました。

 image.png
 https://github.com/hawtio/hawtio/blob/hawtio-2.3.0/CHANGES.md

Spring Boot 2用のサンプルアプリケーションが用意されていたので、動かしてみた時のメモを記載していきます。

Spring Boot 2対応

Spring Boot 2対応したことによって何ができるのか?

Spring Bootには、Spring Boot Actuatorという機能があり、これを利用するとシステムの状態やメトリクスを確認するためのエンドポイントが追加されます。ActuatorのエンドポイントにアクセスするとJSONで情報を取得できます。
hawtioでは、このActuatorのエンドポイントから取得した情報をWebコンソールに表示したり、操作することができます。

ただし、Actuatorのエンドポイントの全てに対応しているわけではなく、対応しているのは以下の3つです。

/health
 アプリケーションの状態確認用。アプリケーションの起動時間、ディスク使用量等の情報が取得できる。

/trace
HTTPリクエストの情報が取得できる。

/loggers
loggerの設定の表示とログレベルの変更ができる。

Spring Boot 2用のサンプルアプリケーションを試す。

サンプルアプリケーションの説明は以下に記載があります。

Hawtio Spring Boot 2 Example

まず、hawtio 2.3.0のレポジトリをコピーします。

git clone -b hawtio-2.3.0 https://github.com/hawtio/hawtio

アプリケーションを実行します。

cd hawtio\examples\springboot
mvn spring-boot:run

※JAVA_HOMEの設定とmvnがインストール済みであり、パスに追加されていること。

warファイルを作成して実行する場合は以下のように実行する。

mvn clean package
cd target
java -Dhawtio.authenticationEnabled=false hawtio-example-springboot-2.3.0.war

サンプルアプリケーションはApache Camelフレームワークを使用しており、以下のように画面にHello World!と表示します。

image.png

また、以下のURLにアクセスするとブラウザにHello World!と表示されます。

image.png

hawtioのWebコンソールを見る

早速、hawtioのWebコンソールにアクセスします。
サンプルアプリケーションでは認証なしになっているので、以下のURLにアクセスするとすぐに利用できます。

表示された画面は以下のとおりで、メニューにSpring Bootが表示されています。
他にもサンプルアプリケーションがApache Camelを使用しているのでCamel、hawtioのデフォルトプラグインのJMX等がメニューに表示されています。
※サンプルアプリケーションにはサンプルプラグインも入っていたが、それはメニューに表示されず。理由は不明。

image.png

メニューからSpring Bootを選択すると、以下のような画面が表示されます。Actuatorのhealth、loggers、traceのエンドポイントに対応した3つのタブが表示されています。

Healthタブは以下のように表示されます。

image.png

Loggersタブは以下のように表示されます。

image.png

Traceタブは以下のように表示されます。

image.png

サンプルプログラムを確認する

長いので省略しますが、以下の2つがポイント。

pom.xml
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    <!-- hawtio -->
    <dependency>
      <groupId>io.hawt</groupId>
      <artifactId>hawtio-springboot</artifactId>
    </dependency>

application.propertiesは次の2行がポイント。
- management.endpoints.web.exposure.include=hawtio,jolokia
- hawtio.authenticationEnabled=false

「management.endpoints.web.exposure.include」でエンドポイントにhawtio,jolokiaを追加、「hawtio.authenticationEnabled=false」でhawtioの認証をOFFにしています。

examples/springboot/src/main/resources/application.properties
server.port=10000
management.server.port=10001

management.endpoints.web.exposure.include=hawtio,jolokia

logging.level.io.hawt=INFO
logging.level.org.springframework=WARN
logging.level.io.undertow=WARN

camel.springboot.name=SampleCamel
timer.period=10000
hawtio.authenticationEnabled=false

最後に

Spring BootにはSpring Boot AdminというWebコンソールがあり、提供する機能範囲が一部重なっており、hawtioとの比較対象になるかと思います。

Spring Boot Adminがサーバ/クライアントであるのに対して、hawtioはSpring Bootのアプリケーションへ組み込んですぐに使えるのが利点になります。どちらもプロダクション環境で使用したことはないのですが、開発環境で使うならhawtioが便利そう。
その他、hawtioはApache Camel、ActiveMQ、JMX等の標準プラグインがあるので、それらを利用するのであればhawtioの方が良さそうです。

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1