Health Center 配置属性

通过使用配置属性(如用于连接到客户机的端口号),可以修改 Health Center 代理的行为。 属性的格式因属性的指定方式而异。更新开始 如果使用的是 IBM® Bluemix™,那么无法配置作为 Bluemix 运行时环境一部分提供的代理。更新结束

某些属性标记为仅适用于 Java™ 应用程序。这些属性在属于非 Java SDK 的代理的缺省属性文件中不存在。如果在这种情况下添加特定于 Java 的属性,那么该属性将被忽略。

属性格式

属性由用等号 (=) 分隔的属性名称和值组成。 通常,可以在属性文件中设置 Health Center 代理属性。对于 Java 应用程序,还可以在启动代理时在命令行中设置属性。
Java 应用程序的属性格式
属性格式因用于指定该属性的方法而异:
  • 系统属性格式,例如,com.ibm.java.diagnostics.healthcenter.agent.port=1980。 在 Health Center 属性文件中使用该格式,或者将其与 Java 命令的 -D 选项一起使用。
  • -Xhealthcenter 格式,例如,port=1980。 该格式在同时启动代理和应用程序时与 Java 命令的 -Xhealthcenter 选项一起使用,或者作为 Java 命令(用于将代理连接到已在运行的 JVM)的参数。 在该格式中,可以使用冒号 (:) 而不是等号 (=) 来分隔属性名和值。
Node.js 应用程序的属性格式
系统属性格式,例如,com.ibm.diagnostics.healthcenter.mqtt.broker.port=1883
有关设置属性的更多信息,请参阅配置 Health Center 代理

属性

Health Center 包括以下可配置属性:

客户机/代理连接属性

您可以选择用于客户机与代理之间通信的技术。您还可能要设置相应的端口号。

com.ibm.diagnostics.healthcenter.headless(仅限 Java 应用程序)
设置为 on,使代理能够将其收集的数据存储在文件中,而不是将其发送给客户机。要了解更多信息,请参阅 com.ibm.java.diagnostics.healthcenter.data.collection.level 属性的 headless 选项。 缺省值是 off
com.ibm.diagnostics.healthcenter.jmx(仅限 Java 应用程序)
设置为 on,使客户机能够使用 JMX 连接与代理进行通信。缺省情况下,该属性设置为 on
com.ibm.diagnostics.healthcenter.mqtt
设置为 on,使客户机能够使用 MQTT 代理程序与代理进行通信。缺省值对于 IBM SDK Java Technology Edition 是 off,对于 IBM SDK for Node.js 是 on
注: 对于 Java 应用程序,先前的三个选项都会被 com.ibm.java.diagnostics.healthcenter.data.collection.level 属性覆盖。 例如,如果将 com.ibm.java.diagnostics.healthcenter.data.collection.level 属性设置为 headless,那么 com.ibm.diagnostics.healthcenter.jmxcom.ibm.diagnostics.healthcenter.mqtt 属性将设置为 off
com.ibm.diagnostics.healthcenter.mqtt.broker.host
com.ibm.diagnostics.healthcenter.mqtt.broker.port
设置 MQTT 代理程序主机名和端口。
对于 MQTT 客户机/代理连接,这些属性必须与 MQTT 代理程序的主机名和端口号匹配。请参阅您的代理程序文档,以了解有关设置主机名和端口号的信息。
如果属性不匹配,那么客户机和代理将无法使用 MQTT 代理程序彼此通信。缺省值如下所示:
  • com.ibm.diagnostics.healthcenter.mqtt.broker.host=localhost
  • com.ibm.diagnostics.healthcenter.mqtt.broker.port=1883
com.ibm.java.diagnostics.healthcenter.agent.port(仅限 Java 应用程序)
设置 JMX 端口号。
对于 JMX 客户机/代理连接(缺省值),客户机缺省情况下会使用端口 1972 与代理进行通信。如果客户机无法使用端口 1972,那么它会递增该端口号并重新尝试,最多可尝试 100 次。您可以覆盖代理尝试使用的首个端口号。

如果在属性文件中设置了端口号,那么该端口将永久更改。 如果要临时更改端口,请改为在命令行中指定端口。

