温馨提示×

CentOS Java监控工具介绍

小樊
33
2025-11-23 17:46:15
栏目: 编程语言

CentOS 下的 Java 监控工具全景

CentOS 环境中,Java 应用的监控通常分为 JVM 层应用层系统层 三个维度。下面按用途梳理常用工具与典型用法,便于快速选型与落地。

工具分类与用途

工具 类型 主要用途 典型场景
jps JVM 自带 列出本机所有 Java 进程 PID 快速定位目标进程
jstat JVM 自带 监控 GC、内存、类加载、JIT 等统计 观察 GC 频率与内存各区使用
jinfo JVM 自带 查看/动态修改 JVM 参数 核对与调整运行时参数
jstack JVM 自带 打印 线程栈,定位 死锁/阻塞 线程争用、卡死排查
jmap JVM 自带 生成 堆转储,分析内存泄漏 内存泄漏定位、对象分布
JConsole 可视化 图形化查看 内存、线程、类、CPU 本地/远程连接诊断
VisualVM 可视化 性能监测、线程分析内存泄漏检查 深度排查与采样
JMX 管理与监控 远程采集 MBean 指标与操作 对接监控平台、脚本化采集
Prometheus + JMX Exporter 指标平台 JVM/JMX 指标转为 Prometheus 格式 长期存储与告警
Grafana 可视化 构建 监控大盘 与告警面板 可视化展示与运维看板
Micrometer + Spring Boot Actuator 应用指标 暴露 /actuator/prometheus 端点 Spring Boot 应用快速接入
SkyWalking APM/分布式追踪 调用链追踪、性能剖析 微服务链路与性能瓶颈
MyPerf4J APM 高性能、低开销 的 Java 性能监控 生产环境低侵入监控
New Relic / AppDynamics 商业 APM 响应时间、吞吐量、错误率 等全链路 企业级可观测性
dstat / nmon 系统监控 CPU、内存、磁盘、网络 资源监控 关联瓶颈定位(系统层)
crontab + 脚本 运维自动化 存活检测、异常重启/告警 稳定性保障与自愈
以上工具覆盖了 JVM 诊断指标采集与可视化APM 追踪系统资源监控 的完整链路,可按需组合使用。

快速上手步骤

  • 定位进程:使用 jps -l 获取目标 PID,便于后续命令使用。
  • 观察 GC 与内存:执行 jstat -gcutil 1000 10(每 1s 一次,共 10 次),关注 S0U/S1U/EC/EU/OC/OU/MC/MUYGC/YGCT/FGC/FGCT/GCT 等关键列。
  • 线程与死锁:用 jstack 抓取线程栈,分析 BLOCKED/WAITING 与锁竞争。
  • 内存泄漏定位:执行 jmap -dump:live,format=b,file=heap.hprof 生成 堆转储,再用 Eclipse MAT 分析。
  • 远程可视化:启用 JMX(示例参数见下节),通过 JConsole/VisualVM 远程连接查看 内存、线程、类、CPU 等。
  • 指标化与告警:部署 JMX Exporter 暴露 JVM 指标,Prometheus 拉取并存储,Grafana 配置大盘与告警规则。
  • Spring Boot 应用:引入 MicrometerActuator,暴露 /actuator/prometheus,由 Prometheus 采集、Grafana 展示。
  • 分布式追踪:在微服务中接入 SkyWalking,获取 调用链性能剖析 数据。
    以上步骤覆盖了从 快速诊断长期观测 的常用路径,适合大多数 CentOS + Java 场景。

关键配置示例

  • 启用 JMX(远程)
    在启动参数中加入:
    java -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=9010 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ -jar yourapp.jar
    说明:生产环境建议开启 认证SSL,并限制来源 IP。
  • Prometheus 抓取 Spring Boot 应用
    prometheus.yml 中添加作业:
    scrape_configs:
    • job_name: ‘java-app’
      metrics_path: ‘/actuator/prometheus’
      static_configs:
      • targets: [‘localhost:8080’]
        应用侧引入 Micrometer 依赖并启用 Actuatorprometheus 端点。
  • 常用 jstat 命令
    jstat -gcutil 1000 10(每 1s 采样一次,共 10 次),用于观察 GC内存分区 使用变化。
    以上配置可直接用于 远程 JMX 诊断指标化接入 的常见场景。

告警与可视化实践

  • 指标与面板:以 Prometheus 作为时序存储,围绕 JVM(内存/GC/线程)应用(QPS/延迟/错误)系统(CPU/内存/IO/网络) 建立指标与 Grafana 面板,设置阈值告警(如 FGC 频繁、线程池满、HTTP 5xx 激增)。
  • 链路追踪:在微服务架构中引入 SkyWalking,将 调用链慢调用异常业务拓扑 纳入统一观测,便于定位跨服务瓶颈。
  • 系统层关联:使用 dstat/nmon 观察 CPU steal、磁盘 await、网络丢包 等系统指标,辅助判断 资源瓶颈 是否来自 JVM 之外
  • 稳定性保障:通过 crontab + 脚本进程存活检测异常重启/告警,作为平台告警的补充防线。
    上述实践可形成从 指标链路 再到 系统 的闭环观测与告警体系。

0