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 控制台无法远程访问。
要为 locahost 或 127.0.0.1 以外的主机名或 IP 地址解锁 Fuse 控制台,请按照以下步骤操作:
-
在编辑器中打开
$KARAF_HOME/etc/jolokia-access.xml
文件。 通过将 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.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:
- 点 Connect 选项卡。
- 单击 Remote 选项卡,然后单击 Add connection。
- 键入 名称、Scheme (HTTP 或 HTTPS) 和主机名。
- 单击 Test Connection。
- 点击 Add。
Fuse 控制台会自动探测 localhost 和 127.0.0.1 以外的本地网络接口,并将它们添加到白名单中。因此,您不需要手动将本地机器的地址注册到白名单中。
3.8.5. 设置数据移动首选项
您可以更改以下 Jolokia 首选项,例如,如果要更频繁地刷新 Fuse Console 中显示的数据。请注意,增加数据更新的频率会影响网络流量,并增加对服务器的请求数。
- 更新率 - 轮询到 Jolokia 以获取 JMX 数据之间的周期(默认为 5 秒)。
- 最大深度 - Jolokia 将在返回前将对象放入 JSON 的级别数(默认为 7)。
- 最大集合大小 - 响应中 Jolokia marshals marshals 的最大元素数(默认值为 50,000)。
更改这些设置的值:
在 Fuse 控制台右上角,单击用户图标,然后单击 Preferences。
- 编辑选项,然后单击 Close。
3.8.6. 查看 JVM 运行时信息
要查看 JVM 运行时信息,如系统属性、指标和线程,请单击 Runtime 选项卡。