ngs 开关 上传 而且 pid code row 选项 ooo
参考博文: http://blog.51cto.com/wzlinux/1692444
JMX 的全称是 Java Management Extensions,即 Java 管理扩展.Java 程序会开放一些端口,用来获取运行状况.在 Zabbix 1.8 以前,只能使用 Zapcat 来监控 JMX,并需要修改源代码来支持,非常麻烦.另一种方法是使用 jmx-cmd-client,他的作用是从命令行去获取 JMX 信息,可以在它的上层包装一个程序,用来获取 JMX 数据.
从 Zabbix 2.0 开始,内置了监控 JMX 的功能,叫做 "Zabbix Java Gateway",在 Zabbix Server 和 Zabbix Proxy 上启动名为 "Zabbix Java Gateway" 的进程,当需要获取 JMX 数据时,Zabbix Server 会 "问"JMX Gateway,然后 JMX Gateway 根据 JMX 管理 API 去查询需要的数据.在使用时,Java 程序不需要在代码中新增任何东西,只需要在启动的时候加上一些 JVM 参数,使得它可以支持使用端口监控 JMX.
wKiom1loJDSiVsf-AACrrkazRAg707.jpg
一,Server 端安装配置 JDK
rpm -ivh jdk-8u45-linux-x64.rpm
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
系统配置立即生效
source /etc/profile.d/java.sh
查看 JAVA 版本
java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
二,Zabbix Server 的编译
1,编译 zabbix 的时候需要添加参数 --enable-java
2,备份 zabbix_server.conf 和 zabbix_agentd.conf 文件,重新编译安装 zabbix
cd zabbix-3.2.6
./configure \
--prefix=/usr/local/zabbix \
--sysconfdir=/etc/zabbix \
--enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-ssh2 \
--with-openssl \
--enable-java
请自行查阅解决依赖关系.
三,Java gateway 的配置
1,修改 zabbix_java 相关选项
zabbix_java 的目录结构如下
zabbix_java/
├── bin
│ └── zabbix-java-gateway-3.2.6.jar
├── lib
│ ├── android-json-4.3_r3.1.jar
│ ├── logback-classic-0.9.27.jar
│ ├── logback-console.xml
│ ├── logback-core-0.9.27.jar
│ ├── logback.xml
│ └── slf4j-api-1.6.1.jar
├── settings.sh
├── shutdown.sh
└── startup.sh
设定 java gateway 的监听端口以及进程个数
cd /usr/local/zabbix/sbin/zabbix_java/
vim settings.sh
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 依旧可以启动但是是不工作的.
2,修改 zabbix_server 文件
既然 java gateway 运行了,你要告诉 zabbix server 去 ×××java gateway,在配置文件中开启如下几项参数.
JavaGateway=127.0.0.1
JavaGatewayPort=10052 #和上面的 LISTEN_PORT 一样
StartJavaPollers=3 #这个数值要小于上面的 START_POLLERS
这三项都需要配置,其中 StartJavaPollers 会被视为开关性质的参数.0 或者未配置将被系统认为不具有 Java 信息抓取能力.这点在 Zabbix JMX Monitoring Wiki 中未提及,但是实际效果就是这样.同时 Zabbix Proxy 的配置文件解析中也有介绍此参数的含义.
3,启动 zabbix_java
找到 zabbix_java 目录路径,然后执行命令./startup.sh,并重启 zabbix server.
自此 Server 端已经配置完成,下面配置 Agent 端的设定.
四,Agent 端配置
1,修改 tomcat/bin/catalina.sh 文件
修改 catalina.sh 文件,添加
CATALINA_OPTS="-Xms1024m -Xmx1024m
-XX:NewRatio=4
-XX:PermSize=192m
-XX:MaxPermSize=192m
-Xss256k
-XX:SurvivorRatio=4
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false #不进行验证
-Dcom.sun.management.jmxremote.port=12345 #jmx 远程监控端口
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=10.0.1.13" #10.0.0.15 是 Agent 的本地 IP
就这种方式而言,需要注意的是 catalina.sh 中提供的默认变量名 JAVA_OPTS 和 CATALINA_OPTS.由于 JAVA_OPTS 所添加的参数会在 tomcat 开启和关闭时都运行,所以如果你把 -Dcom.sun.management.jmxremote.port=12345 写在 JAVA_OPTS 中,就会在关闭 tomcat 时出现如下错误,从而无法关闭.
Error: Exception thrown by the agent : java.rmi.server.ExportException : Port
already in use: 12345;nested exception is:
java.net.BindException: Address already in use: JVM_Bind
而 CATALINA_OPTS 只会在开启 tomcat 的时候运行,所以应该将这些配置写在 CATALINA_OPTS 中.
五,服务器端自定义监控项
Java gateway 已经运行,Zabbix Server 也知道去 ××× 它,Agent Tomcat 在启动的时候也支持了 JMX 远程监控,那下面我们就改进行一下 web 页面的设定了.
1,添加主机的地方填写如下
wKioL1lnOoORA0nbAAD4IUKDHkE543.jpg
wKiom1lnOoORR1zKAAC6xTGxl9w527.jpg
2,我们切换到 Items 可以自定义要监控的 key
wKiom1lnOqexFqdwAADuk1D9B3U919.jpg
3,配置 OK 状态
wKioL1lnPMDjEKz9AACm_FQ_M8M880.jpg
4,导入自定义模板
zabbix 自带的 JMX 监控 tomcat 的参数比较少,而且感觉监控的数值意义不是很大,我再附件上传了我使用的自定义 JVM 一些参数的模板,大家可以直接导入使用,效果如下.
wKioL1lnQeODBwcjAAEzIMH2nBM687.jpg
wKioL1lnQebD-s0xAAIWccJqqOc571.jpg
官方还有很多key我们没有设定,可以查看下面的参考官方地址.然后自定义更多的监控参数.
参考文档:
https://www.zabbix.com/documentation/3.2/manual/config/items/itemtypes/jmx_monitoring https://www.zabbix.com/documentation/3.2/manual/concepts/java http://tomcat.apache.org/tomcat-7.0-doc/monitoring.html
如果想详细理解,搭建请看上面的官方文档讲解.
Zabbix3.2.6 之通过 JMX 监控 Tomcat
来源: http://www.bubuko.com/infodetail-2470433.html