天天看点

Apache Camel监控之使用hawtio

网上关于使用hawtio的文章不少,但基本都是针对ActiveMQ的,而使用hawtio监控Apache Camel的文章虽然在hawtio官网上有专门的FAQ,但笔者一开始死活就是看不到监控界面(这也是最让笔者困惑的,在hawtio的官网以及相关的issue中,其他人哪怕是有问题那至少也能看到部分Camel的信息,而笔者这边是啥都没有),最后还是折腾了一圈才看到效果,故记录下来方便后来者。

0. 目录

      • 1. 概述
      • 2. 操作步骤 - 方法一
      • 3. 操作步骤 - 方法二(推荐)
          • 3.1 SpringBoot1.x
          • 3.2 SpringBoot2.x
      • 4. Links

1. 概述

废话就不说了,直接进入操作步骤环节。

关于Apache Camel如何集成到应用中这里就省略了,笔者本次演示的是监控SpringBoot集成Apache Camel。(推荐方法二,快速建立对于hawtio监控的认识)

2. 操作步骤 - 方法一

  1. 下载 Jolokia。 因为笔者本次介绍采用的是IDE中启动SpringBoot项目,因此下载的是下图中圈出来的版本,有其他需要的童鞋请自行下载相应的版本。(注意:这些包也是可以直接从Maven仓库下载的)
    Apache Camel监控之使用hawtio
  2. 集成第一步中下载的jolokia启动SpringBoot应用。
    # 在IDE的VM arguments中添加如下参数
    -javaagent:${path to agent jar}=port=xxx,host=xxx
               
Apache Camel监控之使用hawtio
  1. 启动SpringBoot应用。

    启动之后访问 http://127.0.0.1:8778/jolokia/ 来验证 jolokia 是否生效。

  2. 下载 hawtio,并启动之(笔者这里采用的JAR启动方式)
    cd ${path to hawtio jar folder}
    java -jar hawtio-app-x.y.0.jar --port 8090
               
    以上命令行启动稍等片刻,hawtio会在默认浏览器中打开 http://localhost:8090/hawtio 地址。
  3. 配置hawtio。 以上步骤成功之后,我们即可在hawtio进行最后一步的配置工作。
    Apache Camel监控之使用hawtio
    上面截图展示的就是在hawtio中增加一个关于jolokia的Connection。
  4. 以上配置完成并测试链接通过后,直接点击所增加的Connection记录右侧的Connect按钮。即可成功看到Camel的监控页面。
    Apache Camel监控之使用hawtio

3. 操作步骤 - 方法二(推荐)

本方法相较于上一种显得更加便捷。

3.1 SpringBoot1.x
  1. 引入如下Maven依赖:
    <dependency> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <!-- 下面的hawtio-springboot 会将其作为传递依赖引入
    <dependency> 
        <groupId>org.jolokia</groupId> 
        <artifactId>jolokia-core</artifactId> 
    </dependency>
    -->
    <dependency>
        <groupId>io.hawt</groupId>
        <artifactId>hawtio-springboot</artifactId>
        <version>1.5.12</version>
    </dependency>
               
  2. 调整配置文件

    application.yml

    management:
      endpoints:
        web:
          exposure:
            #配置暴露端点
            include: hawtio,jolokia
     
    hawtio:
      #关闭hawtio登录权限验证
      authenticationEnabled: false
    
    # 放开actuator权限
    management:
     security:
       enabled: false
               
  3. 测试

    http://{ip}:{port}/hawtio

3.2 SpringBoot2.x
  1. 注意: 确保框架中没有启用注解

    @EnableWebMvc

  2. 引入如下Maven依赖:
    <dependency> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <!-- 下面的hawtio-springboot 会将其作为传递依赖引入
    <dependency> 
        <groupId>org.jolokia</groupId> 
        <artifactId>jolokia-core</artifactId> 
    </dependency>
    -->
    <dependency>
        <groupId>io.hawt</groupId>
        <artifactId>hawtio-springboot</artifactId>
        <version>2.9.1</version>
    </dependency>
               
  3. 调整配置文件

    application.yml

    management:
      endpoints:
        web:
          exposure:
            #配置暴露端点
            include: hawtio,jolokia
     
    hawtio:
      #关闭hawtio登录权限验证
      authenticationEnabled: false
               
  4. 测试

    http://{ip}:{port}/actuator/hawtio

4. Links

  1. jolokia下载地址
  2. hawtio官网
  3. 配置Jolokia监控服务端程序运行状态
  4. Jolokia与Spring JMX监控
  5. how-to-monitor-apache-camel-routes-in-a-java-project-using-hawtio
  6. hawtio - the-camel-plugin-is-not-visible-or-does-not-show-any-camels