注: 如果在客户机和代理之间存在防火墙,请确保所需的端口处于打开状态。
com.ibm.java.diagnostics.healthcenter.agent.iiop.port(仅限 Java 应用程序)
设置 IIOP 端口号。
缺省情况下,Health Center 代理使用 IIOP 协议,通过 JMX 连接与 Health Center 客户机进行通信。 使用该协议时,Health Center 客户机会使用第二个端口与运行受监控应用程序的机器上的对象请求代理 (ORB) 进行通信。通常,您无需知道这第二个端口。但是,如果客户机和代理之间存在防火墙,那么您必须知道该端口号才能在防火墙中打开该端口。使用该系统属性指定端口号。
com.ibm.java.diagnostics.healthcenter.agent.transport(仅限 Java 应用程序)
设置用于客户机与代理之间连接的传输协议,可以是 IIOP 或 JRMP。如果将 Health Center V1.3.0 或更高版本与 WebSphere® Application Server for z/OS® 一起使用,请将该属性设置为 jrmp。缺省值是 iiop

安全属性

您可以为客户机/代理连接设置安全级别。

com.ibm.diagnostics.healthcenter.mqtt.broker.user
com.ibm.diagnostics.healthcenter.mqtt.broker.pass
对于 MQTT 客户机/代理连接,这些属性必须与 MQTT 代理程序的用户名和密码匹配。请参阅您的代理程序文档,以了解有关设置这些凭证的信息。
注: 密码将另存为纯文本。
com.ibm.java.diagnostics.healthcenter.agent.authentication.file(仅限 Java 应用程序)
com.ibm.java.diagnostics.healthcenter.agent.authorization.file(仅限 Java 应用程序)
设置 MBean 认证和授权文件位置。
您可以使用 MBean 认证在 Health Center 中确保 JMX 连接安全性。在 Health Center 客户机连接到代理时,此认证要求提供用户名和密码。这些凭证将存储在运行代理的机器上的一个认证文件中。MBean 认证还需要一个认证文件,用于定义认证文件中用户名的访问权。 这些属性用于指定认证和授权文件的位置。
有关 Health Center 安全性的更多信息,请参阅保护 Health Center
com.ibm.java.diagnostics.healthcenter.agent.ssl.keyStore(仅限 Java 应用程序)
com.ibm.java.diagnostics.healthcenter.agent.ssl.keyStorePassword(仅限 Java 应用程序)
com.ibm.java.diagnostics.healthcenter.agent.ssl.keyStoreCertificatePassword(仅限 Java 应用程序)
如果正在使用 SSL 连接,请设置代理的 SSL 密钥库的位置(路径和名称)、密码以及证书密码。 有关 Health Center 安全性的更多信息,请参阅保护 Health Center

代理收集方式属性

这些属性用于定义启动代理的收集方式。例如,您可以将代理设置为立即开始收集数据,或仅在客户机与之连接时收集数据。

com.ibm.java.diagnostics.healthcenter.data.collection.level
该属性具有以下值:
off
指定无客户机连接。
从 Health Center V1.2 开始,您可以在无客户机连接的情况下启动代理。代理会等待客户机连接,这不会对正在运行的应用程序造成任何影响。 当客户机连接到代理时,数据收集就会开始。
full
代理会立即开始收集数据;您无需启动客户机来触发数据收集。 但是,在将客户机连接到代理之前,无法查看该数据。
headless(仅限 Java 应用程序)
指定无外设方式。

代理会立即开始收集数据并将数据存储在文件中,而不是将其发送给客户机。 应用程序结束时,代理将创建名为 healthcenterpid.hcd 的文件,其中 pid 是该代理的进程标识。您以后可以将该文件装入客户机以查看数据。

对于无法将客户机连接到代理的系统,无外设方式非常有用。例如,防火墙限制阻止连接。

要了解以无外设方式运行代理时的限制,请参阅已知限制

inprocess
指定进程内方式。
代理启动,但未连接到 GUI 客户机。未打开网络套接字。必须使用 Health Center API 从代理中检索数据。如果您希望从同一运行时环境进程内监控应用程序,请使用该方式。有关进程内监控的更多信息,请参阅 ConnectionProperties

要了解以进程内方式运行代理时的限制,请参阅已知限制

