JMX监控集成方案及验证指南

Tomcat 部署验证

安装tomcat(docker安装,删除注释)

services:
  tomcat:
    image: tomcat:8.5
    ports:
      - "8080:8080"
      - "12345:12345"
    environment:
      CATALINA_OPTS:
        -Dcom.sun.management.jmxremote
        -Dcom.sun.management.jmxremote.port=12345 #端口
        -Dcom.sun.management.jmxremote.rmi.port=12345
        -Dcom.sun.management.jmxremote.authenticate=false
        -Dcom.sun.management.jmxremote.ssl=false
        -Djava.rmi.server.hostname=10.1.1.11 #容器自己的ip

启动 Tomcat:

docker compose up -d 

检查 JMX 端口监听:

netstat -tuln | grep 12345

应看到 12345 端口处于监听状态。

二、Zabbix 服务部署验证

配置jdk

sudo yum install java-1.8.0-openjdk

使用:cmdline-jmxclient-0.10.3.jar 测试

java -jar cmdline-jmxclient-0.10.3.jar - 10.1.1.11:12345 java.lang:type=Memory NonHeapMemoryUsage

配置 zabbix_server.conf

LogType=console
DBHost=zabbix-mysql
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
User=zabbix
JavaGateway=zabbix-java-gateway  #网关地址
JavaGatewayPort=10052  #网关端口
StartJavaPollers=20 #网关并发数

 vi /opt/zabbix-docker/docker-compose.yaml

services:
  zabbix-web-nginx-mysql:
    image: zabbix/zabbix-web-nginx-mysql:centos-5.2-latest
    restart: always
    environment:
      - DB_SERVER_HOST=zabbix-mysql
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix
      - MYSQL_ROOT_PASSWORD=root
      - ZBX_SERVER_HOST=zabbix-server-mysql
    ports:
      - 8080:8080
    volumes:
      - /etc/localtime:/etc/localtime
      - /data2/zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
    networks:
      - zbx_net
    depends_on:
      - zabbix-server-mysql
      - zabbix-mysql

  zabbix-mysql:
    image: mysql:8.0.23
    restart: always
    ports:
      - 3306:3306
    environment:
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix
      - MYSQL_ROOT_PASSWORD=root
    command:
      - mysqld
      - --default-authentication-plugin=mysql_native_password
      - --character-set-server=utf8
      - --collation-server=utf8_bin
    volumes:
      - /etc/localtime:/etc/localtime
      - /data2/zabbix/db:/var/lib/mysql
    networks:
      - zbx_net

  zabbix-java-gateway:
    image: zabbix/zabbix-java-gateway:centos-5.2-latest
    restart: always
    ports:
      - 10052:10052
    volumes:
      - /etc/localtime:/etc/localtime
    environment:
      - ZBX_JAVAGATEWAY_ENABLE=true
    networks:
      - zbx_net
  zabbix-server-mysql:
    image: zabbix/zabbix-server-mysql:centos-5.2-latest
    restart: always
    volumes:
      - /data2/zabbix/zabbix-server:/etc/zabbix
      - /data2/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
      - /etc/localtime:/etc/localtime
    ports:
      - 10051:10051
    environment:
      - DB_SERVER_HOST=zabbix-mysql
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix
      - MYSQL_ROOT_PASSWORD=root
      - ZBX_JAVAGATEWAY=zabbix-java-gateway
      - ZBX_JAVAGATEWAYPORT=10052
    depends_on:
      - zabbix-mysql
      - zabbix-java-gateway
    networks:
      - zbx_net

networks:
  zbx_net:
    driver: bridge

docker compose up -d

检查容器状态:

docker compose ps

所有容器应处于 Up 状态。

验证 Zabbix Java Gateway:

docker logs zabbix-docker_zabbix-server-mysql_1 | grep "Java Gateway"

应显示 Java Gateway 连接成功。

三、Zabbix Web 配置

登录 Zabbix Web:

浏览器访问 http://服务端IP:8080

默认账号:Admin,密码:zabbix

添加 JMX 监控项:

步骤:配置 → 主机 → 选择目标主机 → JMX 接口 → 添加监控项

关键参数:

类型:JMX agent

键值:jmx["java.lang:type=Memory",NonHeapMemoryUsage]

端口:12345

IP 地址:Tomcat 宿主机的 IP(10.1.1.12)

链接 JMX 模板:

步骤:配置 → 主机 → 选择目标主机 → 模板 → 选择 Template JMX Generic

添加jmx配置

 添加模版

观察主机jmx项状态

四、故障排查清单

网络连通性:

# 从 Zabbix Server 容器测试到 Tomcat 的连接

docker exec -it zabbix-docker_zabbix-server-mysql_1 telnet 10.1.1.11:12345

应显示 Connected。

防火墙规则:

# 宿主机执行

sudo firewall-cmd --list-ports | grep -E "12345|10052"

确保 12345/tcp 和 10052/tcp 开放。

日志分析:

Tomcat 日志:docker logs zabbix-docker_tomcat_1

Zabbix Server 日志:docker logs zabbix-docker_zabbix-server-mysql_1

Zabbix Java Gateway 日志:docker logs zabbix-docker_zabbix-java-gateway_1

五、优化建议

JMX 安全加固:

启用认证:authenticate=true

配置 SSL:ssl=true

限制访问 IP:通过防火墙规则

Zabbix 性能调优:

调整 StartJavaPollers 值(根据监控规模)

优化 MySQL 性能(如启用查询缓存)

监控项预配置:

使用 Zabbix 官方 JMX 模板(Template App JMX)

预定义关键指标(如堆内存、线程数、类加载数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值