线上的系统总会出现运行变慢的情况,它又不能像在本地开发那样可以直接进行调试,那就必须进行远程监控,下面就说一下tomcat的监控配置。
本文是 tomcat7为例,其它版本的tomcat也是一样的。
参数的说明:
#启动jmx远程管理
-Dcom.sun.management.jmxremote
#提供服务的网卡ip地址,不配置表示允许所有网卡提供服务。注意是服务器的ip,不是允许连接的客户端ip啊,这个和redis一样的
-Djava.rmi.server.hostname=10.211.55.6
#提供服务的端口
-Dcom.sun.management.jmxremote.port=9999
#是否使用ssl安全协议
-Dcom.sun.management.jmxremote.ssl=false
#是否使用身份认证
-Dcom.sun.management.jmxremote.authenticate=false
#身份认证的账号密码
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password
#身份认证的账号的权限
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access”
更详细的配置可以看 https://blog.csdn.net/dongdong2980/article/details/78476393
由于服务器都是在内网,并且我也配置了防火墙,所有为了方便,下面使用不开启身份认证进行配置。
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=10.211.55.6
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
一、以windows服务方式运行
在windows 服务器,tomcat 一般都是按照成服务运行,这时候就算直接在服务器上打开监控工具,如jvisualvm、jconsole,也是看不到本地监控进程的。
网上很多教程都是叫人改tomcat服务注册列表参数,但是其实有更简单的方法,就是直接使用tomcat7w 这个软件配置。
这个软件是在tomcat的bin目录下,直接命令行运行 tomcat7w.exe //ES//tomcat的服务名
就可以了。
该软件可以配置tomcat的很多参数,包括内存等等。
我们把参数粘贴到下面红框位置,再点击确定,重启tomcat就可以。注意:每一行后面不用带空格,不然读取数字会报错
。
重启完tomcat以后用jconsole测试一下能不能连接,注意:如果你设置了连接的服务器ip,那么就只能用该ip连接
。
二、以 catalina 脚本运行(一般是linux)
如果我们是使用startup.bat 或者 是startup.sh启动tomcat,最后也是使用 catalina 脚本的 start 方法启动tomcat,那么在本地进程哪里就可以看到的。
linux就是以catalina 脚本运行的,但是由于生产环境的linux一般不安装可视化桌面的,所以图形化的监控工具不能在本地使用,那么必须要配置远程监控,让我们在其它的机器中,如windows的电脑中监控。
在tomcat 的bin目录下的setenv.bat或者setenv.sh文件添加下面的内容,没有就新建该文件。
- linux 的是setenv.sh 文件,加入下面内容
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.211.55.6 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
保存文件,授予执行权限: sudo chmod a+x setenv.sh
- windows 是 setenv.bat,加入下面内容
set "CATALINA_OPTS=-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.211.55.6 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
重启tomcat,关闭防火墙,在另外一个电脑上使用jconsole测试连接,方法参考上面。
上面的配置在关闭防火墙的时候是可以远程连接,但是,一旦打开防火墙只有哪怕开放了配置的端口(9999),也是不能连接的,下一篇文章就讲一下怎么解决这个问题。