温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样监控tomcat状态

发布时间:2026-10-29 10:51:02 来源:亿速云 阅读:94 作者:小樊 栏目:系统运维

监控 Tomcat 状态可以从基础健康检查、日志监控、JMX、可视化工具、以及自动化告警几个层面来做。下面按「从简单到专业」给你一个完整方案。


一、最基础的 Tomcat 状态检查

1. 查看 Tomcat 进程

ps -ef | grep tomcat
# 或
jps -l | grep Bootstrap

2. 检查端口是否监听

netstat -tunlp | grep 8080
# 或
ss -tunlp | grep 8080

3. 访问默认状态页(需开启)

Tomcat 自带 Status Manager:

编辑 conf/tomcat-users.xml

<role rolename="manager-status"/>
<user username="admin" password="123456" roles="manager-status"/>

访问:

http://IP:8080/manager/status

可看到:

  • JVM 内存
  • 线程数
  • 请求数
  • 连接数

二、通过日志监控运行状态

1. 关键日志文件

logs/catalina.out      # 主日志(最重要)
logs/localhost.log     # 应用错误
logs/access_log.*      # 访问日志

2. 常见监控点

  • OutOfMemoryError
  • Timeout
  • SEVERE
  • 线程池满

示例:

tail -f logs/catalina.out | grep -E "ERROR|Exception|OOM"

三、JMX 监控(推荐)

1. 开启 JMX

在 bin/catalina.sh 或 setenv.sh 中:

export CATALINA_OPTS="
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
"

2. 使用工具查看

  • JConsole(JDK 自带)
  • VisualVM
  • JMC(Java Mission Control)

可监控:

  • Heap / Non-Heap
  • GC
  • 线程
  • 类加载
  • MBean(Tomcat 内部指标)

四、Prometheus + Grafana(生产级方案 ✅)

1. 使用 JMX Exporter

下载:

jmx_prometheus_javaagent

修改 setenv.sh:

export CATALINA_OPTS="
-javaagent:/path/jmx_prometheus_javaagent.jar=9090:/path/tomcat.yml
"

2. 监控指标包括

  • JVM 内存
  • GC 时间
  • Tomcat 线程池
  • 请求数 / 错误数
  • 响应时间

3. Grafana 展示

  • 官方 Tomcat Dashboard
  • JVM Dashboard

五、自动化健康检查(脚本 / 探针)

1. HTTP 健康检查

curl -s -o /dev/null -w "%{http_code}" http://localhost:8080

2. 简单监控脚本

#!/bin/bash
code=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8080)
if [ "$code" != "200" ]; then
  systemctl restart tomcat
fi

3. K8s / Docker 探针

livenessProbe:
  httpGet:
    path: /
    port: 8080

六、专业监控平台(企业常用)

  • Zabbix(Tomcat 模板)
  • Prometheus + Alertmanager
  • ELK(日志分析)
  • SkyWalking / Pinpoint(APM)

七、推荐组合方案

场景 推荐
本地开发 VisualVM
小服务器 状态页 + 脚本
生产环境 Prometheus + Grafana
微服务 SkyWalking

如果你愿意,可以告诉我:

  • ✅ 单机还是集群?
  • ✅ Linux 还是 Windows?
  • ✅ 是否已用 Docker / K8s?

我可以给你可直接用的配置示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手