2. 在 JVM 列表页面添加多个要监控的 JVM。
本地虚拟机:是指和finderweb运行在同一台机器,同一个用户下的其他 JVM,当然也可以监控finderweb自己。
远程虚拟机:是指和finderweb运行在不同的机器上的其他 JVM,远程 JVM 必须开启 JMX 才能连接。
由于被监控的 JVM 可能会重启,所以Finderweb会每隔3分钟扫描内存中的连接池,如果某个连接已经中断,则尝试重建。
本地虚拟机连接重建:扫描本地正在运行的 JVM,如果匹配某个配置的条件则建立连接。
本地虚拟机匹配:由于 JVM 每次启动的进程ID都不同,所以无法通过配置 PID 来实现监控。Finderweb通过配置 JVM 启动时的命令行参数中的关键字进行匹配。
例如:某个Tomcat实例启动时的命令行参数包含了Tomcat的根路径,如:-Djava.util.logging.config.file=D:\Tomcat-8.5.11\conf\logging.properties
则对应的 JVM 的关键字可以配置为:Tomcat-8.5.11,系统在查找本地虚拟机时根据配置的关键字查找 JVM 的启动参数,如果匹配则加入到监控中。
更详细的帮助说明请参考 系统设置 - JVM 监控 中的帮助。
JVM 监控原理
了解Finderweb中JVM监控的实现原理有助于更好的做监控配置。
Finderweb中JVM监控是基于 JMX(Java Management Extensions,即Java管理扩展) 实现的,其中 JVM 监控包括本地 JVM 监控和远程 JVM 监控。
本地 JVM: 是指和finderweb运行于同一台机器上的其他 JVM,例如:在一台机器上有两个Tomcat在运行,这就是两个 JVM。Linux系统还有一个条件是这个 JVM 必须得是同一个操作系统用户启动的。
远程 JVM: 是指运行在其他机器上的 JVM,finderweb通过 JMX 远程连接到目标机上的 JVM。远程 JVM 必须开启 JMX。
本地 JVM 关键字:Finderweb要监控本地的 JVM,必须指定一个关键字。这个关键字包含在该本地 JVM 启动时命令行参数中,Finderweb通过扫描本地启动的 JVM,并获取每一个 JVM 启动参数与配置的关键字做比较,如果命令行参数中包含该关键字,则加入到监控中。
实际上 SUN 的本地虚拟机API提供的功能是通过进程ID连接到对应的 JVM 上的,但是由于 JVM 可能重启,所以在Finderweb中通过指定关键字,可以在虚拟机重启之后自动重新连接。
远程 JVM 需要指定远程 JVM 所在的主机IP和开启的 JMX 端口号,Finderweb直接通过 JMX 连接到远程主机。
警告
ThreadDump,HeapDump会暂停JVM,请谨慎操作。