centos环境tomcat如何监控
2025-12-29 10:10:440
CentOS环境下Tomcat监控实践
一基础运行与日志检查
服务状态与启停
使用systemd管理:查看状态
systemctlstatustomcat.service;启动
systemctlstarttomcat.service;重启
systemctlrestarttomcat.service;设置开机自启
systemctlenabletomcat.service。适用于CentOS7+。
进程与资源
进程存活:
ps-ef|greptomcat或
ps-ef|grepjava|greptomcat获取PID。
资源占用:
top/
htop实时查看CPU/内存;
vmstat、
free、
iostat、
netstat/ss、
dstat、
iftop辅助排查系统瓶颈。
日志观测
关键日志位于$CATALINA_HOME/logs:
catalina.out(主日志)、
localhost*.log(应用日志)。常用
tail-fcatalina.out实时跟踪。
JVM关键指标
GC与内存:
jstat-gcutil(每1s刷新一次GC/内存统计)。1000
堆与线程快照:
jmap生成堆转储,
jcmd发送诊断命令;配合VisualVM/JConsole做可视化分析。
二JVM与远程可视化监控
JMX远程配置(JConsole/VisualVM)
在
bin/catalina.sh的
JAVA_OPTS增加:
-Djava.rmi.server.hostname=<服务器IP>
-Dcom.sun.management.jmxremote.port=1090
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
注意:开放1090及RMI动态端口,并放行防火墙;远程使用
jconsole连接。:1090
Tomcat远程JMXListener(可选)
在
server.xml的
内添加:
rmiRegistryPortPlatform="10001"rmiServerPortPlatform="10002"useLocalPorts="true"/>适用于更细粒度的生命周期与平台MBean管理。
三指标采集与可视化方案
Prometheus+JMXExporter+Grafana
部署JMXExporterJavaAgent:下载
jmx_prometheus_javaagent-至$CATALINA_HOME/lib,在.jar catalina.sh添加:JAVA_OPTS="$JAVA_OPTS-javaagent:/path/jmx_prometheus_javaagent-.jar=9010:/path/jmx-exporter.yaml" 配置
jmx-exporter.yaml(可按需采集GlobalRequestProcessor、ThreadPool、Manager等指标),重启Tomcat。验证:访问
http://查看指标;Prometheus抓取:9010/jmx :9010/metrics,Grafana导入Tomcat仪表盘进行可视化与告警。轻量级APM/插件
JavaMelody:添加依赖并在
web.xml注册MonitoringFilter,访问http://查看请求统计、JVM、SQL等。:8080/monitoring LambdaProbe:将
probe.war放入webapps即可监控线程、会话、JVM等(适合快速接入)。四进程自愈与可用性监控
Shell守护脚本(进程与接口双检)
思路:用
ps获取PID;用curl-m10-w"%{http_code}"校验业务接口;进程不存在或接口非200时执行startup.sh重启,并记录日志。建议通过crontab定时执行(如每10s一次),并接入邮件/企业微信/钉钉告警。
进程管理工具
Supervisor:配置
[program:tomcat]实现自动拉起与状态监控,适合无systemd或容器化前置场景。五关键告警阈值与排障要点
建议阈值与动作
进程存活:Tomcat进程消失→立即告警并重启。
HTTP健康:业务接口连续失败(如3次)→告警并尝试重启。
JVMGC:
jstat观察FGC频繁/FullGC时间过长→触发堆转储并分析。线程池:
CatalinaThreadPool的currentThreadsBusy长期接近maxThreads→扩容或优化慢请求。会话:
Manager的rejectedSessions增长→检查session超时与并发上限。系统资源:
CPU>80%、可用内存低、`磁盘空间不足**→横向扩容或清理。快速排障清单
查看catalina.out/localhost.log*错误堆栈与异常频率。
jstat-gcutil观察Eden/Survivor/Old与YGC/FGC趋势。1000 jmap生成堆转储,用EclipseMAT分析泄漏对象。核对JMX/RMI端口连通性与防火墙策略;验证JMXExporter:9010/metrics是否可访问。
声明:本文来自用户分享和网络收集,仅供学习与参考,测试请备份。

