zabbix监控tomcat,需要zabbix_server开启java poller,zabbix_java开启javaGateway,端口10052,Tomcat JMX开启12345端口,提供性能数据。
数据获取流程为:java pollerjavaGateway:10052Tomcat:12345

- 配置Tomcat JMX(安装Tomcat步骤省略)
配置jmx,在需要监控的tomcat服务器上,编辑catalina.sh,加入如下配置
vim /usr/local/tomcat/bin/catalina.sh
sed -n '249p' /usr/local/tomcat/bin/catalina.sh
1. CATALINA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.200.78 -Dcom.sun.management.jmxremote.port=12345"
这里需要注意,必须增加-Djava.rmi.server.hostname选项,并且后面的IP就是tomcat服务器的IP

- 重启Tomcat
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
netstat -antup | grep java

- 编译zabbix,加入java支持(需要先安装JDK)
在zabbix server服务器上,编译安装zabbix-server,需要加上--enable-java,以支持jmx监控,如果之前的zabbix server没加此选项,那么需要重新编译安装,编译参数如下:
1. ./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --enable-java --with-libxml2
特别提示
在启用--enable-java编译zabbix之前,zabbix server服务器上需要安装JDK,并需要设置JAVA_HOME,以让系统能够识别到jdk的路径
- 在zabbix-server端安装JDK
tar xf jdk-8u60-linux-x64.tar.gz -C /usr/local/
ln -s /usr/local/jdk1.8.0_60/ /usr/local/jdk
sed -i.ori '$a export JAVA_HOME=/usr/local/jdkexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar' /etc/profile
tail -3 /etc/profile
source /etc/profile
which java
java -version

- 重新编译zabbix-server服务器端
重新编译zabbix-server服务器端之前
cd /usr/local/zabbix/sbin
ls

开始重新编译zabbix-server服务器端
/etc/init.d/zabbix_server stop
cd /usr/src/zabbix-3.2.4/
./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --enable-java --with-libxml2 && make && make install

重新编译zabbix-server服务器端之后
cd /usr/local/zabbix/sbin/
ll
1. -rwxr-xr-x 1 root root 1165774 Jan 25 22:22 zabbix_agentd
2. drwxr-xr-x 4 root root 4096 Jan 25 22:22 zabbix_java #多了一个目录
3. -rwxr-xr-x 1 root root 3672055 Jan 25 22:22 zabbix_proxy
4. -rwxr-xr-x 1 root root 3966037 Jan 25 22:22 zabbix_server
cd zabbix_java/
ll
1. drwxr-xr-x 2 root root 4096 Jan 25 22:22 bin
2. drwxr-xr-x 2 root root 4096 Jan 25 22:22 lib
3. -rw-r--r-- 1 root root 791 Jan 25 22:22 settings.sh #java gateway配置脚本
4. -rwxr-xr-x 1 root root 545 Jan 25 22:22 shutdown.sh #停止java gateway服务
5. -rwxr-xr-x 1 root root 2025 Jan 25 22:22 startup.sh #启动java gateway服务

提示:
java gateway服务的配置脚本settings.sh不需要修改任何配置。
- 启动java Gateway服务
/usr/local/zabbix/sbin/zabbix_java/startup.sh
netstat -antup | grep 10052

- 修改zabbix server配置
默认的情况下,zabbix server未启用javaPollers,需要修改zabbix_server.conf的如下配置
修改以下配置文件的内容
cd /usr/local/zabbix/etc/
cat -n zabbix_server.conf | sed -n '215p;223p;231p'
1. 215 # JavaGateway=
2. 223 # JavaGatewayPort=10052
3. 231 # StartJavaPollers=0

将上述配置文件内容修改成如下
vim zabbix_server.conf
cat -n zabbix_server.conf | sed -n '215p;223p;231p'
1. 215 JavaGateway=127.0.0.1 #JavaGateway的地址
2. 223 JavaGatewayPort=10052
3. 231 StartJavaPollers=5

启动zabbix_server服务并查看已经打开的java poller进程
/etc/init.d/zabbix_server start
ps -ef | grep "java poller" | grep -v grep

- Zabbix图形界面配置
- 创建一个主机利用JMX接口监控tomcat被监控端


- 导入zabbix监控tomcat的模版(上边有模板下载链接)
因为Zabbix自带的Tomcat模版有兼容性问题,并不好用,因此,我们导入自己制作的监控项模版




