Prometheus + Grafana 搭建监控仪表盘

目标要求

1、需要展现的仪表盘:

SpringBoot或JVM仪表盘

Centos物理机服务器(实际为物理分割的虚拟服务器)仪表盘

2、展现要求:

探索Prometheus + Grafana搭建起来的展示效果,尽可能展示能展示的部分。

一、下载软件包

  1. 监控系统核心:prometheus-2.45.0.linux-amd64.tar
    下载地址:https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
  2. 测试用节点导出器:node_exporter-1.6.0.linux-amd64.tar
    下载地址:https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz
  3. Grafana仪表盘:
    下载地址:
    https://dl.grafana.com/enterprise/release/grafana-enterprise-10.4.1.linux-amd64.tar.gz

二、安装及编写启动脚本

  1. 新建工作目录prometheus,将下载的软件包移动到目录下。

  2. 使用"tar -zxvf 软件包包名"命令逐步接下软件包。

    如: tar -zxvf prometheus-2.45.0.linux-amd64.tar.gz

  3. 在每个解压后的软件工作目录,新建start.sh脚本,按下方表格填入启动命令。保存后,赋予脚本执行权限"chmod +x start.sh"。

关闭方式 启动脚本
prometheus kill -9 nohup ./prometheus --web.enable-lifecycle > log.log 2>&1 &
grafana 同上 nohup ./bin/grafana-server>>./log.log &
node 同上 nohup ./node_exporter --web.listen-address=:9101 > node_log.log 2>&1 &

三、启动测试

分别执行目录下的启动脚本:start.sh

  • promethesu的UI默认访问地址:ip:9090,正常访问效果图如下:
  • grafana默认访问地址:ip:3000,正常访问效果图如下:

初始账户密码:admin/admin

初次安装需要修改密码,按照提示修改即可。登录后正常访问效果图如下:

四、JAVA应用添加Prometheus支持

JAVA版本:JDK17,Springboot版本:3.1.2

  1. 配置pom文件:

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <version>2.1.4.RELEASE</version> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-core</artifactId> <version>1.11.1</version> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <version>1.11.1</version> </dependency>
  2. 配置application.yml文件

    prometheus 配置

    management:
    metrics:
    # 下面选项建议打开,以监控 http 请求的 P99/P95 等,具体的时间分布可以根据实际情况设置
    distribution:
    sla:
    http:
    server:
    requests: 1ms,5ms,10ms,50ms,100ms,200ms,500ms,1s,5s
    tags:
    application: ${spring.application.name}
    endpoints:
    prometheus:
    enabled: true
    web:
    base-path: /monitor
    exposure:
    include: "prometheus"

五、Prometheus配置文件

  1. 修改Prometheus.yml配置文件如下图:
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
  # 添加应用节点
  - job_name: 'application'
    metrics_path: '/monitor/prometheus'
    scrape_interval: 15s
    file_sd_configs:
      - files: ['./exporter_config/application_target.json']
  # 添加硬件节点
  - job_name: 'node'
    scrape_interval: 15s
    file_sd_configs:
      - files: ['./exporter_config/node.json']

    static_configs:
      - targets: ["localhost:9090"]
  1. 在prometheus创建目录"exporter_config"
  2. 在exporter_config分别创建应用配置文件"application_target.json ",节点配置文件"node.json"。如下图
  1. 填写文件内容如下:

10.0.0.1:100x代表节点、jar包所在的机器ip以及端口号

application_target.json

[
    {
        "targets": [
            "10.0.0.1:1001"
        ],
        "labels": {
            "instance": "10.0.0.1:1001",
            "service": "jar名",
            "ip": "10.0.0.1",
            "nodeType": "application"
        }
    }
]

node.json

[
    {
        "targets":[
            "10.0.0.1:1001"
        ],
        "labels":{
            "instance":"模拟硬件节点",
            "job":"模拟硬件节点job",
            "ip": "10.0.0.1",
            "nodeType":"device"
        }
    }
]
  1. 使用postman调用热重启接口,重启prometheus,如下图,10.0.0.1:9090代表prometheus安装IP端口。返回200则代表已发送重启命令。
  1. 访问Prometheus,地址:ip:9090:,如下图:
  1. 第六步正常则代表prometheus监控系统,已将JAVA应用程序导出器、node节点导出器纳入监控。其它情况则代表未纳入监控,需要检查使得纳入Prometheus监控再往下推进。

六、Grafana配置中文与组件兼容

  1. 修改defaults.ini文件,文件处于./conf目录下,修改前建议备份。
  2. 当前版本某些组件默认不启用,导致一些开源的仪表盘显示为空。故需要配置启用
  1. 汉化。

七、Grafana连接Prometheus

  1. 添加新数据源
  1. 配置
  1. 成功如图

八、在Grafana配置仪表盘(Dashboard)

1、导入常见的Dashboard

任意Dashboard,无需数据源可导入,但是展示的内容是默认值。

同类型的多个监控目标,例如node监控,可以在适配的Dashboard切换观看。

  1. 选择导入
  1. 到官方查看官方提供的仪表盘
  1. 选择一个需要的仪表盘
  1. 下载仪表盘的json配置
  1. 打开下载的json文件,粘贴到第二步对应的方框内。
  1. 即可生成node常用应用程序的仪表盘
  1. 导入JVM及其它仪表盘:重复步骤1

3、自定义仪表盘(就是点点点)

  1. 新建仪表盘
  1. 添加可视化面板
  1. 选择数据源
  1. 自定义仪表盘
  1. 保存或应用
  1. 效果如图:添加其它可视化表重复1~6步
相关推荐
Freak嵌入式16 分钟前
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
java·开发语言·数据结构·python·接口·抽象基类
前端小马26 分钟前
解决IDEA出现:java: 程序包javax.servlet不存在的问题
java·servlet·intellij-idea
IH_LZH1 小时前
Broadcast:Android中实现组件及进程间通信
android·java·android studio·broadcast
去看全世界的云1 小时前
【Android】Handler用法及原理解析
android·java
.Net Core 爱好者1 小时前
Redis实践之缓存:设置缓存过期策略
java·redis·缓存·c#·.net
晚睡早起₍˄·͈༝·͈˄*₎◞ ̑̑1 小时前
苍穹外卖学习笔记(五)
java·笔记·学习
码上一元1 小时前
【百日算法计划】:每日一题,见证成长(017)
java·算法
用生命在耍帅ㅤ1 小时前
java spring boot 动态添加 cron(表达式)任务、动态添加停止单个cron任务
java·开发语言·spring boot
longlongqin1 小时前
JVM 虚拟机的编译器、类加载过程、类加载器有哪些?
jvm
学java的小菜鸟啊1 小时前
第五章 网络编程 TCP/UDP/Socket
java·开发语言·网络·数据结构·网络协议·tcp/ip·udp