1. 系统级基础监控(Debian原生工具)
Debian系统自带的基础工具可快速查看Java应用的整体资源占用,适合日常巡检:
top -p <Java_PID>(替换为实际进程ID)可实时查看Java进程的CPU、内存使用率;htop(需安装:sudo apt install htop)提供更直观的界面,支持颜色标识和快捷键操作。ps -ef | grep java可列出所有Java进程的详细信息(如启动命令、PID、运行状态)。vmstat 1 5(每秒刷新1次,共5次)可监控系统级CPU、内存、磁盘IO等指标,间接反映Java应用的资源消耗。2. Java原生监控工具(JMX与命令行工具)
JMX(Java Management Extensions)是Java标准的监控接口,可获取JVM内部指标(内存、线程、GC等):
java -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9010 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar your-application.jar
jconsole(JDK自带)启动后,选择“远程进程”,输入localhost:9010即可监控内存使用、线程活动、类加载等。sudo apt install visualvm(Debian仓库自带)安装后,添加远程主机(localhost)和端口(9010),支持内存分析、线程dump、CPU采样等高级功能。jstat -gc <PID> 1000(每秒刷新1次)可查看JVM垃圾回收(GC)的次数、耗时及堆内存使用情况。jstack <PID> > thread_dump.txt可生成线程堆栈快照,用于分析线程阻塞、死锁等问题。jmap -dump:format=b,file=heap.hprof <PID>可导出堆内存快照,配合Eclipse MAT(Memory Analyzer Tool)分析内存泄漏。3. 应用层监控(Spring Boot Actuator与自定义指标)
若应用基于Spring Boot,可通过Actuator暴露关键指标,结合第三方工具实现可视化:
pom.xml中添加Spring Boot Actuator依赖:<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
application.properties中开启所有端点(生产环境建议按需开启):management.endpoints.web.exposure.include=*
/actuator/health:应用健康状态(UP/DOWN)。/actuator/metrics:JVM内存、线程、GC等指标(如jvm_memory_used、jvm_threads_current)。/actuator/info:自定义应用信息(如版本、环境)。/actuator/prometheus),再通过Prometheus采集数据,用Grafana实现可视化。4. APM(应用性能管理)工具
APM工具可实现全链路性能监控(从请求到数据库、缓存等),适合复杂分布式系统:
@MethodMetric标记需要监控的方法,数据可输出到InfluxDB,再用Grafana展示。5. 日志分析与告警
日志是排查问题的关键,通过日志收集与分析工具可实现集中管理和实时告警: