设为首页 收藏本站
查看: 1073|回复: 0

[经验分享] Zabbix 监控 tomcat 连接池(报错org.archive.jmx.Client ...is not a registered bean)

[复制链接]

尚未签到

发表于 2018-12-1 14:28:30 | 显示全部楼层 |阅读模式
Zabbix 监控 tomcat 连接池
一、     前言
  领导提出需求,需要监控tomcat的连接池,之前已经通过zabbix监控了jvm(关于jvm监控这部分,后续补上)。在网上找了很多教程,经历了很多坑,不过还是要感谢那些帮助过我的人,踩着坑搞出来,也是记忆犹新呀。
二、     基础环境
  操作系统:Centos 6.8
  Jdk:1.8.0_77(jdk最好是1.7及以上)
  Tomcat:7.0.69
  Zabbix:3.0.3
三、     环境部署
(一)         Zabbix Server端:
1.      要求:
开启javaGateway支持java监控(编译时添加--enable-java这个参数)
2.      现状:
由于我们的Server是编译安装的,已经在使用了,所以只能重新编译,把之前的已经编译好的zabbixserver目录替换掉(注意:要把conf下的配置文件,还有脚本要拷贝到重新编译好的zabbixserver目录里哦,我们的路径是/usr/local/zabbix。)
3.      操作步骤:
详细编译步骤请自行google
1)     编译参数:
./configure--prefix=/usr/local/zabbix --enable-server --enable-agent --enable-ipv6--with-mysql --with-net-snmp –enable-java
注意:替换编译包时,要将zabbixsever端停止。
2)     配置zabbix_java
  路径:/usr/local/zabbix/sbin/zabbix_java
# ls
bin lib  settings.sh  shutdown.sh startup.sh
  配置文件内容如下:
# grep -Ev "^#|^$"settings.sh
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/tmp/zabbix_java.pid"
START_POLLERS=5
3)     配置zabbixsever
  路径:/usr/local/zabbix/etc
# ls
zabbix_agentd.conf  zabbix_agentd.conf.d  zabbix_server.conf zabbix_server.conf.d
  配置文件增加下面内容
# grep -Ev "^#|^$"zabbix_server.conf

JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
4)     启动zabbixsever 以及zabbix_java
# zabbix server启动
/etc/init.d/zabbix_server start
# zabbix_java 启动
cd /usr/local/zabbix/sbin/zabbix_java
./startup.sh
(二)         Zabbix Agent端:
  主要是配置tomcat容器
1)     下载catalina-jmx-remote.jar
  下载地址:(用wget在服务器下载即可)
  http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.69/bin/extras/catalina-jmx-remote.jar
  上传catalina-jmx-remote.jar到tomcat的lib目录下,我的是/usr/local/tomcat/lib即可
2)     修改catalina.sh
# 添加如下内容
CATALINA_OPTS="$CATALINA_OPTS-server -Xms128m -Xmx128m -XX:MaxNewSize=64m -XX:PermSize=64M-XX:MaxPermSize=64m -XX:ThreadStackSize=256 -Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=客户端IP地址"
3)     增加jmx监听端口
# server.xml文件最后添加一行
# tail -n 6 conf/server.xml

     
   


4)     重启tomcat
(三)         测试
  需要下载一个工具包cmdline-jmxclient-0.10.3.jar
  下载地址:
  http://crawler.archive.org/cmdline-jmxclient/downloads.html
  执行如下命令:
# java -jar/root/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:9080 java.lang:type=MemoryHeapMemoryUsage
11/11/2016 17:27:54 +0800org.archive.jmx.Client HeapMemoryUsage:
committed: 127533056
init: 134217728
max: 127533056
used: 16984736
四、     zabbix web 配置
(一)         导入zabbix监控tomcat模版
zabbix监控tomcat模版 见附件
(二)         Tomcat服务器主机添加jmx端口

