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 选项卡。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.