2-4 监控Tomcat(6/7/8)
最后更新于:2022-04-02 07:40:49
#### 服务端配置Zabbix_java_gateway
```shell
vim /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/tmp/zabbix_java.pid"
START_POLLERS=5
```
其中 LISTEN_PORT 和 LISTEN_IP 可以不配置,zabbix_java 会采用默认值。但是 PID_FILE 和 START_POLLERS 必须配置,尤其主意 START_POLLERS,若不配置 zabbix_java 依旧可以启动但是是不工作的。
#### 配置 zabbix_server 或 zabbix_proxy
zabbix_server 或 zabbix_proxy 的配置文件中有以下内容需要配置:
```shell
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
```
这三项都需要配置,其中 StartJavaPollers 会被视为开关性质的参数。0 或者未配置将被系统认为不具有 Java 信息抓取能力。这点在 Zabbix JMX Monitoring Wiki 中未提及,但是实际效果就是这样。同时 Zabbix Proxy 的配置文件解析 中也有介绍此参数的含义。
#### 配置 Tomcat
在 Tomcat 下载页面 Extras 类别中下载JMX Remote jar 二进制包。放在 tomcat/lib 下面,不同版本的Tomcat,JMX也有区别
修改 tomcat server.xml 配置文件,添加以下内容:
```xml
```
具体参数内容请参考 apache tomcat 文档。
修改 tomcat的server.xml 配置文件,添加以下内容:
#### Tomcat正确配置启动变量的正确方法
##### 查看catalina.sh(23行)
```shell
#Do not set the variables in this script. Instead put them into a script
#setenv.sh in CATALINA_BASE/bin to keep your customizations separate.
```
**将自定义变量创建并写入到setenv.sh**
Linux下,setenv.sh第二行增加
```shell
export CATALINA_OPTS="-Djava.rmi.server.hostname=192.168.0.236 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false"
```
Windows下, setenv.bat第二行增加
```shell
set CATALINA_OPTS=-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.0.236 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
```
##### 坑:等号两遍不要有空格
#### 添加模板
- Tomcat 6 请使用原生模板
- Tomcat 7 默认使用bio模板
- Tomcat 8 默认使用nio模板
- JMX监控 请使用原生模板
- 如果一台机器有两台Tomcat,就得单建立一个Host了,目前没有遇到,就不研究了。
- 调整端口、协议,请去模板宏中修改。
备注:模板来自于[zhujinhe](https://github.com/zhujinhe/tomcat-zabbix-template "Tomcat模板")
模板下载:https://github.com/BrandynX/BrandynX
';