(三)         Tomcat服务器主机添加zabbix监控tomcat模版
  等待几分钟,查看相应主机的最新数据即可
五、     踩过的坑
  (这是个大坑,主要我是小白一枚,google了半天才找到原因)
  首先,我执行这个,查看支持的选项,没有问题
# java -jar/root/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:9080 java.lang:type=Memory
Attributes:
ObjectPendingFinalizationCount:ObjectPendingFinalizationCount (type=int)
HeapMemoryUsage: HeapMemoryUsage(type=javax.management.openmbean.CompositeData)
NonHeapMemoryUsage: NonHeapMemoryUsage(type=javax.management.openmbean.CompositeData)
Verbose: Verbose (type=boolean)
ObjectName: ObjectName(type=javax.management.ObjectName)
Operations:
gc: gc
Parameters 0, return type=void
  之后,我执行这个,报错如下:
# java -jar/root/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:9080 java.lang:type=MemoryPool
11/11/2016 17:39:24 +0800 org.archive.jmx.Clientjava.lang:type=MemoryPool is not a registered bean
  最后,google后才知道,这样执行是不对的
  jmx支持的一些选项,如下
# java -jar/root/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:9080 | grep java.lang:
java.lang:type=Compilation
java.lang:type=ClassLoading
java.lang:type=Memory
java.lang:name=Metaspace,type=MemoryPool
java.lang:name=EdenSpace,type=MemoryPool
java.lang:type=Threading
java.lang:name=SurvivorSpace,type=MemoryPool
java.lang:name=MetaspaceManager,type=MemoryManager
java.lang:type=Runtime
java.lang:name=MarkSweepCompact,type=GarbageCollector
java.lang:name=Compressed ClassSpace,type=MemoryPool
java.lang:name=CodeCacheManager,type=MemoryManager
java.lang:name=Copy,type=GarbageCollector
java.lang:type=OperatingSystem
java.lang:name=CodeCache,type=MemoryPool
java.lang:name=TenuredGen,type=MemoryPool
  正确的执行方式,如下:
# java -jar/root/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:9080 java.lang:name=Metaspace,type=MemoryPool
Attributes:
Valid: Valid (type=boolean)
Usage: Usage(type=javax.management.openmbean.CompositeData)
PeakUsage: PeakUsage(type=javax.management.openmbean.CompositeData)
MemoryManagerNames: MemoryManagerNames(type=[Ljava.lang.String;)
UsageThreshold: UsageThreshold (type=long)
UsageThresholdExceeded: UsageThresholdExceeded(type=boolean)
UsageThresholdCount: UsageThresholdCount(type=long)
UsageThresholdSupported:UsageThresholdSupported (type=boolean)
CollectionUsageThreshold:CollectionUsageThreshold (type=long)
CollectionUsageThresholdExceeded:CollectionUsageThresholdExceeded (type=boolean)
CollectionUsageThresholdCount:CollectionUsageThresholdCount (type=long)
CollectionUsage: CollectionUsage(type=javax.management.openmbean.CompositeData)
CollectionUsageThresholdSupported:CollectionUsageThresholdSupported (type=boolean)
Name: Name (type=java.lang.String)
Type: Type (type=java.lang.String)
ObjectName: ObjectName (type=javax.management.ObjectName)
Operations:
resetPeakUsage: resetPeakUsage
Parameters 0, return type=void
  总结:
  Jmx支持的选项,是和tomcat版本有关的,之前我找的资料都是tomcat 8 的版本,执行之后就会报错“org.archive.jmx.Client java.lang:type=MemoryPool is not a registered bean”,所以自己要认真查看自己所部署的环境所支持的选项,不能盲目照搬他人的成果。
  



附件:http://down.运维网.com/data/2368368


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-642033-1-1.html 上篇帖子: Tomcat安装以及多实例部署 下篇帖子: linux:记录一次 处理tomcat启动卡死无报错现象的曲折过程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表