zabbix-----3------监控tomcat
首先我们要安装上tomcat+jdk
我这里使用rpm包直接安装的:
1
2
3
4
5
6
7
8
|
[[email protected] ~] # rpm -ivh jdk-8u102-linux-x64.rpm
Preparing... ################################# [100%]
Updating / installing... 1:jdk1.8.0_102-2000:1.8.0_102-fcs ################################# [100%]
[[email protected] ~] # java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode) |
#安装tomcat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[[email protected] ~] # tar xf apache-tomcat-7.0.53.tar.gz -C /usr/local
[[email protected] ~] # ls /usr/local/apache-tomcat-7.0.53/
bin conf lib LICENSE logs NOTICE RELEASE-NOTES RUNNING.txt temp webapps work [[email protected] ~] # ln -s /usr/local/apache-tomcat-7.0.53/ /usr/local/tomcat
[[email protected] ~] # cd /usr/local/tomcat/bin/
[[email protected] bin] # ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap .jar: /usr/local/tomcat/bin/tomcat-juli .jar
Tomcat started. [[email protected] bin] # netstat -lntup|grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2850 /nginx : master
tcp6 0 0 :::8009 :::* LISTEN 4795 /java tcp6 0 0 :::8080 :::* LISTEN 4795 /java
|
验证:
这里可以使用官方的java-gatway来监控
zabbix-server会去找java-gateway,由javagateywa去找jmx
所以我们这里要找一台设备安装javagateway,这里安装到server-zabbix上
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[[email protected] ~] # yum install zabbix-java-gateway^V^C
[[email protected] ~] # systemctl start zabbix-java-gateway.service
[[email protected] ~] # netstat -lntup
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID /Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 5506 /mysqld tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1274 /sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1857 /master tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 7923 /zabbix_agentd tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 7117 /zabbix_server tcp6 0 0 :::80 :::* LISTEN 5588 /httpd tcp6 0 0 :::22 :::* LISTEN 1274 /sshd tcp6 0 0 ::1:25 :::* LISTEN 1857 /master tcp6 0 0 :::10050 :::* LISTEN 7923 /zabbix_agentd tcp6 0 0 :::10051 :::* LISTEN 7117 /zabbix_server tcp6 0 0 :::10052 :::* #监听的这个端口 LISTEN 8776/java
|
window上安装jdk
配置zabbix-server去连接java-gateway
1
2
3
|
vim /etc/zabbix/zabbix_server .conf
JavaGateway=192.168.56.11
StartJavaPollers=5 #如果tomcat很多的话,这个采集器要配置的大点
|
重启服务:systemctl restart zabbix-java-gateway.service
这里可以zabbix可以监控java程序来。下面要多tomcat开启jmx。下面我们修改catalina。sh这个文件
加入以下内容
1
2
3
4
5
6
|
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.56.21"
# OS specific support. $var _must_ be set to either true or false. |
然后tomcat重启服务。就可以看到端口12345
======================================================
下面window上面安装完成后,我们在这个路径下面C:\Program Files\Java\jdk1.8.0_66\bin找到“jconsole”点击打开,如下图:
通过远程连接,输入192.168.56.21:12345连接到刚刚配置的tomcat。这个也是刚刚添加catalina里面配置的信息才能连接
上传一个cmdline-jmxclient-0.10.3到21上面。
使用cmdline-jmxclient-0.10.3到
如何取上面输出的值那???
下面我们新创建一个主机
上面这几步完成一个主机的创建
对于如下图的不支持的items我们要从jconsole里面找到新的内容,让他支持。
如果从jconsole里面没有找到,说明新的设备的java已经没有这个项了。我们要选择删除这部分,如果有我们把jconsole里面显示的新的内容替换item模板里面的key
下面演示一个8080的错误,按照找的方法,我们找到了jconsole上面的对应的项目值,然后从server上测试发现没有注册,这个是什么原因?如图:
这里是因为名字中有双引号的原因,我们需要转移,如下命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[[email protected] ~] # java -jar cmdline-jmxclient-0.10.3.jar - 192.168.56.21:12345 Catalina:type=GlobalRequestProcessor,name=\"http-bio-8080\"
Attributes: requestCount: Introspected attribute requestCount ( type =int)
maxTime: Introspected attribute maxTime ( type =long)
bytesReceived: Introspected attribute bytesReceived ( type =long)
modelerType: Type of the modeled resource. Can be set only once ( type =java.lang.String)
bytesSent: Introspected attribute bytesSent ( type =long)
processingTime: Introspected attribute processingTime ( type =long)
errorCount: Introspected attribute errorCount ( type =int)
Operations: resetCounters: Introspected operation resetCounters
Parameters 0, return type =void
[[email protected] ~] # java -jar cmdline-jmxclient-0.10.3.jar - 192.168.56.21:12345 Catalina:type=GlobalRequestProcessor,name=\"http-bio-8080\" requestCount
03 /21/2017 13:24:01 -0400 org.archive.jmx.Client requestCount: 0
|
然后我们修改模板中item的key值
tomcat 7和8 都会不同,需要自己修改自己的模板,然后导出
本文转自 kesungang 51CTO博客,原文链接:http://blog.51cto.com/sgk2011/1909152,如需转载请自行联系原作者