当前位置: 首页
编程语言
Ubuntu中Java应用监控的实用方法详解

Ubuntu中Java应用监控的实用方法详解

热心网友 时间:2026-07-20
转载

Java应用在Ubuntu上的监控需从系统级基础命令(ps、top)入手,结合JDK自带工具(jstat、jstack、jmap)进行内存与线程分析,引入Prometheus+Grafana等第三方方案采集JVM指标,SpringBoot项目可借助Actuator与Micrometer增强应用层监控,并通过Shell脚本与crontab实现自动化巡检与告警。

Ja va应用在Ubuntu上跑得好不好,监控这道工序绝对不能省。下面先从系统级基础监控说起,再逐步深入到JDK自带工具、第三方方案、应用层手段,最后给出一个脚本自动化的闭环思路。

Ja va应用在Ubuntu如何监控

一、系统级基础监控

Ubuntu系统自带的那几个命令,用来快速摸清Ja va进程的底细,其实已经够用了:

  • ps命令:想列出所有Ja va进程?ps -ef | grep ja va 就行。要是怕grep把自己也筛出来,换成 ps -ef | grep [j]a va 更干净。
  • top / htop:实时看资源占用,top里按 Shift+M 按内存排序,一目了然。htop 需要先装一下(sudo apt install htop),界面更友好,进程树也看得清。
  • jtop:专门为Ja va应用设计的实时监控工具,安装也简单:wget https://github.com/kwhat/jtop/releases/download/v0.7.3/jtop-0.7.3.jar && chmod +x jtop-0.7.3.jar && sudo mv jtop-0.7.3.jar /usr/local/bin/jtop.jar。直接跑 jtop 看整体状态,或者 jtop -p 盯住某个进程。

二、JDK自带工具监控

JDK自带的命令行工具,从进程管理到内存分析、线程诊断,覆盖面很全,而且不用额外装任何东西:

  • jps(Ja va Process Status):列出当前用户下的Ja va进程和PID。简单 jps 显示PID和主类名,jps -v 还能看到启动参数,排查问题很实用。
  • jstat(JVM Statistics Monitoring Tool):实时监控JVM内存、GC、类加载等。比如 jstat -gcutil 5000 10,每5秒刷一次,共10次,堆内存各区域使用率、GC次数和耗时全出来了。
  • jstack(Ja va Stack Trace):生成线程栈跟踪信息,死锁、线程阻塞这类问题,用它准没错。用法:jstack > thread_dump.txt,保存到文件慢慢分析。
  • jmap(Ja va Memory Map):生成堆转储快照(Heap Dump),内存泄漏分析利器。命令:jmap -dump:format=b,file=heapdump.hprof ,生成二进制文件,可以用Eclipse MAT或VisualVM分析。
  • jconsole(Ja va Monitoring Console):图形化监控,可以看到堆内存、方法区、线程、类加载、GC等。启动方式:jconsole,然后选择目标Ja va进程就行。
  • jvisualvm(Ja va VisualVM):功能更强大,集成了前面几个工具的能力,还能做性能剖析、堆转储分析。启动方式:jvisualvm,前提是 JA VA_HOME/bin 在PATH里。

三、第三方监控工具

生产环境要求高可用,单靠自带工具还不够。这里推荐几个成熟的开源/商业方案:

  • Prometheus + Grafana
    Prometheus 是时间序列数据库,通过 JMX Exporter(Ja va袋里)采集JVM指标(内存、GC、线程数等)。在 prometheus.yml 里添加 - targets: [':9090'] 即可抓取。Grafana 负责可视化,连接Prometheus后,用现成的模板(比如“JVM Monitoring”)就能展示内存使用率、GC频率、线程数等实时图表,还能设置告警(比如内存超过80%触发邮件报警)。
  • Zabbix:企业级开源监控,支持监控Ubuntu服务器资源(CPU、内存、磁盘),也通过Zabbix Agent或JMX监控Ja va应用指标。告警方式支持邮件、信息,还能自动修复,适合运维体系比较完善的环境。
  • HertzBeat:新兴的开源实时监控告警系统,兼容Prometheus,最重要的是不需要Agent,Web页面配置监控阈值(响应时间、错误率等),告警支持邮件、钉钉、企业微信,部署很轻量。

四、应用层监控(Spring Boot项目推荐)

