实现zabbix主动模式监控tomcat及所在主机
#1.环境准备,centos8,zabbix6.0为例
IP 主机名 服务
10.0.0.150 zabbixserver.tan.com zabbix-server、zabbix-java-gateway、agent、mariadb
10.0.0.160 tomcat1.tan.com JDK8、tomcat8、zabbix-agent
#2.安装zabbix-server、zabbix-java-gateway、mariadb-server
#安装zabbix-server mariadb
[root@zabbix-server ~]#rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm
[root@zabbix-server ~]#sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
[root@zabbix-server ~]#yum clean all
[root@zabbix-server ~]#dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
#centos8默认安装的是mariadb10.3版本,此版本zabbix需要mariadb10.5版本
[root@zabbix-server ~]#vim /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.5/centos8-amd64
module_hotfixes=1
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
[root@zabbix-server ~]#dnf clean all
33 files removed
[root@zabbix-server ~]#dnf install -y mariadb mariadb-server
#3.启动mariadb
[root@zabbix-server ~]#systemctl enable --now mariadb
#4.准备数据库并授权
[root@zabbix-server ~]#mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.28-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> create user zabbix@'%' identified by 'zabbix';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'%';
Query OK, 0 rows affected (0.008 sec)
#5.导入数据
[root@zabbix-server ~]#zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
Enter password:zabbix
#6.配置zabbix-server
[root@zabbix-server ~]#grep '^[^#]' /etc/zabbix/zabbix_server.conf
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/run/zabbix/zabbix_server.pid
SocketDir=/run/zabbix
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
JavaGateway=localhost
JavaGatewayPort=10052
StartJavaPollers=10
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
LogSlowQueries=3000
AllowRoot=1
User=root
StatsAllowedIP=127.0.0.1
#7.配置前端php
[root@zabbix-server ~]#vi /etc/nginx/conf.d/zabbix.conf
server {
listen 80;
server_name 10.0.0.150;
#8.启动服务
[root@zabbix-server ~]#systemctl enable mariadb zabbix-server zabbix-agent nginx php-fpm --now
#9.验证服务
[root@zabbix-server ~]#systemctl is-active zabbix-server zabbix-agent nginx
active
active
active
#10.浏览器输入http://10.0.0.150/index.php,默认登录账户密码是Admin/zabbix

#11.修改agent为主动模式
[root@zabbix-server ~]#grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.150
ListenPort=10050
StartAgents=3
ServerActive=10.0.0.150
Hostname=10.0.0.150
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@zabbix-server ~]#systemctl restart zabbix-agent
#12.安装zabbix-java-gateway
#查看zabbix_server版本
[root@zabbix-server ~]#zabbix_server -V
zabbix_server (Zabbix) 6.0.7
#安装zabbix-java-gateway
[root@zabbix-server ~]#wget https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/8/x86_64/zabbix-java-gateway-6.0.7-1.el8.x86_64.rpm?spm=a2c6h.25603864.0.0.66a32dd56ItWnb
[root@zabbix-server ~]#mv 'zabbix-java-gateway-6.0.7-1.el8.x86_64.rpm?spm=a2c6h.25603864.0.0.66a32dd56ItWnb' zabbix-java-gateway-6.0.7-1.el8.x86_64.rpm
[root@zabbix-server ~]#yum install -y zabbix-java-gateway-6.0.7-1.el8.x86_64.rpm
#配置java-gateway
[root@zabbix-server ~]#grep "^[^#]" /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java_gateway.pid"
START_POLLERS=50
TIMEOUT=30
[root@zabbix-server ~]#systemctl restart zabbix-java-gateway
[root@zabbix-server ~]#systemctl enable zabbix-java-gateway
#13.在10.0.0.160上安装tomcat并配置
#tomcat安装脚本请见上一次作业
[root@tomcat ~]#bash tomcat8.5.sh
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
JDK 安装完成 [ OK ]
Created symlink /etc/systemd/system/multi-user.target.wants/tomcat.service → /usr/lib/systemd/system/tomcat.service.
TOMCAT 安装完成 [ OK ]
#验证
[root@tomcat ~]#echo "`hostname`" > /usr/local/tomcat/webapps/ROOT/index.html
[root@tomcat ~]#curl localhost:8080
tomcat
#14.配置zabbix-server调用java-gateway
[root@zabbix-server ~]#vim /etc/zabbix/zabbix_server.conf
JavaGateway=10.0.0.150
JavaGatewayPort=10052
StartJavaPollers=20
[root@zabbix-server ~]#systemctl restart zabbix-server
#验证java pollers
[root@zabbix-server ~]#ps -ef |grep java
zabbix 2584 1 0 20:21 ? 00:00:00 java -server -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml -classpath lib:lib/android-json-4.3_r3.1.jar:lib/logback-classic-1.2.9.jar:lib/logback-core-1.2.9.jar:lib/slf4j-api-1.7.32.jar:bin/zabbix-java-gateway-6.0.7.jar -Dzabbix.pidFile=/var/run/zabbix/zabbix_java_gateway.pid -Dzabbix.listenIP=0.0.0.0 -Dzabbix.listenPort=10052 -Dzabbix.startPollers=50 -Dzabbix.timeout=30 -Dsun.rmi.transport.tcp.responseTimeout=30000 com.zabbix.gateway.JavaGateway
root 2906 2880 0 20:30 ? 00:00:00 /usr/sbin/zabbix_server: java poller #1 [got 0 values in 0.000947 sec, idle 5 sec]
root 2907 2880 0 20:30 ? 00:00:00 /usr/sbin/zabbix_server: java poller #2 [got 0 values in 0.000094 sec, idle 5 sec]
root 2908 2880 0 20:30 ? 00:00:00 /usr/sbin/zabbix_server: java poller #3 [got 0 values in 0.001338 sec, idle 5 sec]
root 2909 2880 0 20:30 ? 00:00:00 /usr/sbin/zabbix_server: java poller #4 [got 0 values in 0.000179 sec, idle 5 sec]
root 2910 2880 0 20:30 ? 00:00:00 /usr/sbin/zabbix_server: java poller #5 [got 0 values in 0.000527 sec, idle 5 sec]
root 2911 2880 0 20:30 ? 00:00:00 /usr/sbin/zabbix_server: java poller #6 [got 0 values in 0.000345 sec, idle 5 sec]
root 2912 2880 0 20:30 ? 00:00:00 /usr/sbin/zabbix_server: java poller #7 [got 0 values in 0.000882 sec, idle 5 sec]
#15.tomcat开启JMX监控
#解释
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote #启用远程监控JMX
-Dcom.sun.management.jmxremote.port=12345 #默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可
-Dcom.sun.management.jmxremote.authenticate=false #不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false #不使用ssl认证
-Djava.rmi.server.hostname=192.168.0.22" #tomcat主机的ip
#添加以下配置
[root@tomcat ~]#vim /usr/local/tomcat/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.0.0.160"
#重启tomcat服务
[root@tomcat ~]#systemctl restart tomcat
#16.添加主机,添加jmx接口
验证JMX接口变绿
等一会就有监控数据了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具