jmx+jconsole远程监视tomcat的jvm

进入tomcat的bin目录编辑shell

vi catalina.sh

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=XXXXX -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=jmxremote.password -Dcom.sun.management.jmxremote.access.file=jmxremote.access"

也可以把这段话加入JAVA_OPTS

注意-Djava.rmi.server.hostname=XXXXX 一定要加。网上很多资料没有写这段,我想是因为本地连接不需要。

-Dcom.sun.management.jmxremote.authenticate=true 也可以改成false,这样可以省去认证环节。

mxremote.password和jmxremote.access 是认证需要的文件,可以从java_home/jre/lib/management 里考一份到tomcat的bin下面

编辑 mxremote.password设置密码,例如

monitorRole 123
controlRole  123

然后在本地机器打开java_home/bin/jconsole
选择远程连接

输入 XXXXX:8888

用户名:controlRole

密码:123

连进去试试看,如果不成功可以查看下8888端口是否打开

netstat -anp|grep 8888

这条命令也可以查看占用8888端口的进程号。

接着可以用jconsole打开图形界面来观察数据,注意MBean这个tab。

里面的属性对应这zabbix的item,很多人说zabbix集成的tomcat模板有问题。

其实就是模板里设置的item的Key与下图的objectName不一致。例如下面这个例子,模板中的name我记得原来好像是“http-8080”

zabbix要想正确读取jmx传来的数据,还需要配置zabbix_java_gateway。

vi zabbix_java_gateway.conf

# This is a configuration file for Zabbix Java Gateway.
# It is sourced by startup.sh and shutdown.sh scripts.

### Option: zabbix.listenIP
#       IP address to listen on.
#
# Mandatory: no
# Default:
LISTEN_IP="127.0.0.1"

### Option: zabbix.listenPort
#       Port to listen on.
#
# Mandatory: no
# Range: 1024-32767
# Default:
LISTEN_PORT=10052

### Option: zabbix.pidFile
#       Name of PID file.
#       If omitted, Zabbix Java Gateway is started as a console application.
#
# Mandatory: no
# Default:
# PID_FILE=

PID_FILE="/var/run/zabbix/zabbix_java.pid"
LogFile=/mnt/erp/log/zabbix/zabbix_java_gateway.log
### Option: zabbix.startPollers
#       Number of worker threads to start.
#
# Mandatory: no
# Range: 1-1000
# Default:
START_POLLERS=5

保存后,启动gateway即可

/etc/init.d/zabbix-java-gateway

成功之后,去zabbix的web页面配置下


确认到jmx的标记绿了,说明成功了

当然,配置失败的可能性会很大。

失败的情况下可以用一下命令调试。

zabbix_get -s XXX.XXX.XXX.XX  -p 1234 -k jmx["org.dozer.jmx:type=ThreadPool,name=\"http-bio-8080\"",currentThreadCount]

或者

java -jar /root/cmdline-jmxclient-0.10.3.jar  - XXX.XXX.XXX.XX:1234 java.lang:type=Memory NonHeapMemoryUsage

比如说,["]需要转义。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值