如何在Ubuntu上监控Tomcat状态
如何在Ubuntu上监控Tomcat状态
监控Tomcat状态需结合进程检查、日志分析、JVM指标监控、Web界面及第三方工具,以下是具体方法:
一、基础命令行监控
-
查看Tomcat进程状态
使用ps
命令结合grep
过滤Tomcat进程,确认是否运行:ps -ef | grep tomcat
若输出包含Tomcat的启动命令(如
org.apache.catalina.startup.Bootstrap
)及PID,则表示进程正在运行。 -
查看Tomcat服务状态
若Tomcat通过systemd
管理(默认安装方式),使用以下命令查看服务状态:sudo systemctl status tomcat
若服务正常,会显示
active (running)
;若未运行,可使用sudo systemctl start tomcat
启动。 -
实时查看Tomcat日志
Tomcat的主日志文件通常位于/path/to/tomcat/logs/catalina.out
(或/var/log/tomcat/
目录下),使用tail -f
命令实时跟踪日志输出:tail -f /path/to/tomcat/logs/catalina.out
按
Ctrl+C
退出实时查看。如需同时监控多个日志文件(如localhost.log
),可使用multitail
工具(sudo apt install multitail
)。 -
检查Tomcat端口监听
使用netstat
或ss
命令查看Tomcat监听的端口(默认8080):netstat -tunlp | grep java # 或 ss -tunlp | grep java
输出中包含
8080/tcp
则表示端口正常监听。
二、JMX远程监控(详细性能指标)
JMX(Java Management Extensions)是监控Tomcat JVM及应用性能的核心工具,可获取CPU、内存、线程池、连接池等指标。
-
启用JMX远程监控
编辑Tomcat的启动脚本catalina.sh
(位于/path/to/tomcat/bin/
),添加以下JVM参数:export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=< 服务器IP> -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
注:
< 服务器IP>
替换为Tomcat所在服务器的IP;若需安全认证,可将authenticate=false
改为true
,并配置jmxremote.password
和jmxremote.access
文件。 -
使用JMX客户端连接
- JConsole(JDK自带):运行
jconsole
命令,选择“远程进程”,输入service:jmx:rmi:///jndi/rmi://< 服务器IP> :9010/jmxrmi
,点击“连接”即可查看指标。 - VisualVM(更强大的可视化工具):运行
jvisualvm
命令,添加JMX连接后,可监控内存、线程、类加载等详情。
- JConsole(JDK自带):运行
三、第三方监控工具(自动化与可视化)
-
Prometheus + Grafana(开源时序监控)
- Prometheus:收集Tomcat的时序指标(如CPU、内存、请求量),需添加
simpleclient
依赖并配置MetricsServlet
(映射到/metrics
路径)。 - Grafana:导入Tomcat仪表盘(如ID:8563),可视化指标并设置告警规则(如CPU使用率超过80%时报警)。
集成步骤可参考:Prometheus Java客户端文档、Grafana Tomcat仪表盘。
- Prometheus:收集Tomcat的时序指标(如CPU、内存、请求量),需添加
-
JavaMelody(轻量级应用监控)
- 集成步骤:
- 添加Maven依赖:
< dependency> < groupId> net.bull.javamelody< /groupId> < artifactId> javamelody-core< /artifactId> < version> 1.98.0< /version> < /dependency>
- 配置
web.xml
:添加MonitoringFilter
和SessionListener
。 - 访问监控页面:
http://< 服务器IP> :8080/monitoring
,查看请求统计、JVM内存、数据库连接池等指标。
- 添加Maven依赖:
- 集成步骤:
-
hertzbeat(开源综合监控)
hertzbeat支持监控Tomcat的CPU、内存、线程数、连接数等指标,提供告警功能。安装后,在Web界面添加Tomcat监控项,配置目标地址即可。
四、日志分析与告警
-
日志过滤与统计
使用grep
过滤错误日志(如ERROR
关键字),awk
统计请求量:grep "ERROR" /path/to/tomcat/logs/catalina.out # 查找错误日志 awk '{ print $4, $7} ' /path/to/tomcat/logs/catalina.out | sort | uniq -c # 统计每小时请求数
-
自定义监控脚本
编写Shell脚本检查Tomcat进程及端口,异常时重启或发送通知(如邮件、Slack):#!/bin/bash TOMCAT_PID=$(ps -ef | grep tomcat | grep -v grep | awk '{ print $2} ') if [ -z "$TOMCAT_PID" ]; then echo "$(date): Tomcat is down. Restarting..." > > /var/log/tomcat_monitor.log /path/to/tomcat/bin/startup.sh else echo "$(date): Tomcat is running (PID: $TOMCAT_PID)" > > /var/log/tomcat_monitor.log fi
将脚本添加到
crontab
(crontab -e
),每分钟执行一次:* * * * * /path/to/tomcat_monitor.sh ```。
通过上述方法,可全面监控Ubuntu上Tomcat的运行状态,及时发现并解决问题。根据需求选择合适的方法(如基础监控用命令行,详细性能用JMX,自动化用第三方工具)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu上监控Tomcat状态
本文地址: https://pptw.com/jishu/723109.html