配置zabbix服务端
安装zabbix-java-gateway
yum -y install zabbix-java-gateway
# 启动
systemctl start zabbix-java-gateway
# 开机启动
systemctl enable zabbix-java-gateway
zabbix-java-gateway默认工作在10052端口
zabbix-server默认工作在10051端口,zabbix-agent默认工作在10050端口
配置zabbix_java_gateway.conf和zabbix_server.conf
2个文件都在/etc/zabbix下
重点:Java-gateway配置文件的START_POLLERS参数 >= zabbix_server配置文件的StartJavaPollers参数,建议一样,都设为5。
配置zabbix_java_gateway.conf
第9行 LISTEN_IP="0.0.0.0" # 本机ip地址,如果和server安装在相同的位置可以不修改
第17行 LISTEN_PORT=10052 # 端口可以修改为其他,在server段需要相同的配置
第35行 START_POLLERS=5 # 设置启动多个线程,这里和server段相同
第43行 TIMEOUT=3 # 超时时间
配置zabbix_server.conf:
让zabbix-server服务能连接到zabbix-java-gateway服务
282 ### Option: JavaGateway # 找到这里配置以下三个参数
283 # IP address (or hostname) of Zabbix Java gateway.
284 # Only required if Java pollers are started.
285 #
286 # Mandatory: no
287 # Default:
288 JavaGateway=127.0.0.1 # 如果是本机安装直接使用127.0.0.1
289
290 ### Option: JavaGatewayPort
291 # Port that Zabbix Java gateway listens on.
292 #
293 # Mandatory: no
294 # Range: 1024-32767
295 # Default:
296 JavaGatewayPort=10052 # 端口号和zabbix_java_gateway.conf配置文件里的LISTEN_PORT对应
297
298 ### Option: StartJavaPollers
299 # Number of pre-forked instances of Java pollers.
300 #
301 # Mandatory: no
302 # Range: 0-1000
303 # Default:
304 StartJavaPollers=5 # 线程数和客户端配置对应 不能少于客户端数
StartJavaPollers<=START_POLLERS
重启zabbix-server和zabbix-java-gateway服务
systemctl restart zabbix-server
systemctl restart zabbix-java-gateway
配置Linux系统客户端
本例tomcat安装在Linux系统上,稍后再写windows
配置上tomcat
添加tomact中JMX的参数
打开tomcat/bin/catalina.sh文件,在#!/bin/sh下面添加如下
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=12345
-Djava.rmi.server.hostname=127.0.0.1"
注意添加的位置在#!/bin/sh下面。
注意-Djava.rmi.server.hostname=192.168.2.32要加了,hostname填本机的ip地址,除非是127.0.0.1
查看12345端口监听情况:netstat -antlp|grep 12345
这里有一点提醒,打开/etc/zabbix/zabbix_java_gateway.conf,在文件有末尾有如下代码:
# uncomment to enable remote monitoring of the standard JMX objects on the Zabbix Java Gateway itself
#JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345
# -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
取消注释后,zabbix_java_gateway本身就开启了JMX功能,就可能被远程监控。
添加catalina-jmx-remote.jar
在tomcat/lib下执行:wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.38/bin/extras/catalina-jmx-remote.jar
要找到对应tomcat版本的catalina-jmx-remote.jar。访问Tomcat各个版本网站,从上面一直找下去。catalina-jmx-remote.jar文件在tomcat版本的/bin/extras/目录下,只要替换wget后面url即可。
重启tomcat
配置zabbix-web
打开界面,配置 >> 主机 >> 主机zabbix server(我的zabbix-java-gateway和zabbix-server安装在同一台服务器上)
找到JMX接口,配置如下,点击“添加”按钮
点击“更新”按钮
反过来看开头的那幅图,Zabbix-server通过JavaPollers进程调用zabbix-java-gateway获得tomcat数据,而zabbix-java-gateway就是通过这里配置的tomcat地址和端口,连接到tomcat从而获取到数据。
找到主机,如果JMX显示颜色,则配置成功。
注意:必需添加添加的tomcat的模板,如zabbix自带的Template App Apache Tomcat JMX或自定义的模板,后面JMX才能变绿,否则永远不亮
或者查看/var/log/zabbix/zabbix-server.log日志,出现enabling JMX agent checks on host “127.0.0.1”: host became available则表示能连接上。