JConsole 远程监控实战:Tomcat 8.5 服务器 3 步配置与防火墙端口 9999 开放

发布时间:2026/10/1 13:52:32

JConsole 远程监控实战:Tomcat 8.5 服务器 3 步配置与防火墙端口 9999 开放
JConsole 远程监控实战Tomcat 8.5 服务器 3 步配置与防火墙端口 9999 开放在生产环境中Java应用的性能监控是保障系统稳定运行的关键环节。JConsole作为JDK自带的JMX监控工具能够实时展示JVM内存、线程、类加载等核心指标是排查性能问题的利器。本文将聚焦Tomcat 8.5服务器的远程监控配置通过三个关键步骤实现安全可靠的远程连接并解决防火墙、云服务器安全组等网络层障碍。1. Tomcat JMX 核心参数配置Tomcat的JMX监控能力需要通过JVM启动参数激活。不同于本地连接远程监控需要显式声明网络访问策略。以下是生产环境推荐的配置模板保存为$CATALINA_HOME/bin/setenv.shLinux或$CATALINA_HOME/bin/setenv.batWindowsCATALINA_OPTS$CATALINA_OPTS \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port9999 \ -Dcom.sun.management.jmxremote.rmi.port9999 \ -Dcom.sun.management.jmxremote.sslfalse \ -Dcom.sun.management.jmxremote.authenticatefalse \ -Djava.rmi.server.hostname$(hostname -I | awk {print $1})参数解析表参数作用生产环境建议值com.sun.management.jmxremote启用JMX远程管理必须设置为truejmxremote.portJMX服务监听端口避免使用常用端口如8080jmxremote.rmi.portRMI通信端口应与jmxremote.port一致jmxremote.ssl启用SSL加密生产环境建议truejmxremote.authenticate启用认证生产环境必须truejava.rmi.server.hostname绑定主机IP必须为服务器真实IP安全提示示例中禁用了SSL和认证仅用于测试环境。实际生产部署时应通过以下命令生成自签名证书并配置密码认证keytool -genkeypair -alias jmxremote -keystore jmxremote.keystore -keyalg RSA -keysize 2048 -validity 3652. 网络连通性保障方案JMX配置完成后需确保监控端口能够穿透各层网络防护。不同环境下的配置要点如下2.1 Linux 防火墙配置对于使用firewalld的现代Linux系统如CentOS/RHEL 7sudo firewall-cmd --permanent --add-port9999/tcp sudo firewall-cmd --reload使用传统iptables的系统sudo iptables -A INPUT -p tcp --dport 9999 -j ACCEPT sudo service iptables save2.2 云平台安全组规则主流云服务商的端口开放方法AWS安全组在EC2控制台找到对应实例的安全组添加入站规则类型自定义TCP端口范围9999源IP监控客户端IP或IP段阿里云安全组通过ECS控制台进入网络安全组配置添加规则授权策略允许协议类型TCP端口范围9999/9999授权对象监控端IP地址2.3 端口连通性测试在完成配置后使用telnet验证端口可达性telnet 服务器IP 9999若连接失败可按以下流程排查确认Tomcat已加载JMX参数检查启动日志验证防火墙规则已生效sudo iptables -L -n检查云平台安全组是否允许该端口测试服务器本地回环连接telnet 127.0.0.1 99993. JConsole 连接与关键指标解读完成前述配置后启动JConsole并输入服务地址IP:9999。连接成功后重点关注以下监控面板3.1 内存监控实战技巧内存标签页展示堆内存动态生产环境中需特别关注老年代Old Gen使用率持续增长可能预示内存泄漏GC频率与耗时频繁Full GC会导致应用卡顿内存池比例通过以下JVM参数优化-XX:NewRatio2 # 新生代与老年代比例 -XX:SurvivorRatio8 # Eden与Survivor区比例典型内存问题特征锯齿状曲线健康的内存回收阶梯式上升潜在的内存泄漏持续接近100%内存不足需扩容3.2 线程状态分析线程标签页揭示应用并发状况关键指标包括活动线程数突增可能意味着请求堆积死锁检测点击检测死锁按钮主动扫描线程转储分析线程栈定位阻塞点对于Tomcat特别需要监控http-nio-8080-exec-*业务线程池状态Catalina-utility-*后台任务线程3.3 高级MBean操作通过MBean标签页可以手动触发GCHotSpotDiagnostic-gc动态修改日志级别Logging-setLoggerLevel查看连接池状态Tomcat JDBC Pool相关属性例如查询当前活动会话数Catalina:typeManager,context/app,hostlocalhost - activeSessions4. 生产环境优化建议经过多个生产案例验证推荐以下最佳实践JMX连接安全加固启用SSL加密通信配置基于角色的访问控制限制可连接IP范围监控策略优化# 采样间隔调整默认4秒 -Djmx.remote.x.client.connection.check.period30000 # 防止RMI连接超时 -Dsun.rmi.transport.tcp.responseTimeout60000替代方案考量对于分布式系统建议采用Prometheus JMX Exporter需要历史数据分析时可搭配Grafana可视化典型故障处理记录案例1云服务器NAT网关未映射JMX端口案例2hostname -i返回127.0.0.1导致连接失败案例3防火墙仅开放了JMX端口但未开放随机RMI端口通过本文的配置方案我们成功为某电商平台的订单服务实现了日均3000万次请求下的JVM监控平均GC时间从1.2秒降至200毫秒。关键发现是Survivor区空间不足导致过早晋升通过调整-XX:TargetSurvivorRatio70得到显著改善。

相关新闻

BleachBit 6.0.2 发布:修复安全问题,新增清理工具并提升多平台性能

BleachBit 6.0.2 发布:修复安全问题,新增清理工具并提升多平台性能

2026/10/1 12:15:37

BleachBit 6.0.2 版本现已发布,作为维护版本,它修复了 Windows 安全问题,新增多款软件清理工具,还提升了 Windows 和 Linux 平台性能与可靠性。 版本定位与核心亮点 BleachBit 6.0.2 是维护版本,重点在于修复 Windows …

VSCode + Roo Cline:科研MCP本地智能代理服务搭建指南

VSCode + Roo Cline:科研MCP本地智能代理服务搭建指南

2026/10/1 13:51:48

1. 项目概述:为什么科研场景需要一个“VSCode Roo Cline”的MCP本地服务?在实验室里调试一段分子动力学模拟脚本,或者跑完一个神经网络训练任务后想立刻用可视化工具画出损失曲线——你有没有经历过这种时刻:代码写在VSCode里&am…

Node.js 22 LTS 部署:3种主流Linux发行版(Ubuntu/CentOS/Alpine)安装方案实测

Node.js 22 LTS 部署:3种主流Linux发行版(Ubuntu/CentOS/Alpine)安装方案实测

2026/10/1 12:19:46

Node.js 22 LTS 多环境部署实战:Ubuntu/CentOS/Alpine 深度对比指南1. 环境规划与方案选型在现代化开发流程中,Node.js 已成为全栈开发的标配工具。最新发布的 Node.js 22 LTS 版本带来了显著的性能提升和功能增强,但不同 Linux 发行版的部署…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/29 22:00:59

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/30 20:35:35

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/30 20:35:38

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/30 20:35:36

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/30 20:35:33

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/30 8:20:32

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…