Zabbix版本: Zabbix 3.0.2
一、服务端配置
1、安装jdk(版本1.7.0_79)
安装与配置比较简单,过程省略。执行java -version命令,出现类似界面表示成功。
2、安装Zabbix-Java-gateway
Zabbix2.0起添加了支持用于监控JMX应用程序的服务进程,称为“Zabbix-Java-gateway”,它是用java写的一个程序。
有两种方法可以安装Zabbix-Java-gateway,第1种是编译安装zabbix时添加--enable java参数。第2种是单独安装,步骤如下:
# tar zxvf zabbix-3.0.2.tar.gz # cd zabbix-3.0.2 # ./configure --enable-java --prefix=/data/zabbix/zabbix_java #/data/zabbix是我的zabbix安装目录 # make && make install
3、修改Java-gateway的配置文件并启动它
配置文件路径为/data/zabbix/zabbix_java/sbin/zabbix_java/settings.sh
启用以下参数:
LISTEN_IP="0.0.0.0" #监听地址 LISTEN_PORT=10052 #监听端口 START_POLLERS=5 # 开启的工作线程数(必须大于等于后面zabbix_server.conf文件的StartJavaPollers参数)
进入/data/zabbix/zabbix_java/sbin/zabbix_java目录,执行
./startup.sh
检查端口是否监听:
# netstat -anp|grep 10052 tcp 0 0 0.0.0.0:10052 0.0.0.0:* LISTEN 9613/java
4、修改zabbix_server的配置文件并重启
JavaGateway=127.0.0.1 # JavaGateway 服务器地址,zabbix_server与zabbix_java_gateway在同一台主机 JavaGatewayPort=10052 #端口 StartJavaPollers=5
重启zabbix_server
# /etc/init.d/zabbix_server restart
二、客户端配置
1、给tomcat启动脚本添加参数,开启JMX
修改tomcat/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 #定义jmx监听端口 -Djava.rmi.server.hostname=客户端IP"
2、下载catalina-jmx-remote.jar
# wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.56/bin/extras/catalina-jmx-remote.jar #我的tomcat版本是7.0.56
将下载后后的jar包放到被监控的tomcat实例的lib目录下。
3、重启tomcat
4、测试是否可以获取数据
命令行下测试需要cmdline-jmxclient-0.10.3.jar这个包,测试结果如下:
三、导入模板,添加监控
从网上下载了一个不错的模板,导入后如下:
添加主机,关联模板,出图,效果如下:
四、如何监控单主机多个tomcat
监控多个tomcat实例,网上的详细的配置文档很少,几乎没有。比较好的办法是使用自动发现,但刚使用zabbix,来不及研究,所以采用笨法,修改模板、监控项、图形来达到最终目的。
关键配置:
1、添加主机时添加多个jmx端口
2、修改监控项、键值
在同一主机上,zabbix不允键值重复,但是监控的项目是一样的,不可能键值写的不重复,经过几番搜索,找到方法如下:
只要在箭头处添加1个空格就可以,也可以是多个。(注意位置不要错,在逗到后面)
剩下的就是体力活了,复制监控项、修改监控项、复制图形、修改图形。。。
以下是两个tomcat实例的监控项:
最后的监控效果如下:
其它图形就不一一展示了。