none
指定不进行监控。
代理启动,但不监控数据。
如果为 com.ibm.java.diagnostics.healthcenter.data.collection.level 属性指定 headless(仅限 Java 应用程序),那么您可以选择指定以下属性来控制 Health Center 创建输出文件的方式:
com.ibm.java.diagnostics.healthcenter.headless.delay.start
设置延迟启动时间(以分钟为单位)。代理会先等待这一时间长度,然后再开始收集数据。缺省值是 0,这指定无延迟。
com.ibm.java.diagnostics.healthcenter.headless.files.max.size
设置以无外设方式创建的每个输出文件的最大大小(以字节为单位)。此大小必须介于 5000000 (5 MB) 与 2000000000 (2GB) 之间。如果设置的值低于 5 MB,那么该属性缺省为 5 MB。如果设置的值大于 2 GB,那么将忽略该属性。 缺省情况下,不设置该属性,并且最大文件大小为 2GB。
com.ibm.java.diagnostics.healthcenter.headless.files.to.keep
设置要保留的输出文件的数量。
Health Center 能够读取的最大文件大小是 2 GB。在无外设方式下运行时,如果 Health Center 收集的数据超出此大小,那么代理会自动创建第二个文件,以此类推。如果您要收集大量数据,那么长时间的无外设运行将产生一个文件集合。缺省情况下,Health Center 只保留最新的 10 个文件以管理磁盘空间。您可以通过使用 com.ibm.java.diagnostics.healthcenter.headless.files.to.keep 属性来覆盖此值。
com.ibm.java.diagnostics.healthcenter.headless.output.directory
指定以无外设方式创建的输出文件的目录。例如:
com.ibm.java.diagnostics.healthcenter.headless.output.directory=/tmp
如果未指定输出文件的目录或者 Health Center 无法写入您选择的目录,那么将改为使用应用程序的当前工作目录。如果 Health Center 无法写入应用程序的当前工作目录,将使用操作系统的缺省临时目录。
com.ibm.java.diagnostics.healthcenter.headless.run.duration
设置用于收集数据的时间(以分钟为单位)。缺省值是 0,这指定在应用程序的整个生命周期内都运行收集。该缺省值还将覆盖暂停持续时间和运行次数的设置。
com.ibm.java.diagnostics.healthcenter.headless.run.number.of.runs
设置运行收集的次数。缺省值是 0,这指定该值无效,运行将持续直至应用程序结束。在每次收集运行结束时,代理都将创建一个名为 healthcenterpid_run_number.hcd 的文件,其中 pid 是代理的进程编号,run_number 标识生成该文件的运行。 例如,healthcenter23453_1.hcd 是进程标识为 23453 的代理第一次运行时生成的文件。
com.ibm.java.diagnostics.healthcenter.headless.run.pause.duration
设置代理在两次收集之间暂停的时间(以分钟为单位)。 缺省值是 0,这指定无暂停。
这些设置用于在正在运行的应用程序的整个生命周期内创建概要文件。 例如,如果将暂停持续时间设置为 5,运行次数设置为 10,运行持续时间设置为 2,那么代理将收集数据 2 分钟,暂停 5 分钟,然后再次收集数据 2 分钟,以此类推,共收集 10 次。

其他属性

com.ibm.diagnostics.healthcenter.data.profiling(仅限 Node.js 应用程序)
指定 Health Center 代理开始收集数据时,是否包含方法概要分析数据。缺省情况下,该属性将设置为 off(不收集任何概要分析数据)。将该属性设置为 on 以启用概要分析数据收集。
注: 在将 Health Center 客户机连接到正在运行的代理之后,您还可以启用或禁用通过该客户机收集概要分析数据。要了解更多信息,请参阅控制生成的数据量
com.ibm.diagnostics.healthcenter.logging.level
修改代理向 stderr 流输出的消息的级别。您可以指定以下某一级别,缺省值是 info
  • none
  • warning
  • info
  • fine
  • finest
  • debug
