centos

怎样监控CentOS Tomcat运行状态

小樊
51
2025-10-13 04:39:15
栏目: 智能运维

1. 基础命令行监控

systemctl状态检查:若Tomcat通过systemd管理(常见于CentOS 7及以上),可使用systemctl status tomcat命令查看服务运行状态(如active/inactive)、启动时间、进程ID及最近日志片段;结合journalctl -u tomcat -f可实时跟踪Tomcat日志输出,快速定位启动错误或运行时异常。
进程存在性检查:通过ps -ef | grep tomcatps -ef | grep java过滤Tomcat进程,确认其是否在运行;若未找到进程,需手动启动Tomcat(systemctl start tomcat)。
端口监听检查:Tomcat默认监听8080端口(HTTP)和8005端口(SHUTDOWN),使用ss -tulnp | grep 8080netstat -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、线程、内存、类加载等指标。步骤如下:

3. 第三方监控工具

Prometheus + Grafana

Zabbix/Nagios

JavaMelody/Application Manager

4. 日志与脚本监控

日志实时监控:Tomcat的日志文件(logs/catalina.outlogs/localhost_access_log.txt)记录了运行状态、请求信息和错误详情。使用tail -f /opt/tomcat/logs/catalina.out实时查看日志输出,结合grep过滤关键信息(如ERRORException),快速定位问题。
自定义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进程,确保其在崩溃后自动重启。步骤如下:

0
看了该问题的人还看了