在 Karaf Standalone 上管理 Fuse

Red Hat Fuse 7.11

使用 Fuse 控制台管理 Fuse 应用程序

Red Hat Fuse Documentation Team

摘要

当您部署 Fuse 应用程序时,您可以使用 Fuse 控制台监控并与红帽 Fuse 集成进行交互。

前言

Red Hat Fuse 提供两个企业监控工具来查看和管理 Fuse 集成:

  • Fuse 控制台是一个基于 Web 的控制台,您可以从浏览器访问以监控和管理正在运行的 Fuse 容器。Fuse 控制台基于 Hawtio 开源软件(https://hawt.io/)。本指南介绍了如何使用 Fuse 控制台。
  • Prometheus 为 Fuse 发行版存储系统和集成级别指标。您可以使用图形分析界面(如 Grafana)来查看和分析存储的历史数据。有关使用 Prometheus 的更多信息 ,请参阅 Prometheus 文档

本指南的受众是 Apache Karaf 管理员上的红帽 Fuse。本指南假定您熟悉红帽 Fuse 平台、Apache Camel 和组织处理要求。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看我们的 CTO Chris Wright 信息

第 1 章 关于 Fuse 控制台

Red Hat Fuse Console 是一个基于 HawtIO 开源软件的 Web 控制台。如需支持的浏览器列表,请转至 支持的配置

Fuse 控制台提供了一个中央界面,用于检查和管理一个或多个部署的 Fuse 容器的详细信息。您还可以监控红帽 Fuse 和系统资源,执行更新,以及启动或停止服务。

当您安装红帽 Fuse 独立或在 OpenShift 中使用 Fuse 时,可以使用 Fuse 控制台。您可以在 Fuse 控制台中查看和管理的集成取决于正在运行的插件。可能的插件包括:

  • Camel
  • JMX
  • OSGI
  • Runtime
  • 日志

第 2 章 访问 Fuse 控制台

要访问 Apache Karaf 单机的 Fuse 控制台,请按照以下步骤操作。

前提条件

在 Karaf 容器上安装 Fuse。有关逐步说明,请参阅在 Apache Karaf 上安装

流程

  1. 在命令行中进入安装 Red Hat Fuse 的目录,并运行以下命令启动 Fuse standalone:

    ./bin/fuse

    Karaf 控制台启动并显示版本信息、默认 Fuse 控制台 URL 和常用命令列表。

  2. 在浏览器中,键入要连接到 Fuse 控制台的 URL。例如: http://localhost:8181/hawtio
  3. 在登录页面中,输入您的用户名和密码,然后单击 Log In

默认情况下,Fuse Console 显示主页。左侧导航标签页表示运行的插件。

第 3 章 保护 Fuse 控制台

保护 Apache Karaf 上的 Fuse 控制台:

  • 在部署到 AWS 时禁用 Fuse 控制台代理 servlet

    如果要将独立 Fuse 应用程序部署到 Amazon Web Services(AWS),您应该通过将 hawtio.disableProxy 系统属性设置为 true 来禁用 Fuse Console 的代理 servlet。

    注意

    当您禁用 Fuse 控制台代理 servlet 时,Fuse Console 的 Connect 选项卡被禁用,您无法从 Fuse 控制台连接到其他 JVM。如果要在 AWS 上部署多个 Fuse 应用程序,则必须为每个应用程序部署 Fuse 控制台。

  • 将 HTTPS 设置为所需协议

    您可以使用 hawtio.http.strictTransportSecurity 属性来要求 Web 浏览器使用安全 HTTPS 协议来访问 Fuse 控制台。此属性指定尝试使用 HTTP 访问 Fuse 控制台的 Web 浏览器必须自动转换请求以使用 HTTPS。

  • 使用公钥来保护响应

    您可以使用 hawtio.http.publicKeyPins 属性来确保 HTTPS 协议的安全,方法是指示 Web 浏览器将特定的加密密钥与 Fuse 控制台关联,以减少"man-in-the-the-the-the-the-middle"攻击的风险。

  • 启用 SSL/TLS 安全性

    对于 Fuse 控制台,默认不启用 SSL/TLS 安全性。建议您在 Fuse 控制台中启用 SSL/TLS 安全性来保护用户名/密码凭证不受 snooping。

  • 实施 Red Hat Single Sign On
  • 控制用户访问权限

    允许经过身份验证的用户执行的操作取决于分配给该用户的角色(或角色),如 表 4.1 “Karaf 独立基于角色的访问权限” 中列出的。

流程

  1. 要将 HTTPS 设置为所需的协议,请在 $KARAF_HOME/etc/system.properties 文件中设置 hawtio.http.strictTransportSecurity 属性,如下例所示:

    hawtio.http.strictTransportSecurity = max-age=31536000; includeSubDomains; preload
  2. 要使用公钥来保护响应,请设置 $KARAF_HOME/etc/system.properties 文件中的 hawtio.http.publicKeyPins 属性,如下例所示:

    hawtio.http.publicKeyPins = pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs"; max-age=5184000; includeSubDomains
  3. (仅用于在 AWS 上部署)要禁用 Fuse Console 的代理 servlet,在 $KARAF_HOME/etc/system.properties 文件中将 hawtio.disableProxy 属性设为 true,如下例所示:

    hawtio.disableProxy = true;
  4. 有关如何启用 SSL/TLS 安全性的详细信息,请参阅 Apache Karaf 安全指南中的"为 Undertow 启用 SSL/TLS"一节中的"启用 SSL/TLS"。https://access.redhat.com/documentation/zh-cn/red_hat_fuse/7.11/html-single/apache_karaf_security_guide/index
  5. 有关如何使用红帽单点登录保护 Fuse 控制台的详情,请参考 Red Hat Single Sign-on 保护 应用程序和服务指南中的有关保护 Hawtio 管理控制台的安全部分
  6. 要确保用户具有必要的用户角色授权来执行用户需要执行的 Fuse Console 操作,请按照以下步骤设置用户角色:

    1. 在编辑器中打开 Red Hat Fuse etc/users.properties 文件。
    2. 为用户名、密码和角色添加条目。

      例如,以下条目在 etc/users.properties 文件中定义 admin 用户,并授予 admin 角色。

      admin = secretpass,admin
    3. 保存该文件。

其他资源

  • 有关 hawtio.http.strictTransportSecurity 属性语法的描述,请查看 HTTP Strict Transport Security(HSTS) 响应标头的描述页。
  • 有关 hawtio.http.publicKeyPins 属性语法的描述,包括如何提取 Base64 编码公钥的说明,请参阅 HTTP Public Key Pinning 响应标头的描述页面。

第 4 章 基于角色的访问参考

允许经过身份验证的用户执行的操作取决于分配给该用户的角色(或角色),如 表 4.1 “Karaf 独立基于角色的访问权限” 中列出的。

表 4.1. Karaf 独立基于角色的访问权限

操作adminManagerViewer

登录/注销

Y

Y

Y

查看帮助主题

Y

Y

Y

设置用户首选项

Y

Y

Y

connect

   

发现并连接到远程集成

Y

Y

Y

发现并连接到本地集成

Y

Y

Y

Camel

   

查看所有正在运行的 Camel 应用程序

Y

Y

Y

启动、挂起、恢复和删除 Camel 上下文

Y

Y

 

发送消息

Y

Y

 

添加端点

Y

Y

 

查看路由、路由图和运行时统计

Y

Y

Y

启动和停止路由

Y

Y

 

删除路由

Y

Y

 

JMX

   

更改属性值

Y

Y

 

在基于时间的图表中选择并查看属性

Y

Y

Y

查看操作

Y

Y

Y

OSGI

   

查看捆绑包、功能、软件包、服务、服务器、框架和配置

Y

Y

Y

添加和删除捆绑包

Y

Y

 

添加配置

Y

Y

 

安装和卸载功能

Y

  

Runtime

   

查看系统属性、指标和线程

Y

Y

Y

日志

   

查看日志

Y

Y

Y

其他资源

有关基于角色的访问控制的更多信息,请参阅 部署到 Apache Karaf

第 5 章 自定义 Fuse 控制台品牌

您可以使用 Fuse Console 品牌插件来自定义 Fuse 控制台品牌信息,如标题、徽标和登录页面信息。

默认情况下,Fuse Console 品牌在位于 Fuse Console WAR 文件中的 hawtconfig.json 中定义(karaf-install-dir/system/hawt/hawtio-war/<version>/hawtio-war-<version>.war。当您实施 Fuse 控制台品牌插件时,您可以使用您自己的自定义品牌覆盖默认品牌。

流程

  1. https://github.com/hawtio/hawtio/tree/master/examples/branding-plugin 下载品牌插件示例到您选择的本地目录。
  2. 在您选择的编辑器中,打开 Fuse Console branding 插件的 src/main/webapp/plugin/brandingPlugin.js 文件,以自定义 Fuse 控制台品牌。

    您可以更改 表 A.1 “Fuse 控制台配置属性” 中列出的配置属性的值。

  3. 保存您的更改。
  4. 在您选择的编辑器中,打开 Fuse Console branding 插件的 pom.xml 文件到其 < parent> 部分:

    <parent>
        <groupId>io.hawt</groupId>
        <artifactId>project</artifactId>
        <version>2.9-SNAPSHOT</version>
        <relativePath>../..</relativePath>
      </parent>
  5. 编辑 &lt ;parent&gt; 部分,如下所示:

    1. 更改 < version& gt; 属性的值,使其与 Karaf 安装中的 Fuse 版本匹配。例如,如果您的 Fuse on Karaf 安装目录名称为 2.0.0.fuse-760015,请将版本设置为 2.0.0.fuse-760015
    2. 删除 &lt ;relativePath>../..</relativePath> 行。

      例如:

      <parent>
          <groupId>io.hawt</groupId>
          <artifactId>project</artifactId>
          <version> 2.0.0.fuse-760015</version>
            </parent>
  6. 在终端窗口中,运行以下命令构建 branding-plugin 项目:

    mvn clean install
  7. 如果 Fuse 尚未运行,请运行以下命令启动它:

    Linux/Unix: bin/fuse

    Windows: bin\fuse.bat'

  8. 在 Karaf CLI 提示符下,键入以下命令来安装 Fuse Console 品牌插件(其中 &lt ;version& gt; 是您的 Fuse 安装上的版本):

    Linux/Unix: install -s mvn:io.hawt/branding-plugin/<version>/war

    Windows: install -s mvn:io.hawt\branding-plugin\<version>\war

  9. 在 Web 浏览器中,使用步骤 7 返回的 start 命令的 URL 打开 Fuse 控制台(默认 URL 为 http://localhost:8181/hawtio/)。
注意

如果您已在网页浏览器中运行 Fuse 控制台,则品牌将存储在浏览器的本地存储中。要使用新的品牌设置,您必须清除浏览器的本地存储。

第 6 章 确保数据在 Fuse 控制台中正确显示

如果 Fuse Console 中的队列和连接缺少队列、缺失的连接或显示不一致的图标,请调整 Jolokia 集合大小参数,用于指定 Jolokia marls 中 Jolokia marls 的数组中的最大元素数量。

流程

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

    mf preferences

  2. 增加 Maximum collection size 选项的值(默认值为 50,000)。
  3. 单击 Close

第 7 章 禁用 Fuse 控制台

您可以在 Karaf 上禁用 Fuse 控制台,使其不能被所有用户访问,而不影响任何其他组件。

流程

  1. 要确定 hawtio-web 捆绑包 ID,请使用以下命令列出 Fuse 控制台使用的 Fuse 捆绑包:

    oss:list | grep hawtio

  2. 要停止捆绑包,请使用 osgi:stop 命令。例如,如果 hawtio :: Web 控制台 捆绑包的 ID 为 246,则输入此命令:

    OSGi:停止 246

捆绑包进入已解析状态,您无法再访问 Fuse 控制台。

其他资源

有关管理捆绑包的更多信息,请参阅 部署到 Apache Karaf 中的"Lifecycle Management"章节。

第 8 章 连接到远程 Fuse 应用程序

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

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

8.1. 解锁 Fuse 控制台

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

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

  1. 在编辑器中打开 $KARAF_HOME/etc/jolokia-access.xml 文件。
  2. 通过将您要添加到 < cors > 部分,为您要通过 Fuse 控制台访问的 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 > 元素的 <remote > 部分。对于 <host > 元素,您可以指定 CIDR 格式提供的 IP 地址、主机名或子网掩码(例如: 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

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

8.4. 连接到远程 Jolokia 代理

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

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

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

通常,远程连接到 Jolokia 代理的 URL 是打开 Fuse 控制台加上 /jolokia 的 URL。例如,如果打开 Fuse Console 的 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 以外的本地网络接口,并将它们添加到白名单中。因此,您不需要手动将本地机器的地址注册到白名单中。

8.5. 设置数据移动首选项

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

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

要更改这些设置的值:

  1. 在 Fuse Console 右上角,单击用户图标,然后单击 首选项

    mf preferences

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

8.6. 查看 JVM 运行时信息

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

第 9 章 查看并管理 Apache Camel 应用程序

在 Fuse Console 的 Camel 选项卡中,您可以查看和管理 Apache Camel 上下文、路由和依赖项。

您可以查看以下详情:

  • 所有正在运行的 Camel 上下文的列表
  • 每个 Camel 上下文的详细信息,如 Camel 版本号和运行时静态
  • 每个 Camel 应用程序中的所有路由列表及其运行时统计
  • 运行的路由的图形表示以及实时指标

您还可以通过以下方式与 Camel 应用程序交互:

  • 启动和暂停上下文
  • 管理所有 Camel 应用程序及其路由的生命周期,以便您可以重新启动、停止、暂停、恢复等。
  • 对正在运行的路由进行实时跟踪和调试
  • 浏览和将消息发送到 Camel 端点

前提条件

只有在连接到使用一个或多个 Camel 路由的容器时,Camel 选项卡才可用。

9.1. 启动、挂起或删除上下文

  1. Camel 标签页的树视图中,单击 Camel 上下文
  2. 选中列表中一个或多个上下文旁边的框。
  3. StartSuspend
  4. 删除上下文:

    1. 停止上下文。
    2. 单击 ellipse 图标,然后从下拉菜单中选择 Delete
注意

当您删除上下文时,会从部署的应用程序中将其删除。

9.2. 查看 Camel 应用程序详情

  1. Camel 标签页的树视图中,点 Camel 应用程序。
  2. 若要查看应用属性和值的列表,请单击 Attributes
  3. 要查看应用程序属性的图形表示,请点击 Chart,然后点 Edit 来选择要在 chart 中看到的属性。
  4. 要查看 inflight 和 blocked Exchanges,点 Exchanges
  5. 要查看应用程序端点,请点击 Endpoints。您可以根据 URL路由 ID方向 过滤列表。
  6. 要查看、启用和禁用与 Camel 内置类型转换机制相关的统计信息,用于将消息正文和消息标头转换为不同的类型,请点击 Type Converters
  7. 要查看并执行 JMX 操作,如从 XML 添加或更新路由或查找类路径中所有可用的 Camel 组件,请单击 运营

9.3. 查看 Camel 路由列表并与之交互

  1. 查看路由列表:

    1. Camel 选项卡。
    2. 在 tree 视图中,点击应用程序的路由文件夹:

      mf list of routes

  2. 要启动、停止或删除一个或多个路由:

    1. 选中列表中一个或多个路由旁边的框。
    2. StartStop
    3. 要删除路由,您必须首先停止该路由。然后点击 ellipse 图标,然后从下拉菜单中选择 Delete

      mf delete route

      注意
      • 当您删除路由时,您可以从部署的应用程序中将其删除。
      • 您也可以在树视图中选择特定的路由,然后单击右上角菜单启动、停止或删除它。
  3. 要查看路由的图形图,请单击 Route 图表
  4. 要查看 inflight 和 blocked Exchanges,点 Exchanges
  5. 要查看端点,请单击 Endpoints。您可以根据 URL、Route ID 和方向过滤列表。
  6. Type Converters 查看、启用和禁用与 Camel 内置类型转换机制相关的统计信息,该机制用于将消息正文和消息标头转换为不同的类型。
  7. 与特定路由交互:

    1. Camel 标签页的树视图中,选择一个路由。
    2. 要查看路由属性和值的列表,请单击 Attributes
    3. 要查看路由属性的图形表示,请点击 Chart。您可以点击 Edit 来选择要在 chart 中看到的属性。
    4. 要查看 inflight 和 blocked Exchanges,点 Exchanges
    5. 点击 Operations 在路由上查看并执行 JMX 操作,如转储路由为 XML 或获取路由的 Camel ID 值。
  8. 跟踪通过路由的消息:

    1. Camel 标签页的树视图中,选择一个路由。
    2. 选择 Trace,然后单击 Start tracing
  9. 将信息发送到路由:

    1. Camel 标签页的树视图中,打开上下文的端点文件夹,然后选择端点。
    2. Send 子选项卡。
    3. 以 JSON 或 XML 格式配置消息。
    4. Send
    5. 返回路由的 Trace 选项卡,以查看通过路由的消息流。

9.4. 调试路由

  1. Camel 标签页的树视图中,选择一个路由。
  2. 选择 Debug,然后单击 Start debug
  3. 要添加断点,请在图表中选择节点,然后点 Add breakpoint。一个红色点会出现在节点中:

    mf breakpoint

    节点添加到 breakpoints 列表中:

    mf breakpointlist

  4. 点击下箭头以向下一节点或 Play 按钮恢复运行路由。
  5. 单击 暂停 按钮,以暂停路由的所有线程。
  6. 完成后点 Stop debug。所有断点都会被清除。

第 10 章 查看并管理 JMX 域和 MBeans

Java 管理扩展(JMX)是一种 Java 技术,可让您在运行时动态管理资源(服务、设备和应用程序)。资源由名为 MBeans(managed Bean)的对象表示。您可以在创建、实施或安装资源后立即管理和监控资源。

借助 Fuse 控制台上的 JMX 插件,您可以查看和管理 JMX 域和 MBeans。您可以查看 MBean 属性、运行命令并创建显示 MBeans 统计信息的 chart。

JMX 选项卡提供活动 JMX 域和 MBeans 在文件夹中组织的一个树视图。您可以查看 MBeans 的详细信息并执行命令。

流程

  1. 查看并编辑 MBean 属性:

    1. 在树视图中,选择一个 MBean。
    2. 单击 Attributes 选项卡。
    3. 点 属性查看其详情。
  2. 执行操作:

    1. 在树视图中,选择一个 MBean。
    2. Operations 选项卡,展开列出的操作之一。
    3. Execute 运行操作。
  3. 查看 chart:

    1. 在树视图中,选择一个项目。
    2. Chart 选项卡。

第 11 章 查看并管理 Quartz 计划

Quartz(http://www.quartz-scheduler.org/)是丰富的开源作业调度库,您可以在大多数 Java 应用程序中集成。您可以使用 Quartz 为执行作业创建简单或复杂的计划。作业定义为标准 Java 组件,可虚拟执行它要执行的操作。

如果您的 Camel 路由部署 camel-quartz2 组件,则 Fuse 控制台会显示 Quartz 选项卡。请注意,您可以通过 JMX 树视图来访问 Quartz mbeans。

流程

  1. 在 Fuse Console 中,单击 Quartz 选项卡。

    Quartz 页面包含 Quartz Schedulers 和 SchedulerTriggersJobs 选项卡的树状视图。

  2. 要暂停或启动调度程序,请单击 Scheduler 选项卡上的按钮。
  3. Triggers 选项卡查看决定作业何时运行的触发器。例如,触发器可在某一天(到毫秒)时指定启动作业,也可以指定天数或在特定时间重复指定的次数。

    • 要过滤触发器列表,请从下拉列表中选择 StateGroupNameType。然后,您可以通过在 fill-on 字段中选择或键入 来进一步过滤列表。
    • 要暂停、恢复、更新或手动触发触发器,请单击 Action 列中的选项。
  4. Jobs 标签页,查看正在运行的作业列表。您可以在表中对列表进行排序: GroupNameDurableRecoverJob ClassNameDescription

第 12 章 查看并管理您的 OSGI 环境

对于 Apache Karaf 独立发行版,您可以查看并管理红帽 Fuse OSGi 环境。您可以查看和管理容器捆绑包、特性和配置,以及 Java 软件包和 OSGi 服务。

OSGi 选项卡包含一系列带有每个容器组件选项的子选项卡:

捆绑包(bundle)
安装的捆绑包列表。您可以安装和卸载捆绑包、启动和停止捆绑包,并编辑捆绑包属性。您还可以过滤列表并在列表和网格视图间进行切换。
功能
可用功能列表。您可以安装和卸载功能或功能存储库,并深入查看功能详情。
软件包
已安装的 Java 软件包列表。您可以查看软件包版本和相关捆绑包。
服务
正在运行的服务列表。您可以查看服务 ID、关联的捆绑包和对象类。
声明性服务
声明性 OSGi 服务列表。您可以查看服务状态并深入查看服务详情。您还可以激活和取消激活服务。
Server
在只读模式下有关本地或远程主机的详细信息。
框架
容器 OSGi 框架的配置选项。您可以设置框架的启动级别,以及初始捆绑包的启动级别。
配置
配置对象列表。您可以查看每个对象的状态并深入查看或编辑对象详情。您还可以创建新配置对象。

第 13 章 查看诊断

使用 Diagnostics 选项卡,通过 JVM DiagnosticCommand 和 HotspotDiangostic 接口查看有关 JVM 的诊断信息。

注意

这个功能类似于 Java Mission Control(jmc)或命令行工具 jcmd 中的 Diagnostic Commands 视图。该插件在某些情况下可以提供对应的 jcmd 命令。

流程

  1. 要检索载入类的实例数量及其所需字节数,请点击 Class Histogram。如果操作重复,则选项卡会显示自上次运行以来的区别。
  2. 若要查看 JVM 诊断标志设置,请单击 JVM 标志
  3. 对于正在运行的 JVM,您还可以修改标志设置。

其他资源

支持的 JVM 依赖于平台,更多信息可进入以下源之一:

第 14 章 查看线程

您可以查看和监控线程的状态。

流程

  1. 单击 Runtime 选项卡,然后单击 Threads 子选项卡。Threads 页面列出了活跃的线程和每个线程的堆栈追踪详情。默认情况下,线程列表以降序显示所有线程。
  2. 要通过增加 ID 对列表进行排序,点 ID 列标签。
  3. (可选)按线程状态(如 Blocked)或线程名称过滤列表。
  4. 要深入查看特定线程的详细信息,如锁定类名称和该线程的完整堆栈追踪,请点击 Actions 列中。

第 15 章 查看日志条目

您可以在 Logs 选项卡中查看 Red Hat Fuse 的日志条目。

前提条件

当 Java 应用程序包含 Log MBean 时,Logs 选项卡可用。

流程

  1. 要查看日志条目列表,请点击 Log Entries 选项卡。

    默认情况下,列表以升序显示日志条目。

    您可以深入到每个日志条目中,以查看日志条目的详细信息。

  2. 要过滤日志列表以显示特定日志类型,请单击 Action Bar。您可以根据文本字符串或日志级别过滤日志条目部分。
  3. 要更改 Fuse 控制台默认设置:

    1. 在 Fuse Console 右上角,单击用户图标,然后从下拉菜单单击 首选项

      mf preferences

    2. 要更改默认排序顺序,选择 Server Logs,然后单击日志条目链接以深入查看日志条目的详细信息,如捆绑包名称、线程和完整消息文本。
    3. 另外,您还可以自定义这些设置来存储日志消息:

      • 在 Fuse 控制台中保留的日志声明数量(默认值为 100)。
      • 全局日志级别: INFO (默认)、OFF、ERRERR、WARN 和 DEBUG。
      • 包括 hawtio-oauthhawtio-core-utils 的子级消息。
    4. 要将 Fuse Console Logs 设置重置为默认值,请点 ResetReset 设置

第 16 章 启用 Prometheus 指标

Prometheus 是一个开源系统和服务监控与警报工具包,可用于监控独立 Apache Karaf 容器中部署的服务。Prometheus 以给定间隔从配置的服务收集和存储指标,评估规则表达式,显示结果,并在指定条件变为 true 时触发警报。

重要

Red Hat support for Prometheus 仅限于 Red Hat 产品文档中提供的设置和配置建议。

Prometheus 使用在客户端上安装和配置的 "exporters",以向 Prometheus 格式公开端点。此端点是一个 HTTP 接口,提供指标列表和指标的当前值。Prometheus 定期提取每个目标定义的端点,并将收集的数据写入其数据库。Prometheus 会延长数据,而不只收集当前正在运行的会话。Prometheus 存储数据,以便您可以视觉化呈现并在数据上运行查询。

16.1. 从独立 Apache Karaf 容器启用指标导出

Prometheus 使用配置文件 https://raw.githubusercontent.com/jboss-fuse/application-templates/master/prometheus/prometheus-config.yml,其中包含由 Camel 公开的指标。

注意

您可以识别的指标仅限于在 JMX 中提供的指标。

您必须部署一个 Fuse 应用程序,才能生成 Apache Camel 指标。

流程

使用命令行从独立 Apache Karaf 容器启用 Prometheus 指标导出:

  1. 打开命令提示符,并确保您位于 Apache Karaf 安装的 etc/ 目录中。
  2. 键入以下命令,从 etc/ 目录中的示例文件创建 Prometheus 配置文件:

    cp prometheus-config.yml-example prometheus-config.yml
  3. exporter 只有在使用 fusefuse.bat 命令启动 Fuse 时可用:在 Linux/Unix 或 bin\fuse.bat 上运行 bin/fuse.bat。
  4. 当 Fuse 重启时,您可以通过打开 Web 浏览器来查看公开的指标 :http://localhost:9779
注意

另外,您可以从命令行更改 KARAF_PROMETHEUS_PORTKARAF_PROMETHEUS_CONFIG 配置变量的默认值。

16.2. 配置 Prometheus 服务器以从 Apache Karaf 容器中提取公开的指标

要让 Prometheus 服务器从 Apache Karaf 容器中提取指标,必须将公开指标的端点添加到 Prometheus 配置文件的 targets 属性中。

流程

  1. 进入 Prometheus 安装目录中的 /prometheus.yml 配置文件。
  2. 添加 Apache Karaf 端点以提取:

    scrape_configs:
      - job_name: 'prometheus'
    
        # metrics_path defaults to '/metrics'
        # scheme defaults to 'http'.
        static_configs:
        - targets: ['localhost:9779']

附录 A. Fuse 控制台配置属性

默认情况下,Fuse 控制台配置在 hawtconfig.json 文件中定义。您可以自定义 Fuse 控制台配置信息,如标题、徽标和登录页面信息。

表 A.1 “Fuse 控制台配置属性” 提供属性的描述,并列出了每个属性是否需要值。

表 A.1. Fuse 控制台配置属性

属性名称默认值 描述必需?

关于

标题

Red Hat Fuse Management Console

在 Fuse Console 的 About 页面中显示的标题。

必填

 

productInfo

空值

有关 Fuse 控制台的 About 页面的产品信息。 

选填

 

additionalInfo

空值

在 Fuse Console 的 About 页面中显示任何其他信息。 

选填

 

版权

空值

在 Fuse Console 的 About 页面中显示版权信息。 

选填

 

imgSrc

img/Logo-RedHat-A-Reverse-RGB.png

出现在 Fuse 控制台的 About 页面中的镜像。 

必填

品牌

appName

Red Hat Fuse Management Console

应用程序的名称。此名称显示在 Fuse Console 的标题栏中。

必填

 

appLogoUrl

img/Logo-Red_Hat-Fuse-A-Reverse-RGB.png

在 Fuse Console }navigation 栏中显示的应用程序徽标镜像文件的路径。该值可以是相对于 Hawtio 状态 URL 或绝对 URL 的路径。

必填

 

CSS

 

外部 CSS 风格表的 URL,可用于编写应用程序。它可以是路径,相对于 Hawtio 状态 URL,也可以是一个绝对 URL。

选填

 

companyLogoUrl

img/Logo-RedHat-A-Reverse-RGB.png

您的公司徽标镜像文件的路径。 

必填

 

Favicon

 

favicon 的 URL,通常显示在 Web 浏览器选项卡中。它可以是路径,相对于 Hawtio 状态 URL,也可以是一个绝对 URL。

选填

login

description

空值

在 Fuse 控制台登录页面中显示的描述性文本(例如 http://localhost:8181/hawtio)。

选填

 

links

[ ]

指定 "url""text" 对的数组,以向页面提供附加链接,以便获取更多信息或帮助。

选填

disabledRoutes

none

[ ]

在控制台中禁用特定路径(如插件)。不要更改本节。OpenShift 以外的发行版本都不支持任何更改。

选填

法律通告

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.