• JVM线上监控环境搭建Grafana+Prometheus+Micrometer


    架构图

    一: SpringBoot自带监控Actuator

            SpringBoot自带监控功能Actuator,可以帮助实现对程序内部运行情况监控,比如监控内存状况、CPU、Bean加载情况、配置属性、日志信息、线程情况等。

    使用步骤:

    1. 导入依赖坐标

    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-actuatorartifactId>
    4. dependency>

    2. 访问监控地址: http://127.0.0.1:8086/actuator

    监控应用endpoint:

    路径描述默认开启
    /beans显示容器的全部的Bean,以及它们的关系Y
    /env获取全部环境属性Y
    /env/{name}根据名称获取特定的环境属性值Y
    /health显示健康检查信息Y
    /info显示设置好的应用信息Y
    /mappings显示所有的@RequestMapping信息Y
    /metrics显示应用的度量信息Y
    /scheduledtasks显示任务调度信息Y
    /httptrace显示Http Trace信息Y
    /caches显示应用中的缓存Y
    /conditions显示配置条件的匹配情况Y
    /configprops显示@ConfigurationProperties的信息Y
    /loggers显示并更新日志配置Y
    /shutdown关闭应用程序N
    /threaddump执行ThreadDumpY
    /headdump返回HeadDump文件,格式为HPROFY
    /prometheus返回可供Prometheus抓取的信息Y

    配置:

    1. management:
    2. endpoints:
    3. web:
    4. exposure:
    5. include: "*" #用于选择公开所有接口
    6. endpoint:
    7. health:
    8. show-details: ALWAYS #显示所有健康状态
    9. shutdown:
    10. enabled: true #启用接口关闭 Spring Boot

    二: Micrometer

            Spring Boot 2.0以上,使用了micrometer作为底层的度量工具,micrometer是监控度量的门面,它能支持按照各种格式来暴露数据,其中就有Prometheus。

    我们引入一个依赖来暴露Prometheus数据:

    1. <dependency>
    2. <groupId>io.micrometergroupId>
    3. <artifactId>micrometer-registry-prometheusartifactId>
    4. dependency>

    这个依赖的作用就是会开启一个endpoint,输出兼容Prometheus exporter的结果,方便Prometheus来采集。修改SpringBoot配置:

    1. management:
    2. endpoints:
    3. web:
    4. exposure:
    5. include: "*" #用于选择公开所有接口
    6. endpoint:
    7. health:
    8. show-details: ALWAYS #显示所有健康状态
    9. shutdown:
    10. enabled: true #启用接口关闭 Spring Boot
    11. metrics:
    12. tags:
    13. application: ${spring.application.name} #暴露的数据中添加应用名称

    然后启动应用, 访问http://127.0.0.1:8086/actuator/prometheus 应该会得到如下结果:

    这就是Prometheus exporter的格式,可以看到里面暴露了很详细的JVM指标。接下来,配置Prometheus抓取监控数据。

    三: 安装node_exporter

    1) 下载 node_exporter

    wget -c https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz

    2) 解压

    tar zxvf node_exporter-0.18.1.linux-amd64.tar.gz 

    3) 启动

    nohup ./node_exporter > node.log 2>&1 &

     4) 校验是否启动成功

        访问接口是否成功

    http://192.168.18.205:9100/metrics

    四: 安装 Prometheus

    1) 下载 Prometheus

    wget -c https://github.com/prometheus/prometheus/releases/download/v2.15.1/prometheus-2.15.1.linux-amd64.tar.gz

    2) 解压

    tar zxvf prometheus-2.15.1.linux-amd64.tar.gz

    3) 配置 Prometheus

    1. # sms-demo 应用程序配置
    2. - job_name: 'sms-demo'
    3. metrics_path: '/actuator/prometheus'
    4. static_configs:
    5. - targets: ['192.168.18.205:8086']
    6. # node-exporter 配置
    7. - job_name: 'sms-Linux'
    8. static_configs:
    9. - targets: ['192.168.18.205:9100']

    4)  运行

    nohup ./prometheus > prometheus.log 2>&1 &

    4) 校验是否启动成功

    测试Prometheus是否安装配置成功

    http://192.168.18.205:9090/targets


    五: 安装 Grafana

    1)下载Grafana镜像:

    docker pull grafana/grafana

    2)启动Grafana容器:

    启动Grafana容器,将3000端口映射出来

    docker run -d --name grafana -p 3000:3000 grafana/grafana

    3)验证部署成功

    网页端访问http://192.168.18.205:3000/验证部署成功

    默认账户密码:admin\admin

     4) Prometheus整合Grafana

    增加数据源Data sources

     点击 Add data source

     选择Prometheus进行配置,点击 Select

     配置Prometheus链接, 并点击Save & test 保存

     5) 导入模版

    点击Import

     输入 模版ID 进行加载

     JVM监控模版: dashboad-ID:12856

    Linux系统监控模版:

    • Node Exporter for Prometheus Dashboard EN 20201010

      • dashboard-ID: 11074

    • Node Exporter Dashboard

      • dashboard-ID: 16098

    配置上述模版, JVM模版是用来监控我们应用JVM的详情信息, 而Linux系统模版是用来监控我们的服务器.

    完整效果如下图:

  • 相关阅读:
    前端面试题日常练-day50 【面试题】
    java实现websocket握手协议
    dubbo学习笔记
    思腾云计算
    关于CAS等原子操作,说点别人没说的
    FEDformer 代码分析(2)
    计算机毕业设计Java微博系统网站(源码+系统+mysql数据库+Lw文档)
    C++11常用新特性——右值引用&&
    need help pat甲级1012 The Best Rank 最后一个点运行时错误
    第4章 进程同步
  • 原文地址:https://blog.csdn.net/weixin_46203834/article/details/140019233