监控 Tomcat 状态可以从基础健康检查、日志监控、JMX、可视化工具、以及自动化告警几个层面来做。下面按「从简单到专业」给你一个完整方案。
ps -ef | grep tomcat
# 或
jps -l | grep Bootstrap
netstat -tunlp | grep 8080
# 或
ss -tunlp | grep 8080
Tomcat 自带 Status Manager:
编辑 conf/tomcat-users.xml
<role rolename="manager-status"/>
<user username="admin" password="123456" roles="manager-status"/>
访问:
http://IP:8080/manager/status
可看到:
logs/catalina.out # 主日志(最重要)
logs/localhost.log # 应用错误
logs/access_log.* # 访问日志
OutOfMemoryErrorTimeoutSEVERE示例:
tail -f logs/catalina.out | grep -E "ERROR|Exception|OOM"
在 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
"
可监控:
下载:
jmx_prometheus_javaagent
修改 setenv.sh:
export CATALINA_OPTS="
-javaagent:/path/jmx_prometheus_javaagent.jar=9090:/path/tomcat.yml
"
curl -s -o /dev/null -w "%{http_code}" http://localhost:8080
#!/bin/bash
code=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8080)
if [ "$code" != "200" ]; then
systemctl restart tomcat
fi
livenessProbe:
httpGet:
path: /
port: 8080
| 场景 | 推荐 |
|---|---|
| 本地开发 | VisualVM |
| 小服务器 | 状态页 + 脚本 |
| 生产环境 | Prometheus + Grafana |
| 微服务 | SkyWalking |
如果你愿意,可以告诉我:
我可以给你可直接用的配置示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。