4.7. 连接到远程 Fuse 应用程序
Fuse 控制台使用 Jolokia,这是一种基于代理的 Java 管理扩展(JMX)方法,需要在客户端上安装额外的软件(代理)。默认情况下,Red Hat Fuse 包含一个 jolokia 代理。
使用独立 Fuse 控制台发布,您可以连接到已在它们中运行的 jolokia 代理(https://jolokia.org/)的远程集成。如果要连接的进程没有 jolokia 代理,请参阅 jolokia 文档(http://jolokia.org/agent.html)。
4.7.1. 解锁 Fuse 控制台
默认情况下,JBoss EAP 上的 Fuse 7 独立 Jolokia 被锁定,并且无法远程访问 Fuse 控制台。
要为 locahost 或 127.0.0.1 以外的主机名或 IP 地址解锁 Fuse 控制台,请按照以下步骤操作:
-
在编辑器中打开
$EAP_HOME/standalone/configuration/jolokia-access.xml
文件。 通过将其添加到 < 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>
- 保存该文件。
4.7.2. 限制远程访问
另外,您可以限制对特定主机和 IP 地址的 Fuse 控制台的远程访问。
您可以根据 HTTP 客户端的 IP 地址授予整个访问权限。指定这些限制:
在 jolokia-access.xml
文件中,添加或编辑包含一个或多个 < host&
部分。对于 gt; 元素的 <remote
><host
> 元素,您可以为来自 10.0 网络的所有客户端指定一个 IP 地址、主机名或子网掩码(例如: 10.0.0.0/16
)。
以下示例允许从 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)。
4.7.3. 允许连接到远程 Fuse 实例
Fuse 控制台的代理 servlet 使用白名单主机保护,默认情况下 Fuse 控制台只能连接到 localhost。如果要将 Fuse 控制台连接到其他远程 Fuse 实例,请在 standalone/configuration/standalone factory.xml
文件中进行以下配置更改:
<property name=hawtio.proxyWhitelist" value="localhost, 127.0.0.1, myhost1, myhost2, myhost3"/>
4.7.4. 连接到远程 Jolokia 代理
开始之前,您需要知道远程 Jolokia 代理的连接详情(主机名、端口和路径)。
Red Hat JBoss EAP 上的 Jolokia 代理的默认连接 URL 是 http://<host>:8080/hawtio/jolokia
。
作为系统管理员,您可以更改此默认值。
通常,远程连接到 Jolokia 代理的 URL 是打开 Fuse 控制台加上 /jolokia
的 URL。例如,如果打开 Fuse 控制台的 URL 是 http://<host>:1234/hawtio
,则远程连接的 URL 可能是 http://<host>:1234/hawtio/jolokia
。
要连接到远程 Jolokia 实例,以便您可以检查其 JVM:
- 点 Connect 标签页。
- 点 Remote 选项卡,然后点 Add connection。
- 键入 Name、Scheme (HTTP 或 HTTPS)以及 主机名。
- 单击 Test Connection。
- 点击 Add。
Fuse 控制台自动探测 localhost 和 127.0.0.1 以外的本地网络接口,并将它们添加到白名单中。因此,您不需要手动将本地计算机的地址注册到白名单中。
4.7.5. 设置数据移动首选项
您可以更改以下 Jolokia 首选项,例如,如果要更频繁地刷新 Fuse 控制台中显示的数据。请注意,增加数据更新的频率会影响网络流量,并增加向服务器发出的请求数量。
- 更新速率 - 轮询到 Jolokia 以获取 JMX 数据之间的周期(默认为 5 秒)。
- 最大深度 - Jolokia 将在返回(默认为 7)前将对象聚合到服务器端的 JSON 级别数。
- 最大集合大小 - Jolokia marshals 在响应中的最大元素数(默认值为 50,000)。
更改这些设置的值:
在 Fuse 控制台右上角,单击用户图标,然后单击 Preferences。
- 编辑选项,然后单击 Close。
4.7.6. 查看 JVM 运行时信息
要查看 JVM 运行时信息,如系统属性、指标和线程,请单击 Runtime 选项卡。