在Ubuntu上监控Java应用可以通过多种工具和方法实现,以下是一些常用的监控工具和步骤:
jps
jstat -gcutil <pid> 5000 10
jmap -dump:format=b,file=heapdump.hprof <pid>
jstack <pid> > thread_dump.txt
jconsole
jvisualvm
java -XX:UnlockCommercialFeatures -XX:+UnlockFlightRecorder -jar myapp.jar
sudo apt update
sudo apt install prometheus
sudo systemctl start prometheus
sudo systemctl enable prometheus
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/ubuntu $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
wget https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1ubuntu20.04_all.deb
sudo dpkg -i zabbix-release_5.4-1ubuntu20.04_all.deb
sudo apt update
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
可以编写脚本来定期收集Java应用的性能数据,并发送报警邮件。例如,以下是一个简单的CPU占用率监控脚本:
#!/bin/bash
THRESHOLD=80
EMAILS="xxxxxxx@163.com,xxxxxxx@qq.com"
CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S')
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
if (( $(echo "$CPU_USAGE > $THRESHOLD" | bc -l) )); then
echo "$CURRENT_TIME - 当前CPU使用率:$CPU_USAGE%" | mail -s "CPU 使用率报警" $EMAILS
echo "$CURRENT_TIME - 报警邮件已发送至 $EMAILS"
fi
visualvm
通过这些工具和方法,可以有效地监控和管理Java应用的性能,确保系统的稳定运行和应用的高性能。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:Ubuntu如何监控Java应用性能