zabbix监控tomcat
服务端配置修改
- 编译zabbix的时候需要添加参数--enable-java
--enable-java
- 修改zabbix_java配置文件
vim /usr/local/zabbix-2.4.6/sbin/zabbix_java/settings.sh
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/tmp/zabbix_java.pid"
START_POLLERS=5
- 修改zabbix_server配置文件
vim /usr/local/zabbix-2.4.6/etc/zabbix_server.conf
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
- 启动zabbix_java
/usr/local/zabbix-2.4.6/sbin/zabbix_java/startup.sh
客户端配置修改
- 下载catalina-jmx-remote.jar文件放到/usr/local/tomcat-7.0.67/lib/目录下
- 修改tomcat server.xml 配置文件,添加如下内容
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="12345" rmiServerPortPlatform="12346" />
12345端口可以按需要修改
- 修改 tomcat/bin 目录下 catalina.sh,添加如下内容
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.0.132"
hostname的IP地址为客户端IP地址
- 下载cmdline-jmxclient-0.10.3.jar抓取信息
java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:12345 java.lang:type=Memory NonHeapMemoryUsage(本机测试)
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.0.132:12345 java.lang:type=Memory NonHeapMemoryUsage(远程测试)
相关命令
- 可查看所有的监控类型
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.0.132:12345 |sort
- 查看OperatingSystem(系统信息)类型中的参数
java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:12345 java.lang:type=OperatingSystem
java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:12345 java.lang:type=Memory(内存)
zabbix监控JMX(tomcat)
tomcat安装目录下的bin目录中有一个catalina.sh,修改其java_opts设置
vim /uc/tomcat/bin/catalina.sh
JAVA_OPTS="-Xms8192m -Xmx8192m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=256m"
#CATALINA_OPTS="$CATALINA_OPTS -Djava.awt.headless=true"
CATALINA_OPTS="$CATALINA_OPTS -Djava.awt.headless=true \
-Djava.rmi.server.hostname=10.0.2.16 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12346 \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.password.file=/usr/java/jdk1.6.0_45/jre/lib/management/jmxremote.password \
-Dcom.sun.management.jmxremote.access.file=/usr/java/jdk1.6.0_45/jre/lib/management/jmxremote.access \
-Dcom.sun.management.jmxremote.ssl=false "
或
CATALINA_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9999 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=10.0.1.222 "
zabbix监控JMX(jboss)
在jboss安装目录下的bin目录有一个run.sh文件,更改其JAVA_OPTS设置即可
vim /uc/jboss-5.1.0.GA/bin/run.sh
if [ "$linux" = "true" ]; then
#JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true
-Djava.rmi.server.hostname=10.0.2.17 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.password.file=/usr/java/jdk1.6.0_45/jre/lib/management/jmxremote.password \
-Dcom.sun.management.jmxremote.access.file=/usr/java/jdk1.6.0_45/jre/lib/management/jmxremote.access \
-Dcom.sun.management.jmxremote.ssl=false "
fi