例如,使用这些消息来监控代理与 MQTT 代理程序间的连接,或监控在将 com.ibm.java.diagnostics.healthcenter.data.collection.level 属性设置为 headless 时有关数据收集运行的信息。例如,当 MQTT 代理程序重新启动,并且代理临时断开连接时,将显示以下消息:
[Tue 21 Oct 2014 14:24:30 BST] com.ibm.diagnostics.healthcenter.mqtt INFO: Connected to broker localhost:1883
[Tue 21 Oct 2014 14:24:45 BST] com.ibm.diagnostics.healthcenter.mqtt WARNING: Connection to broker localhost:1883 has been lost
[Tue 21 Oct 2014 14:25:12 BST] com.ibm.diagnostics.healthcenter.mqtt INFO: Connected to broker localhost:1883
com.ibm.diagnostics.healthcenter.readonly
如果将该属性设置为 on,那么 Health Center 代理将忽略来自 Health Center 客户机的可能会中断受监控应用程序的请求。例如,对于类柱状图数据的请求或用于生成转储文件的请求。可能会在拒绝服务攻击中使用这些功能,因为它们会影响受监控的应用程序。缺省情况下,该属性将设置为 off
com.ibm.diagnostics.healthcenter.mqtt.topic.namespace
com.ibm.diagnostics.healthcenter.mqtt.application.id
用户指定的字符串,用于帮助识别通过 MQTT 代理程序提供的代理。
在 Health Center 客户机中打开新的 MQTT 连接时,该客户机会显示可用代理列表。每个代理均由生成的字符串标识,缺省情况下该字符串具有以下格式:
ibm/healthcenter/agent_ID(host_name:process_ID)
如果共享 MQTT 代理程序(例如,由监控多个应用程序的一人或多人共享),那么此缺省字符串可能不足以标识与每个用户或应用程序相对应的代理。为避免发生这一问题,可通过设置这些属性中的一个或两个属性来修改为代理生成的字符串。所生成的字符串将变为如下所示:
topic.namespace/ibm/healthcenter/agent_ID(application.id)
如果列表中有多个代理,还可以使用这些属性来组织该列表。例如,如果在机器上运行了多个代理,并且您正与其他机器上的用户共享 MQTT 代理程序,那么可以将每个代理的 com.ibm.diagnostics.healthcenter.mqtt.topic.namespace 属性设置为您的机器名。然后,这些代理会归为一组显示在列表中。
com.ibm.java.diagnostics.healthcenter.output.folder(仅限 Java 应用程序)
设置垃圾回收文件位置。
如果启用对垃圾回收数据的收集,那么该数据将存储在一个文件中。 您无法指定该文件的名称,但可以通过使用该属性指定其位置。如果未设置此属性,那么该文件将存储在 user.dir 系统属性指定的目录中。要了解更多信息,请参阅控制垃圾回收信息的收集(仅限 Java 应用程序)
更新开始com.ibm.java.diagnostics.healthcenter.socket.readwrite(仅限 Java 应用程序,运行在 IBM SDK Java Technology Edition V8 或更高版本上)更新结束
更新开始指定 Health Center 代理开始收集数据时,是否包含网络套接字发送和接收数据。缺省情况下,该属性将设置为 off(不收集数据)。将该属性设置为 on 以启用数据收集。更新结束
com.ibm.java.diagnostics.healthcenter.thread.stack.depth(仅限 Java 应用程序)
设置线程堆栈深度。
该属性是一个整数,用于指定针对线程透视图要收集的线程堆栈信息的深度。 缺省设置为 Integer.MAX_VALUE,这会指定收集所有线程堆栈。将该属性设置为 0,以关闭对线程堆栈信息的收集。

属性摘要

下表显示每个属性的摘要。
表 1. Health Center 配置属性的摘要
属性 属性描述 是否仅特定于 Java 或 Node.js 应用程序?
com.ibm.diagnostics.healthcenter.data.profiling 指定是否收集方法概要分析数据 offon。缺省值是 off 仅限 Node.js 应用程序
com.ibm.diagnostics.healthcenter.headless 使代理能够将数据存储在文件中,而不是将其发送给客户机。 offon。缺省值是 off 仅限 Java 应用程序
com.ibm.diagnostics.healthcenter.jmx 使代理能够使用 JMX 连接与客户机进行通信。 offon。缺省值是 on 仅限 Java 应用程序
com.ibm.diagnostics.healthcenter.logging.level 修改代理输出的消息的级别。 nonewarninginfofinefinestdebug。缺省选项为 info 不特定
com.ibm.diagnostics.healthcenter.mqtt 使代理能够使用 MQTT 代理程序与客户机进行通信。 offon。缺省值是 off(对于 IBM SDK Java Technology Edition 中的代理)和 on(对于 IBM SDK for Node.js 中的代理)。 不特定
com.ibm.diagnostics.healthcenter.mqtt.application.id 代理标识字符串中显示的应用程序标识 字符串 不特定
procom.ibm.diagnostics.healthcenter.mqtt.broker.host=value MQTT 代理程序主机名 运行 MQTT 代理程序的机器的主机名。缺省值是 localhost 不特定
com.ibm.diagnostics.healthcenter.mqtt.broker.pass MQTT 用户密码 MQTT 代理程序配置中指定的用户密码。缺省情况下,未设置该属性。 不特定
com.ibm.diagnostics.healthcenter.mqtt.broker.port=value MQTT 代理程序端口 设置 MQTT 代理程序使用的端口号。缺省值是 1883 不特定
com.ibm.diagnostics.healthcenter.mqtt.broker.user MQTT 用户名 MQTT 代理程序配置中指定的用户名。缺省情况下,未设置该属性。 不特定
com.ibm.diagnostics.healthcenter.mqtt.topic.namespace 代理标识字符串中显示的 MQTT 主题名称空间 字符串 不特定
com.ibm.diagnostics.healthcenter.readonly 代理是否忽略来自客户机的可能会中断受监控应用程序的请求 设置为 on 以忽略请求。缺省值是 off 不特定
com.ibm.java.diagnostics.healthcenter.agent.authentication.file=value MBean 认证文件位置 到某文件的绝对或相对路径。 例如,./authentication.txt 仅限 Java 应用程序
com.ibm.java.diagnostics.healthcenter.agent.authorization.file=value MBean 授权文件位置 到某文件的绝对或相对路径。 例如,./authorization.txt 仅限 Java 应用程序
com.ibm.java.diagnostics.healthcenter.agent.iiop.port=value IIOP 端口号 有效端口号。无缺省值。 仅限 Java 应用程序
com.ibm.java.diagnostics.healthcenter.agent.port=value

