1. 为什么我要使用Psi Probe做监控工具?
简单:只需配置好tomcat-users.xml、catalina.bat(开启远程JMX)就可以通过部署一个probe.war来管理该Tomcat下所有的项目。
管理功能丰富:
Requests:在单个应用程序的基础上, 实时监控流量。
Sessions:浏览/搜索属性,查看最后的IP,过期,估计大小。
jsp:浏览,查看源代码,编译。
Data Sources:查看池使用情况,执行查询。
Logs:查看内容,下载,在运行时更改级别。
Threads:查看执行堆栈,杀死。
Connectors:状态,使用图表。
Certificates:系统信任存储和连接器密钥存储/信任存储
Cluster:状态,使用图表。
JVM:内存使用图表,建议GC
Java Service Wrapper:重启JVM。
System:CPU使用,内存使用,交换文件使用。
除上面那功能,部分个人觉得实用功能如下:
为什么不使用jdk自带的工具(jstack、jmap..)进行监控?
jdk自带的监控工具基本都需要进入服务器内部,通过命令去查看分析,没有可视化界面更加直观,还有就是这些工具功能比较单一,命令比较多,难记住,主要这些工具主要是监控JVM相关的信息,对于web容器中请求、session、并发数都没有监控到。
可以通过工具-在本地通过jdk自带的jvisualvm和jconsole远程监控Tomcat的JVM运行这种方式来监控唉,这种方式虽然有可视化界面了,但还是存在监控到的信息有限,并且通过跨服务器jmx远程监控这种方式还受限于网络影响。
其他监控工具:
Javamelody,该工具高度与应用系统耦合,需要应用依赖于对应的jar包和web.xml filter的配置,需要和其他框架进行整合才能使用。
2. 配置使用方式如下:
从github上下载war包或下载源码后自己编译打包成probe.war,也可以Fork后自定义开发。
https://github.com/psi-probe/psi-probe/releases
配置conf/tomcat-users.xml文件。
<!--
psi probe相关角色配置
-->
<role rolename="probeuser"/>
<role rolename="poweruser"/>
<role rolename="poweruserplus"/>
<role rolename="manager-gui"/>
<user username="admin" password="123456" roles="manager-gui"/>
配置conf/catalina.bat或catalina.sh文件。
windows:
rem 开启远程jvm支持
set JAVA_OPTS=-Dcom.sun.management.jmxremote
Linux:
export JAVA_OPTS=$JAVA_OPTS" -Dcom.sun.management.jmxremote"
将probe.war部署到webapps下,启动Tomcat,通过地址:http://localhost:8083/probe/进行访问,tomcat-users.xml的user标签配置了访问的账号密码。
3. Psi Probe管理端页面