Ubuntu 上监控 Tomcat 性能的可落地方案

一 监控体系与核心指标
| 指标类别 | 关键指标 | 建议阈值 |
|---|---|---|
| 服务器 | CPU 使用率 | 警戒线 80%,紧急线 90% |
| 服务器 | 内存使用率 | 警戒线 85%,紧急线 90% |
| 服务器 | 磁盘 I/O 延迟 | 读写延迟 < 20ms |
| Tomcat 线程池 | 当前活跃线程数 | 达到 maxThreads 的 75% 预警,90% 紧急 |
| Tomcat 连接器 | 等待队列大小 | 预警 50,紧急 100 |
| Tomcat 请求 | 平均响应时间 | 预警 500ms,紧急 1000ms |
| Tomcat 请求 | 错误率 | 预警 1%,紧急 5% |
| JVM 内存 | 堆/非堆使用率 | 堆 80%/90%,非堆 85%/95% |
| JVM GC | GC 暂停时间 | 预警 200ms,紧急 500ms |
二 快速上手 JMX 与可视化工具
启用 JMX(推荐在 conf/server.xml 添加监听器,更规范):
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"rmiRegistryPortPlatform="10001"rmiServerPortPlatform="10002"useLocalPorts="true" />CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10001 -Dcom.sun.management.jmxremote.rmi.port=10002 -Djava.rmi.server.hostname=<服务器公网或内网IP> -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"远程可视化连接要点:
三 访问日志与日志分析
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b %D "%{User-Agent}i"" />四 Prometheus Grafana 与告警
scrape_configs:- job_name: 'tomcat'metrics_path: '/metrics'static_configs:- targets: ['<TOMCAT_IP>:8080']groups:- name: tomcat_alertsrules:- alert: HighResponseTimeexpr: tomcat_request_seconds_sum / tomcat_request_seconds_count > 1for: 5mlabels:severity: warningannotations:summary: "Tomcat高响应时间告警"description: "平均响应时间超过1秒,当前值: {{ $value | humanizeDuration }}"五 命令行与脚本巡检