如果Ja va应用是Spring Boot项目,那监控能力可以更上一层楼:

  • Spring Boot Actuator:内置了监控端点,暴露健康状况、内存使用、线程信息等。只需添加依赖 org.springframework.boot:spring-boot-starter-actuator,然后配置 management.endpoints.web.exposure.include=* 开启所有端点。访问 http://:8080/actuator/health 看健康状态,http://:8080/actuator/metrics 看所有指标。
  • Micrometer:与Actuator集成,支持将指标发送到Prometheus、Grafana等工具。比如添加 micrometer-registry-prometheus 依赖,Actuator会自动暴露Prometheus格式的指标端点(/actuator/prometheus),直接对接Prometheus。

五、脚本自动化监控

上面这些工具基本都是被动监控,但有些场景需要主动巡检、自动恢复。写一个Shell脚本定期检查Ja va应用状态,配合crontab就能实现自动报警和重启:

  • 进程检查脚本(monitor.sh
#!/bin/bash
PID=$(pgrep -f "ja va -jar /path/to/your/app.jar")
if [ -z "$PID" ]; then
    echo "$(date): Ja va应用未运行,正在重启..." >> /var/log/ja va_monitor.log
    nohup ja va -jar /path/to/your/app.jar > /dev/null 2>&1 &
else
    CPU_USAGE=$(top -bn1 -p $PID | grep "Cpu(s)" | sed "s/.*, *([0-9.]*)%* id.*/1/" | awk '{print 100 - $1}')
    if (( $(echo "$CPU_USAGE > 80" | bc -l) )); then
        echo "$(date): CPU使用率过高(${CPU_USAGE}%),发送报警..." >> /var/log/ja va_monitor.log
        # 发送邮件报警(需配置mailutils)
        echo "Ja va应用CPU使用率过高:${CPU_USAGE}%" | mail -s "CPU报警" your_email@example.com
    fi
fi
  • 定时任务:用 crontab -e 添加一行,每5分钟执行一次脚本:*/5 * * * * /bin/bash /path/to/monitor.sh

这样一套组合拳打下来,从系统层面到JVM内部,再到应用层和自动化,Ja va应用在Ubuntu上的监控才算真正到位。

来源:https://www.yisu.com/ask/99629524.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
CentOS系统PHP超时问题详细原因分析与全面解决方法

CentOS系统PHP超时问题详细原因分析与全面解决方法

CentOS系统PHP超时问题源于脚本执行超限,可从配置参数、代码性能、服务器环境三方面解决:修改php ini或 htaccess全局设置,脚本内动态调整超时,同步优化Web服务器超时参数,并排查慢查询、外部依赖等性能瓶颈。

时间:2026-07-20 21:33
深入分析Java日志对CentOS性能的影响

深入分析Java日志对CentOS性能的影响

Java日志对CentOS性能的影响主要体现在I O、CPU和内存占用。频繁写入磁盘增加I O负载,异步日志或缓冲区可缓解;日志级别过低导致CPU占用升高,需合理设置;缓冲区过大会增加内存压力,可调整大小或使用内存映射文件。日志存储需轮转压缩归档,分析处理宜采用自动化工具。

时间:2026-07-20 21:33
CentOS Cobbler集成其他工具实践指南

CentOS Cobbler集成其他工具实践指南

Cobbler利用Kickstart脚本集成Puppet、Ansible等配置管理工具,实现系统安装后自动化部署;与OpenStack协同管理虚拟机镜像及创建流程;配合GlusterFS自动挂载存储卷;并原生支持DNS、DHCP网络自动配置,全面提升部署效率。

时间:2026-07-20 21:33
CentOS上C++性能优化选项配置完整指南

CentOS上C++性能优化选项配置完整指南

在CentOS上配置C++性能优化,需安装gcc等编译工具,使用-O2、-march=native、-mtune=native及-flto编译选项,借助gprof、perf、valgrind定位性能热点,同时可通过环境变量或CMake统一管理优化设置,推荐结合CPU架构特性并利用CMake条件编译,从而显著提高程序执行速度与效率,实现最佳性能。

时间:2026-07-20 21:33
Crontab时间格式错误如何修复

Crontab时间格式错误如何修复

Crontab时间格式由5个字段组成,分别代表分钟、小时、日期、月份和星期。常见错误包括多余字符、字段值超出范围、缺少字段、星期值错误以及字段间缺少空格或制表符。对照这些典型问题逐项排查即可解决。

时间:2026-07-20 06:48
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