监控ZabbixZabbix使用Zabbix-java-gateway监控Tomcat
王先森介绍
Zabbix本身不支持直接监控Java,在zabbix 1.8以前,只能使用Zapcat来做代理监控,而且要修改源代码,非常麻烦。所有后来为了解决这个监控问题,Zabbix和Java双方应运生成了各自的代理监控程序:zabbix 2.0以后添加了服务进程zabbix-java-gateway;Java有了JMX,全称是Java Management Extensions,即Java管理扩展。
- zabbix-Web前端界面,它通过数据库里数据展示。和其它组件不直接关联
- zabbix-server运行在10051端口,Zabbix-server要知道java应用程序的某项性能的使用时候 ,会启动自身的一个Zabbix-JavaPollers进程去链接zabbix-JavaGateway请求数据,而zabbix-Javagateway收到请求后并使用;
- Zabbixserver有一个特殊的进程用来连接Javagateway叫StartJavaPollers;Javagateway通过配置文件中START_POLLERS参数设置启动多个线程,在zabbix服务器这边如果一个连接所用时间超过Timeout,将会被中断,但是Javagateway将继续从JMXcounter取数据。所以StartJavaPollers设置的值要小于等于START_POLLERS设置的值。
- zabbix-java-gateway工作在10052端口,Zabbix-Javagateway就相当于一个代理,它负责收集客户端tomcat数据。图中的12345端口是在配置tomcat时指定的,可是自定义。
安装配置tomcat服务
1 2 3 4 5 6 7 8 9 10 11
| # wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.61/bin/apache-tomcat-8.5.61.tar.gz # tar xf apache-tomcat-8.5.61.tar.gz -C /app/ # vim /app/apache-tomcat-8.5.61/bin/catalina.sh CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=10.1.1.200 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" # # /app/apache-tomcat-8.5.61/bin/startup.sh
|
验证
windows 有java环境的在jdk/bin目录下运行jconsole
安装配置zabbix-java-gateway
1 2 3 4 5 6 7 8 9 10
| yum -y install zabbix-java-gateway
[root@bj_proxy ~]$grep ^[a-Z] /etc/zabbix/zabbix_java_gateway.conf LISTEN_IP="0.0.0.0" // 本机ip地址,如果和server安装在相同的位置可以不修改 LISTEN_PORT=10052 // 监听端口 PID_FILE="/var/run/zabbix/zabbix_java.pid" START_POLLERS=5 // 设置启动多个线程,这里和server段相同
[root@bj_proxy ~]$systemctl start zabbix-java-gateway.service [root@bj_proxy ~]$systemctl enable zabbix-java-gateway.service
|
zabbix-java-gateway默认工作在10052端口
配置zabbix-server
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| [root@zabbix ~]# grep ^[a-Z] /etc/zabbix/zabbix_server.conf LogFile=/var/log/zabbix/zabbix_server.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_server.pid SocketDir=/var/run/zabbix DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix StartDiscoverers=2 JavaGateway=127.0.0.1 JavaGatewayPort=10052 StartJavaPollers=5 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log Timeout=4 AlertScriptsPath=/usr/lib/zabbix/alertscripts ExternalScripts=/usr/lib/zabbix/externalscripts LogSlowQueries=3000
# systemctl restart zabbix-server.service
|
web添加监控