(或者,在与 -Xhealthcenter 一起使用时,设置为 port=value

端口号 有效端口号。缺省值是 1972 仅限 Java 应用程序
com.ibm.java.diagnostics.healthcenter.agent.ssl.keyStore=value SSL 密钥库位置 到某密钥库文件的绝对或相对路径。例如,./HCAgentKeystore 不特定
com.ibm.java.diagnostics.healthcenter.agent.ssl.keyStoreCertificatePassword=value SSL 密钥库证书密码 仅包含字母或数字的文本字符串。例如 password123。 不特定
com.ibm.java.diagnostics.healthcenter.agent.ssl.keyStorePassword=value SSL 密钥库密码 仅包含字母或数字的文本字符串。例如 password123。 不特定
com.ibm.java.diagnostics.healthcenter.agent.transport=value

(或 transport=value(在与 -Xhealthcenter 一起使用时))

传输协议 iiopjrmp。 缺省值为 iiop 仅限 Java 应用程序
com.ibm.java.diagnostics.healthcenter.data.collection.level=value

(或 level=value(在与 -Xhealthcenter 一起使用时))

收集级别 fulloffheadlessinprocessnone。缺省值为 full 仅限 Java 应用程序
com.ibm.java.diagnostics.healthcenter.headless.delay.start=value 延迟启动时间 以分钟为单位的时间。缺省值是 0 仅限 Java 应用程序
com.ibm.java.diagnostics.healthcenter.headless.files.max.size=value 输出文件的最大大小 字节大小,介于 5000000 (5 MB) 与 2000000000 (2 GB) 之间。缺省情况下,不设置该属性,这样会指定最大大小 2 GB。小于 5 MB 的值会更改为 5 MB。大于 2 GB 的值将被忽略。 仅限 Java 应用程序
com.ibm.java.diagnostics.healthcenter.headless.files.to.keep=value 要保留的输出文件的数量 一个整数。缺省值是 10。 使用 0 可保留所有文件。 仅限 Java 应用程序
com.ibm.java.diagnostics.healthcenter.headless.output.directory=value 输出文件的位置 到某目录的绝对或相对路径。 缺省值为应用程序的工作目录;如果 Health Center 无法写入该目录,将为操作系统的缺省临时目录。 仅限 Java 应用程序
com.ibm.java.diagnostics.healthcenter.headless.run.duration=value 运行持续时间 以分钟为单位的时间。缺省值是 0 仅限 Java 应用程序
com.ibm.java.diagnostics.healthcenter.headless.run.number.of.runs=value 运行次数 一个整数。缺省值是 0 仅限 Java 应用程序
com.ibm.java.diagnostics.healthcenter.headless.run.pause.duration=value 暂停持续时间 以分钟为单位的时间。缺省值是 0 仅限 Java 应用程序
com.ibm.java.diagnostics.healthcenter.output.folder property=value 垃圾回收文件位置 到某目录的绝对或相对路径。 无缺省值。 不特定
更新开始com.ibm.java.diagnostics.healthcenter.socket.readwrite=value更新结束 更新开始是否收集网络发送和接收数据。更新结束 更新开始offon。缺省值是 off更新结束 更新开始仅限运行在 IBM SDK Java Technology Edition V8 或更高版本上的 Java 应用程序更新结束
com.ibm.java.diagnostics.healthcenter.thread.stack.depth=value 线程堆栈深度 整数或 Integer.MAX_VALUE(缺省值)。使用 0 以关闭对线程调用堆栈的收集。 仅限 Java 应用程序


© Copyright IBM Corporation 2007, 2015.
© Copyright 1997, 2015, Oracle and/or its affiliates.
US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.