Zabbix 部署jmx监控Tomcat

Zabbix 部署jmx监控Tomcat

时间:2018-07-07 作者:zhankehua 评论:0 点击:4185 次

一、环境

两台服务器,一台是Zabbix_java_Server ,另一台Tomcat-Server
需要用到的文件:catalina-jmx-remote.jar cmdline-jmxclient-0.10.3.jar
vim /etc/zabbix/zabbix_server.conf
# JavaGateway的服务器IP地址
JavaGateway=192.168.247.133
# JavaGateway的服务端口
JavaGatewayPort=10052
# 从javaGateway采集数据的进程数
StartJavaPollers=5

Zabbix 监控Tomcat
一、  环境
两台服务器(VMware虚拟机),操作系统均为CentOS 7。分别部署在不同的实体机上,采用桥接方式接入同一局域网。一台是Zabbix Server ,另一台Tomcat-Server。

需要用到的文件:catalina-jmx-remote.jar和jmxcmd
【注:jmxcmd是基于cmdline-jmxclient开发的,因为cmdline-jmxclient-0.10.3.jar在2006年停止开发了。】
下载地址:
catalina-jmx-remote.jar
http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.88/bin/extras/
jmxcmd
https://sourceforge.net/projects/jmxcmd/

二、  Tomcat Server配置
1、CentOS7安装Tomcat
因为CentOS7默认安装了java ,所以,这里不再安装java
 001.png现地开始安装tomcat
下载tomcat7的安装文件
http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.69/bin/apache-tomcat-7.0.69.tar.gz
【注:其实tomcat不同的版本可在此处下载 http://mirror.bit.edu.cn/apache/tomcat/】
放到虚拟机/home/zhanxy/Downloads下,并解压
 002.png
建立两个目录
mkdir /usr/ejy365/tomcat_cluster
mkdir /usr/ejy365/tomcat_cluster/tomcat1
mv ./apache-tomcat-7.0.69/ /usr/ejy365/tomcat_cluster/tomcat1
进入tomcat的bin目录后通过vi命令打开catalina.sh文件,并在其中加入如下配置:
JAVA_OPTS="-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m"
export TOMCAT_HOME=/usr/ejy365/tomcat_cluster/tomcat1/apache-tomcat-7.0.69
export CATALINA_HOME=/usr/ejy365/tomcat_cluster/tomcat1/apache-tomcat-7.0.69
export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
 003.png

接下来我们就可以尝试启动tomcat了,切换到tomcat的bin目录输入启动命令:
./startup.sh
这个时候,在外网还是无法打开tomcat,原因就是和windows相比linux有更强的安全机制,在CentOS 7中引入了一个更强大的防火墙——Firewall。我们需要在Firewall中开启8080端口,也就是将8080端口加入到zone(Firewall的新特性,简单讲它的作用就是定义了网络区域网络连接的可信等级)中。命令如下:

firewall-cmd --zone=public --add-port=8080/tcp --permanent
这样就成功的将8080端口加入了public区域中,permanent参数表示永久生效,即重启也不会失效,最后不要忘记更新防火墙规则:

firewall-cmd --reload
OK,下面看一下public区域下所有已打开的端口,命令如下:
firewall-cmd --zone=public --list-ports
可以看到8080端口已经成功打开:
 004.png2、配置catalina-jmx-remote.jar
首先下载 catalina-jmx-remote.jar,要与tomcat版本对应(估计只需要大版本对应,因为我tomcat的版本为7.0.69,但下载的catalina-jmx-remote.jar版本为7.0.88,可以正常使用)。下载地址
http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.88/bin/extras/
将catalina-jmx-remote.jar放在tomcat的lib目录下。我的是/usr/ejy365/tomcat_cluster/tomcat1/apache-tomcat-7.0.69/lib
【注:按照网上说要放在bin下,对于我来说不可用,放在lib下可用。】
在catalina.sh中添加如下内容:
CATALINA_OPTS="-Dcom.sun.management.jmxremote \
               -Dcom.sun.management.jmxremote.authenticate=false \
               -Dcom.sun.management.jmxremote.ssl=fase \
               -Djava.rmi.server.hostname=192.168.1.238"
 005.png网友可能会发现,这里为什么没有配置网上说的端口号(-Dcom.sun.management.jmxremote.port=12345)呢?那是因为,在我在此处配置端口号后,tomcat就启动不了。端口号需要在 server.xml中配置
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiServerPortPlatform="12346" rmiRegistryPortPlatform="12345"/>
 006.png启动tomcat,并查看是否启动成功。
在bin下输入./startup.sh
查看端口:
 007.png看到上面内容,说明已启动成功了。
三、  Zabbix server配置
在安全时,没有安装zabbix-java-gateway。现在需要安装此服务。
输入yum install zabbix-java-gateway进行安装。
配置zabbix_java_gateway.conf
/etc/zabbix/zabbix_java_gateway.conf
 #监控地址
LISTEN_IP="0.0.0.0"
 #监听端口
LISTEN_PORT=10052
 #进程文件路径
PID_FILE="/var/run/zabbix/zabbix_java.pid"
 #开启的工作线程数
START_POLLERS=5
 #超时
TIMEOUT=3
 008.png配置zabbix_server.conf
vim /etc/zabbix/zabbix_server.conf
# JavaGateway的服务器IP地址
JavaGateway=192.168.1.11<br>
# JavaGateway的服务端口
JavaGatewayPort=10052<br>
# 从javaGateway采集数据的进程数
StartJavaPollers=5
 009.png

最后,重启zabbix-server,abbix-java-gateway服务
 010.png

添加主机及相应模板
 



 
到此结束 。
参考网址:
https://www.linuxidc.com/Linux/2016-09/135555.htm
https://www.cnblogs.com/Dev0ps/p/8656117.html
https://blog.csdn.net/reblue520/article/details/52623604/
https://github.com/zhujinhe/tomcat-zabbix-template
http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.88/bin/extras/

已有 4185 位网友参与,快来吐槽:

发表评论

必填

选填

选填

◎欢迎参与讨论,发表您的看法、交流您的观点。