JMX是Tomcat原生的Java管理工具,可实时监控JVM内存、线程、类加载、响应时间等核心指标。
/opt/tomcat/bin/catalina.sh),添加以下配置(替换your_server_ip为服务器IP,9090为JMX端口):CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=your_server_ip -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
保存后重启Tomcat使配置生效。jconsole或VisualVM工具连接:运行jconsole命令,在“远程进程”中输入localhost:9090,登录后可查看各项性能指标(如堆内存使用率、线程数、GC次数)。适合企业级场景,实现指标收集、存储、可视化及告警。
wget下载Prometheus二进制包,解压后修改prometheus.yml,添加Tomcat监控任务:scrape_configs:
- job_name: 'tomcat'
static_configs:
- targets: ['localhost:9090'] # JMX Exporter端口(后续配置)
启动Prometheus:./prometheus --config.file=prometheus.yml。jmx_prometheus_javaagent jar包,创建config.yml配置文件(定义要采集的指标),将jar包放入Tomcat的lib目录,修改catalina.sh添加JVM参数:CATALINA_OPTS="$CATALINA_OPTS -javaagent:/opt/tomcat/lib/jmx_prometheus_javaagent-0.17.0.jar=8080:/opt/tomcat/config.yml"
yum install grafana安装,启动服务后登录Web界面(http://your_server_ip:3000),添加Prometheus为数据源,导入Tomcat监控模板(如Grafana社区提供的“Tomcat Metrics”模板),即可生成可视化仪表盘。Tomcat自带的Web管理工具,适合快速查看应用状态、会话数、部署情况。
conf/tomcat-users.xml,添加具有manager-gui角色的用户:<role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui"/>
http://your_server_ip:8080/manager/html,登录后可查看Tomcat的运行状态、请求处理时间、内存使用、线程池状态等信息。通过Linux原生工具快速查看Tomcat进程的资源占用情况,适合临时排查问题。
ps -ef | grep tomcat(获取Tomcat主进程PID)。top -H -p <PID>:查看Tomcat进程的CPU、内存占用(-H显示线程级资源)。htop -p <PID>:htop是top的增强版(需yum install htop安装),界面更友好。netstat -tuln | grep 8080(确认Tomcat监听端口是否正常)。tail -f /opt/tomcat/logs/catalina.out(实时查看Tomcat运行日志,定位错误)。通过Shell脚本实现自动检查Tomcat状态、发送告警,适合需要持续监控的场景。
monitor_tomcat.sh):#!/bin/bash
TOMCAT_PID=$(ps -ef | grep java | grep tomcat | grep -v grep | awk '{print $2}')
LOG_FILE="/var/log/tomcat_monitor.log"
if [ -z "$TOMCAT_PID" ]; then
echo "$(date): Tomcat进程不存在,尝试重启..." >> $LOG_FILE
/opt/tomcat/bin/startup.sh # 启动Tomcat(路径需调整)
else
echo "$(date): Tomcat运行正常,PID=$TOMCAT_PID" >> $LOG_FILE
fi
crontab -e添加每5分钟执行一次:*/5 * * * * /bin/bash /opt/script/monitor_tomcat.sh
脚本会记录Tomcat状态,若进程挂掉则自动重启(需确保脚本有执行权限:chmod +x monitor_tomcat.sh)。通过收集、分析Tomcat日志(如catalina.out、access_log),实现性能瓶颈定位、访问趋势分析。
logstash.conf,指定日志路径和解析规则)。