中文标题【使用 JMX 界面实时监控】
使用 JMX 界面(Java Management Extensions API ),你可以实时的查看你 Confluence 运行实例的状态。 JMX 使用的对象被称 MBeans (Managed Beans) ,通过这个对象来向外暴露你应用的数据,提供资源的的使用情况,数据库延迟等很多有用的信息和数据,能够帮助你诊断你 Confluence 实例在运行的时候遇到的问题。
这个页面将会指导你如何使用 JConsole 来在你本地监控远程的 Confluence 实例。JConsole 已经包含在 Java Development Kit (JDK) 中了,你也可以使用其他的任何客户端。
这个指南提供了有关 JMX 界面的一些基本的介绍。我们的支持小组能够帮你解决有关 Confluence 的具体问题,但是我们不能帮助你设置 JMX 的远程监控,同时我们也不能帮你解释监控中数据的意义是什么。
使用 JConsole 监控本地 Confluence
如果你遇到了一些特定的问题,或者你仅仅是希望在一个很短的时间内监控你 Confluence 的运行,你可以使用本地监控。本地监控将会对你的服务器性能产生影响,所以我们并不推荐你使用本地监控来长时间的监控你运行的 Confluence 实例。
启动本地监控:
启动 JConsole (你可以在 JDK 安装目录中找到了启动需要的 bin)。
- 选择 本地进程(Local Process)。
选择 Confluence 进程。这个进程被命名为
org.apache.catalina.startup.Bootstrap start
请参考 Using JConsole 来获得有关本地监控的更多有用信息。
使用 JConsole 监控远程 Confluence
针对生产系统中,我们推荐你使用远程监控,这个将不会消耗你远程 Confluence 服务器的资源。
启动远程监控:
添加下面的属性到
setenv.sh
/setenv.bat
文件中,端口你可以定义任何你没有使用的端口。set CATALINA_OPTS=-Dcom.sun.management.jmxremote %CATALINA_OPTS% set CATALINA_OPTS=-Dcom.sun.management.jmxremote.port=8099 %CATALINA_OPTS%
确定你将如何保持你远程连接的安全。请 Remote Monitoring and Management 页面来获得更多的信息。
尽管可以在监控的时候禁用安全授权,我们不推荐你在生产环境下配置使用禁用安全授权。- 启动 JConsole (你可以在 JDK 安装目录中找到了启动需要的 bin)。
- 选择 远程进程(Remote Process)。
- 输入你的主机名和端口(这个端口是你在配置文件中配置的,这个端口不是你 Confluence 运行的端口)。
- 单击 连接(Connect)。
请参考 Using JConsole 来获得有关远程监控的更多有用信息。
Confluence MBeans
你可以使用下面的 Confluence MBeans 来实时查看你 Confluence 实例运行的实时信息。
CacheStatistics
这个 MBean 显示了 Confluence 有关的缓存信息。有关更多的内容请查看 Viewing System Information 页面中的内容。
IndexingStatistics
这个 MBean 显示有关搜索索引的相关信息。这里是一些有用的配置属性。
属性名(Property name) | 功能(Function) | 值(Values) |
---|---|---|
Flushing | 显示当前缓存有没有刷新。 | 布尔值(True/False) |
LastElapsedMilliseconds | 上一次进行索引所消耗的时间。 | 毫秒(Milliseconds) |
TaskQueueLength | 显示任务队列中的数量。 | 整数(Integer) |
ReIndexing | 确定 Confluence 当前是否在进行重新索引。 | 布尔值(True/False) |
SystemInformation
这个 MBean 显示了 Confluence 的版本和已经运行的时间想信息。你也可以通过 Viewing System Information 页面来查看这方面的信息。
属性名(Property name) | 功能(Function) | 值(Values) |
---|---|---|
DatabaseExampleLatency | 显示进行数据库示例查询的延迟时间。 | 毫秒(Milliseconds) |
RequestMetrics
这个 MBean 显示了系统负载和错误页面的相关信息。
属性名(Property name) | 功能(Function) | 值(Values) |
---|---|---|
AverageExecutionTimeForLastTenRequests | 最后 10 个查询执行的平均时间。 | 毫秒(Milliseconds) |
CurrentNumberOfRequestsBeingServed | 这个实例已经执行的查询数量。 | 整数(Integer) |
ErrorCount | Confluence 错误页面的数量。 | 整数(Integer) |
NumberOfRequestsInLastTenSeconds | 最后 10 秒内执行的查询数量 | 整数(Integer) |
MailServer-SMTPServer
这个 MBean 显示了电子邮件发送和失败的相关信息。针对你安装的 Confluence 实例中的每一个系统中配置的 SMTP 邮件服务器,都会有一个独立的 MBean 显示。
属性名(Property name) | 功能(Function) | 值(Values) |
---|---|---|
EmailsAttempted | Confluence 尝试发送的电子邮件数量。 | Integer |
EmailsSent | 成功发送的电子邮件数量。 | Integer |
MailTaskQueue
这个 MBean 显示电子邮件有关的工作情况。
属性名(Property name) | 功能(Function) | 值(Values) |
---|---|---|
ErrorQueueSize | 队列中的错误数量。 | 整数(Integer) |
Flushing | 显示状态(例如:flushing 或不是)。 | 布尔值(True/False) |
FlushStarted | 操作开始的时间。 | 时间(Time) |
RetryCount | 整个操作总计处理已处理的总数。 | 整数(Integer) |
TaskSize | 需要等待发送的电子邮件队列中的消息数量。 | 整数(Integer) |
SchedulingStatistics
这个 MBean 显示当前任务有关的信息,已经计划的任务和这些任务上次运行所花费的时间。
属性名(Property name) | 功能(Function) | 值(Values) |
---|---|---|
AllJobNames | 显示当前任务有关的信息,已经计划的任务和这些任务上次运行所花费的时间。 | 字符串(String) |
CurrentlyRunningJobNames | 显示当前正在执行的计划任务。 | 列表(List) |
其他 MBeans
希望监控 Hibernate 和 Hazelcast(仅针对 Confluence 数据中心)你需要在你的 setenv.sh
/ setenv.bat
文件中添加下面的内容。
set CATALINA_OPTS=-Dconfluence.hazelcast.jmx.enable=true %CATALINA_OPTS% set CATALINA_OPTS=-Dconfluence.hibernate.jmx.enable=true %CATALINA_OPTS%
这个修改将会让 Hibernate 和 Hazelcast 的 MBeans 在你的 JMX 客户端中可查看。
监控高 CPU 消耗线程
JConsole Top Threads Plugin 插件能够帮你监控当前那个线程消耗了最多的 CPU 时间,你可以在启动的时候添加下面的启动参数来启动这个插件:
JConsole -pluginpath /pathto/topthreads.jar