一、系统自带工具监控
systemctl status tomcat命令可直接查看Tomcat服务的运行状态(如active/inactive)、最近的活动日志及启动时间;若需实时跟踪日志,可使用journalctl -u tomcat -f命令,持续输出Tomcat的日志信息。ps -ef | grep tomcat可列出Tomcat相关进程,确认服务是否在运行;top -p $(pgrep -f tomcat)或htop -p $(pgrep -f tomcat)能实时监控Tomcat进程的CPU、内存占用情况,直观反映资源消耗。sudo netstat -tulnp | grep 8080(或ss -tulnp | grep 8080)检查Tomcat是否在监听指定端口(默认8080),若输出包含LISTEN状态,则说明端口正常开放。curl http://localhost:8080/发送HTTP请求,若返回Tomcat默认页面(如“Welcome to Tomcat”),则表明Web服务正常运行;若返回错误(如404、500),则需进一步排查。二、JMX(Java Management Extensions)监控 JMX是Java标准管理API,可深度监控Tomcat的内存、线程、JVM等性能指标,支持远程连接。
catalina.sh(或catalina.bat)文件,添加以下JVM参数(替换your_server_ip为实际IP,端口可自定义,如9090):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"jconsole(命令:jconsole)或VisualVM(命令:jvisualvm),在“远程进程”中输入service:jmx:rmi:///jndi/rmi://your_server_ip:9090/jmxrmi,即可连接并查看Tomcat的各项性能指标(如堆内存使用、线程数、GC次数)。三、第三方监控工具
jmx_exporter(Tomcat JMX指标采集器)收集Tomcat指标;prometheus.yml,添加Tomcat job(如scrape_configs: - job_name: 'tomcat' - static_configs: - targets: ['localhost:9090']);check_tomcat插件可监控Tomcat的状态、响应时间、线程数等,配置报警规则(如邮件、短信通知);四、日志监控
tail -f /path/to/tomcat/logs/catalina.out命令实时跟踪Tomcat的日志输出,及时发现错误信息(如SEVERE级别的异常)。五、Tomcat Manager应用
Tomcat自带的Web管理工具,可通过浏览器访问http://your_server_ip:8080/manager/html(需提前配置用户权限,在conf/tomcat-users.xml中添加<role rolename="manager-gui"/><user username="admin" password="admin" roles="manager-gui"/>),查看Tomcat的运行状态(如当前活动的Web应用、线程池状态、JVM内存使用情况)。
六、脚本自动化监控 编写Shell脚本定期检查Tomcat状态(如进程是否存在、端口是否监听、Manager页面是否可访问),并将结果记录到日志文件,异常时发送报警通知(如邮件、Slack)。例如,以下脚本检查Tomcat Manager页面的响应状态:
#!/bin/bash
TOMCAT_URL="http://localhost:8080/manager/html"
USERNAME="admin"
PASSWORD="admin"
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -u $USERNAME:$PASSWORD $TOMCAT_URL)
if [[ $RESPONSE == "200" ]]; then
echo "$(date): Tomcat is up and running" >> /var/log/tomcat_monitor.log
else
echo "$(date): Tomcat is down" >> /var/log/tomcat_monitor.log
# 发送邮件报警(需配置mailutils)
echo "Tomcat is down!" | mail -s "Tomcat Status Alert" admin@example.com
fi
将脚本添加到crontab(如* * * * * /path/to/monitor.sh),每分钟执行一次。