Prometheus + Grafana 搭建监控仪表盘

ops/2024/10/19 14:30:23/

目标要求
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”。

关闭方式启动脚本
prometheuskill -9nohup ./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,正常访问效果图如下:

image.png

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

image.png
初始账户密码:admin/admin
初次安装需要修改密码,按照提示修改即可。登录后正常访问效果图如下:
image.png

四、JAVA应用添加Prometheus支持

JAVA版本:JDK17,Springboot版本:3.1.2

  1. 配置pom文件:
<!-- prometheus 导出器配置 -->
<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>
  1. 配置application.yml文件
# prometheus 配置
management:metrics:# 下面选项建议打开,以监控 http 请求的 P99/P95 等,具体的时间分布可以根据实际情况设置distribution:sla:http:server:requests: 1ms,5ms,10ms,50ms,100ms,200ms,500ms,1s,5stags:application: ${spring.application.name}endpoints:prometheus:enabled: trueweb:base-path: /monitorexposure:include: "prometheus"

五、Prometheus配置文件

  1. 修改Prometheus.yml配置文件如下图:

image.png

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: 15sfile_sd_configs:- files: ['./exporter_config/application_target.json']# 添加硬件节点- job_name: 'node'scrape_interval: 15sfile_sd_configs:- files: ['./exporter_config/node.json']static_configs:- targets: ["localhost:9090"]
  1. prometheus创建目录“exporter_config”
  2. 在exporter_config分别创建应用配置文件"application_target.json ",节点配置文件“node.json”。如下图

image.png

  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则代表已发送重启命令。

image.png

  1. 访问Prometheus,地址:ip:9090:,如下图:

image.png

  1. 第六步正常则代表prometheus监控系统,已将JAVA应用程序导出器、node节点导出器纳入监控。其它情况则代表未纳入监控,需要检查使得纳入Prometheus监控再往下推进。

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

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

image.png

  1. 汉化。

image.png

七、Grafana连接Prometheus

  1. 添加新数据源

image.png

  1. 配置

image.png

  1. 成功如图

image.png

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

1、导入常见的Dashboard

任意Dashboard,无需数据源可导入,但是展示的内容是默认值。
同类型的多个监控目标,例如node监控,可以在适配的Dashboard切换观看。

  1. 选择导入

image.png

  1. 到官方查看官方提供的仪表盘

image.png

  1. 选择一个需要的仪表盘

image.png

  1. 下载仪表盘的json配置

image.png

  1. 打开下载的json文件,粘贴到第二步对应的方框内。

image.png

  1. 即可生成node常用应用程序的仪表盘

image.png

  1. 导入JVM及其它仪表盘:重复步骤1

image.png

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

  1. 新建仪表盘

image.png

  1. 添加可视化面板

image.png

  1. 选择数据源

image.png

  1. 自定义仪表盘

image.png

  1. 保存或应用

image.png

  1. 效果如图:添加其它可视化表重复1~6步

image.png


http://www.ppmy.cn/ops/9722.html

相关文章

未来城市可视化,A3D引擎支持,免费搭建全新一代数字孪生!

AMRT3D数字孪生引擎https://www.amrt3d.com/#/ 什么是未来城市&#xff1f;它是新型数字化理念的载体&#xff0c;以数字孪生与物理世界城市的融合为核心&#xff0c;通过数字孪生技术在数字空间实时构建城市&#xff0c;采用数据整合和分析预测来实时模拟、预测、控制整体城市…

unity学习(86)——细节优化

东西已经做出来了&#xff0c;现在需要的是优化&#xff0c;说得简单&#xff0c;做起来难。 1.122包的优化&#xff0c;避免重复创建&#xff01; 2.为何会出现一边动&#xff0c;一边不动的情况。重复登录后依旧是unity可以看到移动&#xff0c;但是exe那边看不到移动&#…

UE5集成gRPC

最近有项目需要在UE5里做RPC&#xff0c;对比了thrift、gRPC、rcplib等开源rpc框架&#xff0c;由于习惯使用protobuf&#xff0c;故选择了gRPC。然而&#xff0c;Google出品也是一言难尽啊&#xff0c;最起码编译太繁琐了。 本次使用的gRPC版本为1.62.1&#xff0c;UE5.2&…

字符串加密

描述 这是一个古老的字符串加密方法&#xff0c;给定两个长度不超过100个字符的字符串&#xff0c;判断是否可以把其中一个重排&#xff0c;然后对26个字母做一个一一映射&#xff0c;使得两个字符串相同。 再进行映射&#xff1a;例如 每个字母映射到前一个字母&#xff08;B…

SpringBoot项目创建,详细流程

一、前言 Spring Boot是一个开源的Java框架&#xff0c;由Pivotal团队&#xff08;现为VMware旗下&#xff09;开发&#xff0c;通过提供默认配置和一系列启动器&#xff08;starters&#xff09;来简化项目配置&#xff0c;使得开发者能够快速启动和运行Spring应用程序。 ‍ …

ubunt18.04安装ROS避坑指南

1 前言&#xff1a; 本文是ubunt18.04下安装ros的&#xff0c;如果想使用ros2,请看我的下一篇文章,ubunt18.04安装ROS2 本来是不该写的&#xff0c;有官方文档&#xff0c;还有很多大神的分析。但里面的坑太多&#xff0c;我考虑了一下&#xff0c;还是想记录下避免下次在跳泥…

网卡接收数据的关键过程

网卡接收数据的关键过程 网卡中断处理网络软中断处理协议栈处理传输层处理 Linux内核tracers的实现原理与应用 前年ftrace for io /去年ftrace for mm/今年ftrace for network.今年ftrace也被深度定制加强。 在这篇文章中,我们将深入探讨网卡接收数据的完整过程,了解数据是如何…

Java中的设计模式在代码重构中的应用

设计模式是在软件开发中经常使用的一种经验总结&#xff0c;用于解决在特定上下文中重复出现的问题。在代码重构中&#xff0c;设计模式可以帮助我们改善代码的结构、可读性和可维护性。 下面是几个常见的设计模式及其在代码重构中的应用。 1. 单例模式&#xff08;Singleton …