当前位置: 首页 > article >正文

JVM监控搭建

文章目录

  • JVM监控搭建
    • 整体架构
    • Jolokia
    • Telegraf
    • Influxdb
    • Grafana


JVM监控搭建

整体架构

在这里插入图片描述

JVM 的各种内存信息,会通过 JMX 接口进行暴露。

Jolokia 组件负责把 JMX 信息翻译成容易读取的 HTTP 请求。Telegraf 组件作为一个通用的监控 agent,和 JVM 进程部署在同一台机器上,通过访问转化后的 HTTP 接口,以固定的频率拉取监控信息。然后把这些信息存放到 Influxdb 时序数据库中。最后,通过 Grafana 展示组件,设计 JVM 监控图表。

整个监控组件是可以热拔插的,并不会影响原有服务。监控部分也可以复用,比如 Telegraf 就可以很容易的进行操作系统监控。

Jolokia

Jolokia 就是一个将 JMX 转换成 HTTP 的适配器,方便了 JMX 的使用。

在这里插入图片描述

Jokokia 可以通过 jar 包和 agent 的方式启动,在一些框架中,比如 Spring Boot 中,很容易进行集成。直接在 pom 文件里加入 Jokokia 的依赖,在 application.yml 中简单地加入一点配置,就可以通过 HTTP 接口访问 JMX 的内容了。

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
        <groupId>org.jolokia</groupId>
        <artifactId>jolokia-core</artifactId>
</dependency>
management:
  endpoints:
    web:
      exposure:
        include: jolokia

Telegraf

Telegraf 是一个监控数据收集工具,支持非常丰富的监控类型,其中就包含内置的 Jolokia 收集器。

Influxdb

influxdb 是一个性能和压缩比非常高的时序数据库,在中小型公司非常流行。

在 CentOS 环境中,可以使用下面的命令下载。

wget -c https://dl.influxdata.com/influxdb/releases/influxdb-1.7.9_linux_amd64.tar.gz
tar xvfz influxdb-1.7.9_linux_amd64.tar.gz

解压后,然后使用 nohup 进行启动。

nohup ./influxd &

InfluxDB 将在 8086 端口进行监听。

Grafana

Grafana 是一个颜值非常高的监控展示组件,支持非常多的数据源类型,对 influxdb 的集成度也比较高。

Grafana 的安装

wget -c https://dl.grafana.com/oss/release/grafana-6.5.3.linux-amd64.tar.gz
tar -zxvf grafana-6.5.3.linux-amd64.tar.gz

在导入之前,还需要创建一个数据源,选择 influxdb,填入 db 的地址即可。

在这里插入图片描述


http://www.kler.cn/a/1349.html

相关文章:

  • List ---- 模拟实现LIST功能的发现
  • 阿里云直播互动Web
  • OpenBSD之安装指南
  • matlab编写分段Hermite插值多项式
  • vs2022开发.net窗体应用开发环境安装配置以及程序发布详细教程
  • 基于Python实现的通用小规模搜索引擎
  • 改进YOLO系列 | CVPR2023最新 PConv | 提供 YOLOv5 / YOLOv7 / YOLOv7-tiny 模型 YAML 文件
  • day2 —— 判断字符串中的字符是否唯一
  • *p++,*(p++),*++p,(*p)++区别?
  • 蓝桥杯嵌入式--字符串比较在串口通信中的应用
  • GPT-4来了!看看她究竟强在哪里!
  • 大学四年..就混了毕业证的我,出社会深感无力..辞去工作,从头开始
  • ImageView(图像视图)
  • 动手实现一遍Transformer
  • 【2024考研】计算机考研,4轮复习时间安排
  • 基于stm32mp157 linux开发板ARM裸机开发教程Cortex-A7 开发环境搭建(连载中)
  • redis持久化的几种方式
  • 文心一言发布,你怎么看?chatGPT
  • python解析Java文件三方库javalang用法简介
  • MySQL索引特性
  • 【完整代码】用HTML/CSS制作一个美观的个人简介网页
  • 若依整合Easy-Es实现文章列表分页查询
  • 02-PostgreSQL 存储过程的进阶介绍(含游标、错误处理、自定义函数、事务)
  • 真实的软件测试日常工作是咋样的?
  • Delphi 一个函数实现腾讯云最新版(API3.0)短信发送
  • C++基础教程