1 环境
名称 | IP |
---|---|
zabbix server | 172.20.20.22 |
tomcat server | 172.20.20.111 |
2 服务端安装
2.1 安装zabbix_java_Gateway
这里直接安装zabbix_java_gateway到zabbix server上面
1 | rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-java-gateway-3.0.5-1.el7.x86_64.rpm |
2.2 修改配置文件zabbix_java-gateway.
修改zabbix_java_gateway.conf
1 | LISTEN_IP="0.0.0.0" |
2.3 修改zabbix_server.conf
添加如下几行
JavaGateway=127.0.0.1 //zabbix_server与zabbix_java_gateway在一台服务器上,这里指定java_gateway服务器地址为本机;
JavaGatewayPort=10052
StartJavaPollers=5
2.4 重启zabbix_server
1 | [root@zabbixserver ~]# service zabbix-server restart |
3 tomcat客户端配置
添加如下代码到tomcat目录/bin/catalina.sh
1 | CATALINA_OPTS="-Djava.rmi.server.hostname=172.20.20.111 //tomcat客户端ip地址 |
3.1 下载catalina-jmx-remote.jar
因为tomcat服务器安装的java版本是1.7,所以这里下载的jar包是1.7的版本,不同版本的tomcat对应不同版本的catalina-jmx-remote.jar;
在http://tomcat.apache.org/download-70.cgi
找到以下JMX Remote jar,把这个文件放到tomcat安装目录的lib子目录下
Extras:
- JMX Remote jar (pgp, md5, sha1) //下载jmx包
- Web services jar (pgp, md5, sha1)
- JULI adapters jar (pgp, md5, sha1)
- JULI log4j jar (pgp, md5, sha1)
3.2 修改tomcat安装目录conf子目录下的server.xml配置文件
添加如下几行
1 | <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" |
完整显示:
1 | <Server port="8005" shutdown="SHUTDOWN"> |
3.3 重启tomcat.
1 | [root@localhost apache-tomcat-7.0.69]# /opt/tomcat/bin/shutdown.sh |
测试是否可以获得数据
测试需要cmdline-jmxclient-0.10.3.jar包,下载包 http://dl.bintray.com/typesafe/maven-releases/cmdline-jmxclient/cmdline-jmxclient/0.10.3/cmdline-jmxclient-0.10.3.jar
1 | cd /home |
如上图显示,说明可以正常获得数据。
3.4 配置防火墙
开放12345/12346端口
到这里配置完成。
参考资料:
http://jaychang.iteye.com/blog/2214830
4 问题:
按照网上的教程,修改tomcat目录中的catalina.sh ,无法再关闭防火墙的前提下正常获取到数据,是因为即使按照配置设定了端口,但实际中并不是只使用设置的端口。
5 配置例子:
(关闭防火墙开启12345端口就无法获取数据)
1 | CATALINA_OPTS="-Dcom.sun.management.jmxremote |