文档章节

zabbix jmx监控tomcat

l
 lics_me
发布于 2017/06/09 17:20
字数 1071
阅读 150
收藏 0

前提:编译zabbix server时需要提供java支持,即添加--enable-java该选项。

1、zabbix server段配置java支持。此处编译安装zabbix的目录为/usr/local/zabbix。

编辑/usr/local/zabbix/sbin/zabbix_java/settings.sh,修改完成之后内容如下:
	LISTEN_IP="0.0.0.0"			//监听的服务器地址
    LISTEN_PORT=10052			//监听的端口
    PID_FILE="/tmp/zabbix_java.pid"	//指定zabbix_java的pid文件地址
    START_POLLERS=5
    TIMEOUT=3

2、编辑/usr/local/zabbix/etc/zabbix_server.conf,修改完成之后,内容如下:

LogFile=/tmp/zabbix_server.log	//指明zabbix_server的日志文件地址
DBHost=localhost				//连接的数据库地址
DBName=zabbix				//连接的数据库名称
DBUser=zabbix				//连接数据库的用户名
DBPassword=zabbix			//连接数据库密码
JavaGateway=192.168.1.103		//java网关地址,即server端ip地址
JavaGatewayPort=10052			//java网关监听端口
Timeout=20					//超时时间
FpingLocation=/usr/sbin/fping	//fping命令绝对地址
LogSlowQueries=3000
AllowRoot=1					//允许root启动
User=root					//zabbix服务的启动用户
StartPollers=50
StartPingers=100
StartJavaPollers=5
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts	//zabbix额外的脚本地址

3、重启zabbix server服务,以及启动zabbix java支持服务。

]# service zabbix_server restart
]# cd /usr/local/zabbix/sbin/zabbix_java && sh startup.sh

4、在zabbix agent部署的服务器上更改配置文件,修改tomcat配置文件。目录:/data/tomcat/tomcat-8080/bin。

]# vim /data/tomcat/tomcat-8080/bin/catalina.sh
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=12345 -Djava.rmi.server.hostname=192.168.1.100"

其中,hostname=192.168.1.100需要修改为agent部署的服务器地址。

更改完成需要重启tomcat应用服务器,同时查看端口12345是否处于监听状态。

5、在zabbix agent部署的tomcat服务器上,copy对应的java jmx监控的相关jar包到tomcat对应的目录下。

]# cp catalina-jmx-remote.jar /data/tomcat/tomcat-8080/lib
]# cp cmdline-jmxclient-0.10.3.jar /data/tomcat/tomcat-8080/bin

6、编辑zabbix agent配置文件,配置完成如下:

#] vim /usr/local/zabbix/etc/zabbix_agentd.conf

LogFile=/tmp/zabbix_agentd.log	//zabbix agent日志文件地址
Server=192.168.1.103			//zabbix server地址
ListenPort=10050				//zabbix agent监听端口
Timeout=20					//超时时间
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf		//zabbix agent副配置文件目录配置
UnsafeUserParameters=1		
AllowRoot=1
User=root
ServerActive=192.168.1.103		//server地址配置
EnableRemoteCommands=1		//允许远程执行命令
Hostname=192.168.1.100		//配置agent本地hostname名称

UserParameter=jvm[*],/usr/local/zabbix/share/zabbix/alertscripts/jvm_memory.sh $1	//jvm内存监控脚本
UserParameter=system_memory[*],/usr/local/zabbix/share/zabbix/alertscripts/system_memory.sh $1		//系统内存监控脚本

7、在zabbix管理界面配置要监控的服务器的信息,如下:

8、在zabbix agent端使用cmdline-jmxclient-0.10.3.jar提供的相关接口,获取jvm的监控信息。此处执行相关命令的操作目录为:/data/tomcat/tomcat-8080/bin。

获取tomcat的最大线程数。
]$ java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345  'Catalina:name="http-bio-8080",type=ThreadPool' maxThreads
06/09/2017 17:34:47 +0800 org.archive.jmx.Client maxThreads: 200

获取tomcat繁忙线程数。
]$ java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 'Catalina:name="http-bio-8080",type=ThreadPool' currentThreadsBusy
06/09/2017 17:36:48 +0800 org.archive.jmx.Client currentThreadsBusy: 5

获取tomcat当前已经分配线程数。
$ java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345  'Catalina:name="http-bio-8080",type=ThreadPool' currentThreadCount
06/09/2017 17:38:15 +0800 org.archive.jmx.Client currentThreadCount: 11

获取活动线程的当前数目,包括守护线程和非守护线程。
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading ThreadCount
06/09/2017 17:55:34 +0800 org.archive.jmx.Client ThreadCount: 225

