在Debian环境下监控Tomcat状态有多种方法,以下是一些常用的方法:
启用JMX:
编辑 catalina.sh
文件,在 Execute The Requested Command
这一行之前加上以下参数:
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8081 -Djava.rmi.server.hostname=192.168.99.205 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
其中,192.168.99.205
是Tomcat部署所在的主机IP,需根据实际情况进行修改。
验证JMX是否开启:
使用 jconsole
连接到Tomcat的JMX端口(如8081),如果看到Tomcat的监控页面,则说明JMX已经开启。
使用jmxtrans进行监控:
配置 jmxtrans
将Tomcat的监控数据写入InfluxDB,然后使用Grafana从InfluxDB获取数据并可视化。
top和htop命令:
使用 top
或 htop
命令实时查看Tomcat进程的CPU和内存占用情况。
top -p $(pidof tomcat)
htop -p $(pidof tomcat)
vmstat命令:
使用 vmstat
命令监控系统资源使用情况,包括CPU、内存、磁盘I/O等。
vmstat
netstat命令:
使用 netstat
命令查看Tomcat监听的端口状态。
netstat -an | grep 8080
free和df命令:
使用 free
命令查看系统内存使用情况,使用 df
命令查看磁盘空间使用情况。
free -m
df -h
iostat命令:
使用 iostat
命令监控系统磁盘I/O情况。
iostat
uptime命令:
使用 uptime
命令查看系统的运行时间和平均负载。
uptime
可以编写Shell脚本来监控Tomcat的状态,并在异常时自动重启Tomcat。以下是一个简单的示例脚本:
#!/bin/sh
# 获取Tomcat进程ID
TomcatID=$(ps -ef | grep tomcat | grep -v 'grep' | awk '{print $2}')
# 定义要监控的页面地址
WebUrl="http://localhost:8080"
# 日志输出文件
GetPageInfo="/tmp/TomcatMonitor.Info"
TomcatMonitorLog="/tmp/TomcatMonitor.Log"
Monitor() {
echo "[info]开始监控tomcat...[(date '%F %H:%M:%S')]"
if [ -n "$TomcatID" ]; then
echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页面..."
# 检测是否启动成功(成功的话页面会返回状态"200")
TomcatServiceCode=$(curl -s -o GetPageInfo -m 10 --connect-timeout 10 "$WebUrl" -w %{http_code})
if [ "$TomcatServiceCode" -eq 200 ]; then
echo "[info]页面返回码为$TomcatServiceCode,tomcat启动成功,测试页面正常"
else
echo "[error]tomcat页面出错,请注意...状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"
echo "[error]页面访问出错,开始重启tomcat"
kill -9 $TomcatID
sleep 3
rm -rf /opt/tomcat/work
StartTomcat
fi
else
echo "[error]tomcat进程不存在!tomcat开始自动重启..."
echo "[info]StartTomcat,请稍候..."
rm -rf /opt/tomcat/work
StartTomcat
fi
}
StartTomcat() {
/opt/tomcat/bin/startup.sh
}
# 测试脚本是否允许成功
if [ ! -x "./monitor.sh" ]; then
chmod 777 monitor.sh
fi
# 把脚本加到crontab定时任务中,每分钟检查一次
echo "* * * * * /path/to/monitor.sh" | crontab -
将上述脚本保存为 monitor.sh
,并确保其可执行权限,然后将其添加到crontab中,每分钟执行一次以监控Tomcat的状态。
通过以上方法,你可以在Debian环境下有效地监控Tomcat的状态,确保其稳定运行。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: Debian缓存对数据库有何影响