怎样监控Ubuntu Tomcat运行状态
一、基础命令行监控
-
查看Tomcat进程状态
通过ps命令结合grep过滤,快速确认Tomcat进程是否运行及PID(进程ID):ps -ef | grep tomcat若输出中包含
org.apache.catalina.startup.Bootstrap(Tomcat启动类),则表示进程正在运行,输出的第二个字段即为PID。 -
查看Tomcat服务状态
若Tomcat通过systemd管理(Ubuntu 16.04及以上版本默认方式),使用以下命令查看服务状态:sudo systemctl status tomcat若服务正常运行,输出中会显示
active (running);若未运行,可使用sudo systemctl start tomcat启动服务。
若通过传统service命令管理,可替换为:sudo service tomcat status -
实时查看运行日志
Tomcat的核心日志(如启动、请求、错误信息)默认存储在logs/catalina.out(路径可通过server.xml中的AccessLogValve配置调整)。使用tail -f命令实时跟踪日志更新:tail -f /path/to/tomcat/logs/catalina.out按
Ctrl+C退出实时查看。如需同时监控多个日志文件(如localhost.log),可使用multitail工具(安装:sudo apt-get install multitail):multitail /path/to/tomcat/logs/catalina.out /path/to/tomcat/logs/localhost.*.log
二、日志深度监控与分析
-
日志关键词过滤
使用grep命令快速定位错误、警告等关键信息,例如查找ERROR日志:grep "ERROR" /path/to/tomcat/logs/catalina.out结合
awk进行统计(如按时间戳统计请求数):awk '{ print $1, $2} ' /path/to/tomcat/logs/catalina.out | sort | uniq -c -
日志轮转配置
防止日志文件过大占用磁盘空间,使用logrotate工具自动轮转、压缩旧日志。创建配置文件/etc/logrotate.d/tomcat:/path/to/tomcat/logs/*.out { size 50M # 单个日志文件超过50MB时轮转 rotate 7 # 保留最近7个轮转文件 compress # 压缩旧日志(gzip) missingok # 若日志文件不存在,不报错 daily # 每天检查一次(与size配合,取先满足条件者) }手动测试配置:
sudo logrotate -f /etc/logrotate.d/tomcat,并添加到crontab(每天0点执行):0 0 * * * root /usr/sbin/logrotate /etc/logrotate.d/tomcat -
高级日志分析工具
对于海量日志,可使用ELK Stack(Elasticsearch+Logstash+Kibana)或Graylog实现可视化分析:- ELK Stack:通过Logstash解析Tomcat日志(如
access_log、catalina.out),存储到Elasticsearch,通过Kibana创建仪表盘展示请求量、响应时间、错误率等指标。 - Grafana+Loki:使用Promtail收集Tomcat日志并发送到Loki(轻量级日志存储),通过Grafana可视化日志内容(如错误日志趋势)。
- ELK Stack:通过Logstash解析Tomcat日志(如
三、JMX远程监控 JMX(Java Management Extensions)可监控Tomcat的JVM内存、线程池、连接器状态等详细指标。配置步骤如下:
-
修改Tomcat配置
在conf/server.xml的< Server>标签内添加JMX监听器(开启远程访问):< Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiServerPortPlatform="10001" # RMI服务器端口 rmiRegistryPortPlatform="10000" /> # RMI注册表端口 -
配置认证文件
在bin目录下创建jmxremote.password(权限设为600):admin admin # 用户名:密码创建
jmxremote.access(权限设为600):admin readwrite # 用户名:权限(readwrite/readonly) -
修改启动脚本
编辑bin/catalina.sh,在JAVA_OPTS中添加JMX配置(替换your_server_ip为服务器IP):JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=your_server_ip -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"(注:生产环境建议开启
authenticate和ssl,配置SSL证书及用户权限) -
连接监控工具
使用JConsole、VisualVM或Prometheus(配合jmx_exporter)连接:- VisualVM:安装
sudo apt-get install visualvm,启动后添加远程主机(输入服务器IP),选择Tomcat实例即可查看CPU、内存、线程等指标。 - Prometheus:配置
jmx_exporter(将JMX指标转换为Prometheus可采集的格式),在prometheus.yml中添加抓取目标:scrape_configs: - job_name: 'tomcat' static_configs: - targets: ['your_server_ip:10001']
- VisualVM:安装
四、第三方监控工具
-
Zabbix
- 安装Zabbix Java Gateway:
sudo apt-get install zabbix-java-gateway。 - 配置Zabbix服务器(
/etc/zabbix/zabbix_server.conf):设置JavaGateway=(服务器IP)、JavaGatewayPort=10052。 - 添加Tomcat主机,关联“Tomcat”监控模板(Zabbix模板库中搜索“Tomcat”),即可监控JVM内存、线程数、连接器状态等指标。
- 安装Zabbix Java Gateway:
-
Prometheus+Grafana
- 安装Prometheus(
sudo apt-get install prometheus)和Grafana(sudo apt-get install grafana)。 - 配置Prometheus抓取Tomcat指标(通过
jmx_exporter或Tomcat Exporter),在Grafana中导入Tomcat监控面板(如“Tomcat Overview”),实现可视化展示。
- 安装Prometheus(
-
hertzbeat
开源监控工具,支持Tomcat监控(CPU、内存、请求数、响应时间等),无需复杂配置:- 下载并安装hertzbeat(
wget https://github.com/hertzbeat/hertzbeat/releases/download/vx.x.x/hertzbeat-x.x.x-linux-amd64.tar.gz)。 - 启动hertzbeat,通过Web界面添加Tomcat监控项(输入服务器IP、端口),设置告警规则(如CPU使用率超过80%时发送邮件)。
- 下载并安装hertzbeat(
五、自定义脚本监控
通过Shell或Python脚本定期检查Tomcat状态,实现自动化监控与告警。示例Shell脚本(保存为check_tomcat.sh):
#!/bin/bash
TOMCAT_PID=$(ps -ef | grep tomcat | grep -v grep | awk '{
print $2}
')
if [ -z "$TOMCAT_PID" ];
then
echo "Tomcat is not running. Starting Tomcat..."
/path/to/tomcat/bin/startup.sh
echo "Tomcat started."
else
echo "Tomcat is running with PID: $TOMCAT_PID"
fi
赋予执行权限:chmod +x check_tomcat.sh,添加到crontab(每分钟检查一次):
* * * * * /path/to/check_tomcat.sh >
>
/var/log/tomcat_monitor.log 2>
&
1
以上方法覆盖了从基础到高级的Tomcat监控需求,可根据实际场景选择组合使用(如基础命令行用于快速排查,第三方工具用于长期稳定监控,自定义脚本用于自动化运维)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样监控Ubuntu Tomcat运行状态
本文地址: https://pptw.com/jishu/737295.html
