在CentOS上监控Tomcat运行状态有多种方法,以下是一些常用的监控方式:
JMX Exporter是一个开源的Java代理,可以收集Java应用程序的JMX指标。以下是配置和使用JMX Exporter的步骤:
cd /usr/local/prometheus
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
文件,例如:
lowercaseOutputLabelNames: true
lowercaseOutputName: true
rules:
- pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+):'
name: tomcat_$3_total
labels:
port: "$2"
protocol: "$1"
help: Tomcat global $3
type: COUNTER
- pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none><>(requestCount|maxTime|processingTime|errorCount):'
name: tomcat_servlet_$3_total
labels:
module: "$1"
servlet: "$2"
help: Tomcat servlet $3
type: COUNTER
- pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|pollerThreadCount|connectionCount):'
name: tomcat_threadpool_$3
labels:
port: "$2"
protocol: "$1"
help: Tomcat threadpool $3
type: GAUGE
- pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions):'
name: tomcat_session_$3_total
labels:
context: "$2"
host: "$1"
help: Tomcat session $3
type: COUNTER
编辑Tomcat的bin/catalina.sh
文件,添加以下行:
JAVA_OPTS="$JAVA_OPTS -javaagent:/usr/local/prometheus/jmx_prometheus_javaagent-0.3.1.jar=9010:/usr/local/prometheus/jmx-exporter.yaml"
/bin/systemctl restart tomcat
访问http://<your-tomcat-host>:9010/jmx
,使用Prometheus抓取指标。
可以编写一个Shell脚本来监控Tomcat进程,并在进程挂掉时自动重启:
#!/bin/sh
JAVA_HOME=/usr/local/jdk1.8.0_161
PATH=$JAVA_HOME/bin:$PATH
while true; do
PID=$(ps -ef | grep java | grep tomcat | grep -w 'apache-tomcat-8.5.29_2' | grep -v 'grep' | awk '{print $2}')
if [ -z "$PID" ]; then
echo "[error] Tomcat process not found. Restarting..."
/usr/local/apache-tomcat-8.5.29_2/bin/startup.sh
else
echo "[info] Tomcat process is running with PID $PID."
fi
sleep 10
done
将脚本保存为monitor.sh
,并赋予执行权限:
chmod +x monitor.sh
使用crontab
定时执行该脚本:
crontab -e
添加以下内容:
* * * * * /path/to/monitor.sh
Application Manager是一个功能强大的Tomcat监控工具,可以提供深入的性能监控和警报功能:
按照官方文档进行安装和配置。
使用Application Manager的Tomcat Monitor功能,配置监控指标,如CPU、内存、JVM使用情况等。
通过Application Manager的Web界面查看Tomcat的运行状态和性能指标。
可以通过查看Tomcat的日志文件来监控其运行状态:
tail -f /path/to/tomcat/logs/catalina.out
可以使用系统监控工具如top
、htop
、vmstat
、free
、iostat
、netstat
、ss
、dstat
、iftop
等来监控服务器的整体状态,从而间接了解Tomcat的运行状况。
通过上述方法,您可以选择适合您的监控方式来确保Tomcat的稳定运行。