zabbix5.0实战监控Tomcat
1、准备环境
- 一个部署完成的zabbix5.0环境(IP:192.168.1.51)
详细的安装参考:https://blog.csdn.net/yu33575/article/details/110819091
- 一个部署了Tomcat的服务器(IP:192.168.1.52)
详细的安装参考:https://blog.csdn.net/yu33575/article/details/113337166
2、Zabbix监控Tomcat原理(图片来源于网络)
通俗地讲: zabbix-server会开启zabbix-javaPoller进程,去连接zabbx_java开启的zabbix-JavaGateway进程请求数据,而zabbix-JavaGateway接收到请求后通过JMX并开启12345端口,提供性能数据。
3、配置Tomcat客户端
- 配置Tomcat JMX
JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。
vi /usr/local/tomcat/apache-tomcat-9.0.41/bin/catalina.sh #在开头添加以下配置
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=192.168.1.52"
参数 | 说明 |
---|---|
-Dcom.sun.management.jmxremote | 启用JMX |
-Dcom.sun.management.jmxremote.authenticate=false | 是否开启认证(有需求的话可以开启认证,需定义用户名和密码) |
-Dcom.sun.management.jmxremote.ssl=false | 是否使用 ssl |
-Dcom.sun.management.jmxremote.port=12345 | 监听端口 |
-Djava.rmi.server.hostname=192.168.1.52 | Tomcat 所在服务器 IP 地址 |
/usr/local/tomcat/apache-tomcat-9.0.41/bin/shutdown.sh #重启Tomcat,出现12345端口
/usr/local/tomcat/apache-tomcat-9.0.41/bin/startup.sh
4、配置zabbix服务端
- 安装配置JDK
这里下载的是JDK8.0版,[jdk-8u181-linux-x64.tar.gz 提取码为QsVf]
tar zxvf jdk-8u181-linux-x64.tar.gz
mkdir /usr/local/jdk #创建jdk的目录用来存放解压后的文件
mv jdk1.8.0_181/ /usr/local/jdk/
修改配置文件(添加环境变量)
vi /etc/bashrc #(或者/etc/profile)
..... #末尾添加
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_181
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/bashrc #source命令使定义的环境变量生效
java -version
- 安装 zabbix-java-gateway
yum list zabbix*
yum install -y zabbix-java-gateway
systemctl start zabbix-java-gateway
systemctl enable zabbix-java-gateway
netstat -antup | grep 10052
tcp6 0 0 :::10052 :::* LISTEN 25147/java
同时可以使用编译安装 zabbix-java-gateway ,只需在编译安装 zabbix-server 时加上–enable-java 模块以支持JMX监控,如果之前编译没有加入该模块,需重新编译,但注意:不要 make install 否则都将会被重置! 编译完成后就会在你定义的路径下出现一个目录文件zabbix_java
- 修改 java-gateway 和 zabbix-server 的配置
vi /etc/zabbix/zabbix_java_gateway.conf #将以下内容取消注释并修改为如下
...
LISTEN_IP="0.0.0.0" #监控地址(默认地址)
LISTEN_PORT=10052 #监听端口
PID_FILE="/var/run/zabbix/zabbix_java.pid" #进程文件路径
START_POLLERS=5 #开启的工作进程数
...
vi /etc/zabbix/zabbix_server.conf #将以下内容取消注释并修改为如下(默认的情况下,zabbix server未启用javaPollers)
...
JavaGateway=127.0.0.1 #JavaGateway的地址(本机安装可使用127.0.0.1)
JavaGatewayPort=10052 #JavaGateway的端口号
StartJavaPollers=5 #开启的进程数量(大于客户端的数量)
...
systemctl restart zabbix-java-gateway
systemctl restart zabbix-server
- 下载测试工具 cmdline-jmxclient-0.10.3.jar 进行测试
测试工具下载地址为:https://pan.baidu.com/s/1GshHR6OgSQdaIajKI48IGg 提取码:WqoF
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.52:12345 java.lang:type=Memory HeapMemoryUsage
出现回显信息,表示JMX配置生效!!
5、配置Zabbix-Web界面
- 创建一个主机利用JMX接口监控tomcat被监控端
- 添加tomcat模板(这里使用的是zabbix自带的), 也可以根据需求自定义模板,关联到主机上即可
注意:ZBX和JMX 变为绿色表示配置成功,也可查看/var/log/zabbix/zabbix-server.log日志,出现enabling Zabbix agent checks on host “Tomcat-agent”: host became available 表示配置成功