怎样监控CentOS Tomcat运行状态
1. 基础命令行监控
systemctl状态检查:若Tomcat通过systemd管理(常见于CentOS 7及以上),可使用systemctl status tomcat
命令查看服务运行状态(如active/inactive)、启动时间、进程ID及最近日志片段;结合journalctl -u tomcat -f
可实时跟踪Tomcat日志输出,快速定位启动错误或运行时异常。
进程存在性检查:通过ps -ef | grep tomcat
或ps -ef | grep java
过滤Tomcat进程,确认其是否在运行;若未找到进程,需手动启动Tomcat(systemctl start tomcat
)。
端口监听检查:Tomcat默认监听8080端口(HTTP)和8005端口(SHUTDOWN),使用ss -tulnp | grep 8080
或netstat -tulnp | grep 8080
验证端口是否处于监听状态,确保服务可被外部访问。
HTTP请求测试:通过curl http://localhost:8080/
向Tomcat发送本地请求,若返回默认首页(含“Apache Tomcat”字样)则说明Web服务正常;若返回404或连接拒绝,需检查端口配置(server.xml
中的<
Connector>
标签)或应用部署情况。
资源使用监控:使用top -p $(pgrep -f tomcat)
或htop -p $(pgrep -f tomcat)
实时查看Tomcat进程的CPU、内存占用率;通过df -h
检查磁盘空间(避免日志爆满导致服务崩溃),free -m
查看内存剩余情况(确保JVM有足够堆内存)。
2. Tomcat自带工具监控
Tomcat Manager应用:Tomcat自带的Web管理工具,可通过浏览器访问http://<
服务器IP>
:8080/manager/html
(需提前配置用户权限)。登录后,可查看服务器状态(JVM版本、操作系统信息)、应用列表(各应用的运行状态、会话数、内存占用)、连接器状态(请求处理数、错误数、字节传输量)及线程池状态(活跃线程数、最大线程数)。
JMX(Java管理扩展):通过JMX接口可深度监控Tomcat的JVM、线程、内存、类加载等指标。步骤如下:
- 启用JMX:编辑Tomcat的
bin/catalina.sh
文件,添加以下JVM参数(替换your_server_ip
为服务器IP,9090
为JMX端口):CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=your_server_ip"
- 连接监控:使用JDK自带的
jconsole
(jconsole
命令)或VisualVM
(jvisualvm
命令),选择“远程进程”,输入localhost:9090
即可连接。连接后可查看内存使用(堆内存、非堆内存)、线程状态(活跃线程数、死锁)、类加载(已加载类数量)、JVM参数(堆大小、GC配置)等信息。
3. 第三方监控工具
Prometheus + Grafana:
- Prometheus:开源时间序列数据库,用于收集Tomcat指标;
- JMX Exporter:将Tomcat的JMX指标转换为Prometheus可识别的格式。步骤如下:
- 下载JMX Exporter:
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar
; - 创建配置文件
jmx-exporter.yaml
(定义指标采集规则,如线程池、请求计数、内存使用); - 修改Tomcat的
catalina.sh
,添加JMX Exporter启动参数:JAVA_OPTS="$JAVA_OPTS -javaagent:/path/to/jmx_prometheus_javaagent-0.3.1.jar=9010:/path/to/jmx-exporter.yaml"
- 重启Tomcat,访问
http://< 服务器IP> :9010/metrics
验证指标是否暴露; - 配置Prometheus(
prometheus.yml
)抓取Tomcat指标:scrape_configs: - job_name: 'tomcat' static_configs: - targets: ['localhost:9010']
- 启动Prometheus,配置Grafana数据源(添加Prometheus),导入Tomcat监控仪表盘(如Grafana社区提供的“Tomcat Monitoring”仪表盘),实现指标的可视化展示(如CPU使用率趋势、请求量统计、线程池繁忙度)。
- 下载JMX Exporter:
Zabbix/Nagios:
- Zabbix:企业级监控解决方案,支持Tomcat的状态监控(如服务可用性、响应时间)、性能指标(CPU、内存、JVM)及告警(邮件、短信)。需安装Zabbix Server、Agent,配置Tomcat监控项(如
tomcat.status
、tomcat.cpu_usage
)及触发器(如CPU使用率超过80%时告警)。 - Nagios:开源监控工具,通过
check_tomcat
插件监控Tomcat的运行状态、响应时间、线程数。需安装Nagios Core、NRPE(远程插件执行器),配置commands.cfg
(添加Tomcat检查命令),在services.cfg
中定义监控服务(如“Tomcat Status”),实现状态告警。
JavaMelody/Application Manager:
- JavaMelody:开源Java应用监控工具,部署简单(将war包放入Tomcat的
webapps
目录即可)。通过浏览器访问http://< 服务器IP> :8080/javamelody
,可查看性能报告(CPU时间、内存占用、方法调用次数)、会话监控(活跃会话数、会话超时数)、数据源监控(数据库连接池使用情况)。 - Application Manager:商业监控工具,提供深入的Tomcat性能监控(如线程池分析、内存泄漏检测、应用响应时间追踪),支持多服务器集中管理,适合企业级环境。
4. 日志与脚本监控
日志实时监控:Tomcat的日志文件(logs/catalina.out
、logs/localhost_access_log.txt
)记录了运行状态、请求信息和错误详情。使用tail -f /opt/tomcat/logs/catalina.out
实时查看日志输出,结合grep
过滤关键信息(如ERROR
、Exception
),快速定位问题。
自定义Shell脚本:编写脚本定期检查Tomcat状态,异常时发送通知。示例如下:
#!/bin/bash
TOMCAT_URL="http://localhost:8080/manager/status"
USERNAME="admin"
PASSWORD="admin"
LOG_FILE="/var/log/tomcat_monitor.log"
RESPONSE=$(curl -s -u $USERNAME:$PASSWORD $TOMCAT_URL)
if [[ $RESPONSE == *"OK"* ]];
then
echo "$(date): Tomcat is running normally." >
>
$LOG_FILE
else
echo "$(date): Tomcat is DOWN!" >
>
$LOG_FILE
# 发送邮件告警(需配置mailutils)
echo "Tomcat is down on $(hostname)" | mail -s "Tomcat Alert" admin@example.com
fi
将脚本添加到cron(crontab -e
),每分钟执行一次:* * * * * /path/to/monitor.sh
。
Supervisor进程管理:使用Supervisor监控Tomcat进程,确保其在崩溃后自动重启。步骤如下:
- 安装Supervisor:
yum install epel-release & & yum install supervisor
; - 创建Tomcat配置文件(
/etc/supervisor/conf.d/tomcat.conf
):[program:tomcat] command=/opt/tomcat/bin/startup.sh autostart=true autorestart=true stderr_logfile=/var/log/tomcat.err.log stdout_logfile=/var/log/tomcat.out.log user=tomcat
- 启动Supervisor并加载配置:
systemctl start supervisor & & supervisorctl reread & & supervisorctl update
。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样监控CentOS Tomcat运行状态
本文地址: https://pptw.com/jishu/724466.html