获取自从 Java 虚拟机启动以来创建和启动的线程总数目。
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading TotalStartedThreadCount
06/09/2017 17:55:52 +0800 org.archive.jmx.Client TotalStartedThreadCount: 112225

获取Java 虚拟机启动或峰值重置以来峰值活动线程计数。
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading PeakThreadCount
06/09/2017 17:56:06 +0800 org.archive.jmx.Client PeakThreadCount: 244

获取守护线程总数。
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading DaemonThreadCount
06/09/2017 17:52:20 +0800 org.archive.jmx.Client DaemonThreadCount: 195

9、添加对应的监控项。监控项中类型选择JMX agent代理程序。如下图:

10、添加完成的监控项内容如下所示:

名称:tomcat已分配线程数
键值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",currentThreadCount]

名称:tomcat最大线程数
键值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",maxThreads]

名称:tomcat繁忙线程数
键值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",currentThreadsBusy]

名称:java虚拟机启动以来创建和启动的线程总数目
键值:jmx["java.lang:type=Threading","TotalStartedThreadCount"]

名称:tomcat活动线程的当前数目,包括守护线程和非守护线程。
键值:jmx["java.lang:type=Threading","ThreadCount"]

名称:java虚拟机启动或峰值重置以来峰值活动线程数
键值:jmx["java.lang:type=Threading","PeakThreadCount"]

 

 

© 著作权归作者所有

共有 人打赏支持
l
粉丝 0
博文 12
码字总数 2955
作品 0
浦东
私信 提问
Zabbix 3.0 监控Tomcat

配置Tomcat性能监控项目 1.通过JAVA 管理扩展(Java Management Extensions,JMX)采集java应用和JAVA容器的监控数据, 要想让zabbix系统通过JMX方法采集监控数据,则需要在zabbix系统的服务器...

YLSL2014
2018/07/04
0
0
Zabbix利用JMX监控多实例Tomcat运行状态

自使用Zabbix监控系统以来,一直想用JMX来监控Tomcat,但是一直都没配置成功,总有一些问题,监控端的报错又很抽象,搜索网上大都是复制粘贴之产物,或者是缺斤短两之网文,但是一直都没放弃...

奋斗的寒霜
2018/06/28
0
0
如何监控 Tomcat?Zabbix 与 Cloud Insight 对比

JVM 监控工具有很多,像命令 jstat,jmap,jstack,jinfo 可以根据不同需求查看不同的系统信息,还有图像化界面 jconsole,都是很方便的工具。这些可以参考 JAVA自带监控工具的介绍。 但是现...

OneAPM蓝海讯通
2016/01/25
101
0
ZABBIX通过JMX监控tomcat

在Zabbix中,JMX监控数据的获取由专门的代理程序来实现,即Zabbix-Java-Gateway来负责数据的采集,Zabbix-Java-Gateway和JMX的Java程序之间通信获取数据 JMX在Zabbix中的运行流程: 1.Zabbix-...

baishuchao
2017/08/22
0
0
zabbix 监控 Tomcat

# # zabbix提供了一个JMX通过java gateway 来监控java #官方文档:https://www.zabbix.com/documentation/3.2/manual/appendix/config/zabbix_java #java gatewa 需要独立安装 以为zabbix-se......

chaunceyjiang
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

想问一下C++里queue要怎么遍历

如题,想知道怎么遍历<queue>对象的元素? 貌似不能遍历。要么全部pop push一遍,要么换个容器呗。 queue是先进后出的数据类型,只能不断读top()然后再pop()掉。故意把遍历操作隐藏掉了,...

shzwork
昨天
2
0
Ubuntu 18.04.2 LTS nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic)

平台:Ubuntu 18.04.2 LTS nvidia-docker2 版本:2.0.3 错误描述:在安装nvidia-docker2的时候报dpkg依赖错误 nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic) 先看一下依......

Pulsar-V
昨天
3
0
学习笔记1-goland结构体(struct)

写在前面:若有侵权,请发邮件by.su@qq.com告知。 转载者告知:如果本文被转载,但凡涉及到侵权相关事宜,转载者需负责。请知悉! 本文永久更新地址:https://my.oschina.net/bysu/blog/3036...

不最醉不龟归
昨天
4
0
【转】go get命令使用socket代理

由于某些不可描述的原因,国内使用go get命令安装某些包的时候会超时导致失败,比如net包、sys包、tools包等。第一种解决办法就是自己从git上下载后添加链接到GOPATH中,比如: 1234...

yiduwangkai
昨天
6
0
从上往下打印出二叉树的每个节点,同层节点从左至右打印。

//第一种做法 public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList <Integer> li=new ArrayList<Integer>(); ArrayList <TreeN......

南桥北木
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部