3.8. 连接到远程 Fuse 应用程序

Fuse 控制台使用 Jolokia,这是一种基于代理的 Java 管理扩展(JMX)的方法,要求在客户端上安装额外的软件(代理)。默认情况下,红帽 Fuse 包括一个 jolokia 代理。

使用独立 Fuse 控制台发行版本,您可以连接到已在其中运行的 jolokia 代理(https://jolokia.org/)的远程集成。如果您要连接的进程没有 jolokia 代理,请参阅 jolokia 文档(http://jolokia.org/agent.html)。

3.8.1. 解锁 Fuse 控制台

默认情况下,Apache Karaf 上 Fuse 7 的 Jolokia 被锁定,Fuse 控制台无法远程访问。

要为 locahost127.0.0.1 以外的主机名或 IP 地址解锁 Fuse 控制台,请按照以下步骤操作:

  1. 在编辑器中打开 $KARAF_HOME/etc/jolokia-access.xml 文件。
  2. 通过将 Fuse 控制台添加到 < cors > 部分,注册您要通过 Fuse 控制台访问的主机名或 IP 地址。

    例如,若要从 Fuse 控制台访问主机名 0.0.0.3,请添加

    *<allow-origin>http://0.0.0.3:*</allow-origin>*

    如下所示的行:

    <!--
    
      Cross-Origin Resource Sharing (CORS) restrictions
    
      By default, only CORS access within localhost is allowed for maximum security.
    
      You can add trusted hostnames in the <cors> section to unlock CORS access from them.
    
      -->
    
      <cors>
    
        <!-- Allow cross origin access only within localhost -->
    
        <allow-origin>http*://localhost:*</allow-origin>
    
        <allow-origin>http*://127.0.0.1:*</allow-origin>
    
        <allow-origin>http://0.0.0.3:*</allow-origin>
    
        <!-- Whitelist the hostname patterns as <allow-origin> -->
    
        <!--
    
        <allow-origin>http*://*.example.com</allow-origin>
    
        <allow-origin>http*://*.example.com:*</allow-origin>
    
        -->
    
        <!-- Check for the proper origin on the server side to protect against CSRF -->
    
        <strict-checking />
    
      </cors>
  3. 保存该文件。

3.8.2. 限制远程访问

另外,您可以限制对特定主机和 IP 地址的 Fuse 控制台的远程访问。

您可以根据 HTTP 客户端的 IP 地址授予总体访问权限。指定这些限制:

jolokia-access.xml 文件中,添加或编辑包含一个或多个 < host& gt; 元素的 <remote > 部分。对于 <host > 元素,您可以指定一个 IP 地址、主机名或以 CIDR 格式提供的子网掩码(例如: 10.0.0.0/16 用于来自 10.0 网络的所有客户端)。

以下示例允许从 localhost 以及 IP 地址以 10.0 开头的所有客户端访问。对于所有其他 IP 地址,访问将被拒绝。

<remote>
  <host>localhost</host>
  <host>10.0.0.0/16</host>
</remote>

详情请查看 Jolokia 安全文档(https://jolokia.org/reference/html/security.html)。

3.8.3. 允许连接到远程 Fuse 实例

Fuse Console 的代理 servlet 使用白名单主机保护,默认情况下,Fuse 控制台只能连接到 localhost。如果要将 Fuse 控制台连接到其他远程 Fuse 实例,您需要配置白名单,如下所示:

对于 Apache Karaf,在 etc/system.properties 文件中进行以下配置更改:

hawtio.proxyWhitelist = localhost, 127.0.0.1, myhost1, myhost2, myhost3

3.8.4. 连接到远程 Jolokia 代理

开始之前,您需要知道远程 Jolokia 代理的连接详情(主机名、端口和路径)。

Apache Karaf 上 Fuse 的 Jolokia 代理的默认连接 URL 是 http://<host>:8181/hawtio/jolokia

作为系统管理员,您可以更改这个默认值。

通常,远程连接到 Jolokia 代理的 URL 是打开 Fuse Console 加 /jolokia 的 URL。例如,如果打开 Fuse 控制台的 URL 是 http://<host>:1234/hawtio,则远程连接的 URL 可能是 http://<host>:1234/hawtio/jolokia

要连接到远程 Jolokia 实例,以便您可以检查其 JVM:

  1. Connect 选项卡。
  2. 单击 Remote 选项卡,然后单击 Add connection
  3. 键入 名称Scheme (HTTP 或 HTTPS) 和主机名
  4. 单击 Test Connection
  5. 点击 Add
注意

Fuse 控制台会自动探测 localhost 和 127.0.0.1 以外的本地网络接口,并将它们添加到白名单中。因此,您不需要手动将本地机器的地址注册到白名单中。

3.8.5. 设置数据移动首选项

您可以更改以下 Jolokia 首选项,例如,如果要更频繁地刷新 Fuse Console 中显示的数据。请注意,增加数据更新的频率会影响网络流量,并增加对服务器的请求数。

  • 更新率 - 轮询到 Jolokia 以获取 JMX 数据之间的周期(默认为 5 秒)。
  • 最大深度 - Jolokia 将在返回前将对象放入 JSON 的级别数(默认为 7)。
  • 最大集合大小 - 响应中 Jolokia marshals marshals 的最大元素数(默认值为 50,000)。

更改这些设置的值:

  1. 在 Fuse 控制台右上角,单击用户图标,然后单击 Preferences

    mf preferences

  2. 编辑选项,然后单击 Close

3.8.6. 查看 JVM 运行时信息

要查看 JVM 运行时信息,如系统属性、指标和线程,请单击 Runtime 选项卡。