springboot应用集成prometheus监控

news/2024/5/19 1:32:55 标签: spring boot, prometheus, linux

环境参数:
运行命令:
1、uname -a (Linux查看版本当前操作系统内核信息)
在这里插入图片描述
2、cat /proc/version (Linux查看当前操作系统版本信息)
在这里插入图片描述
3、cat /proc/cpuinfo
lscpu (Linux查看cpu相关信息,包括型号、主频、内核信息等)
在这里插入图片描述
1、部署prometheus
在这里插入图片描述
下载地址:prometheus官方下载网页

1.1下载prometheus安装包

wget https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-amd64.tar.gz
tar -zxvf /tmp/prometheus-2.43.0.linux-amd64.tar.gz

解压后目录:
在这里插入图片描述
重点关注prometheus.yml,该文件为prometheus的配置文件。

# my global config
global:
  scrape_interval: 15s # 将监测间隔设置为每15秒。默认为1分钟一次
  evaluation_interval: 15s # 每15秒评估一次规则。默认为1分钟。
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration(报警管理程序配置)
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
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'.

    static_configs:
      - targets: ["localhost:9090"]
 - job_name: "server"
    static_configs:
      - targets: ["192.168.49.130:9100"]
 - job_name: "demo-server"
    metrics_path: '/actuator/prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ["192.168.49.2:9484"]    

其他详细配置参数,请查看官方文档:prometheus Configuration file
重点:scrape_configs 主要用于配置拉取数据节点,每一个拉取配置主要包含以下参数:

  • job_name:任务名称
  • honor_labels: 用于解决拉取数据标签有冲突,当设置为 true, 以拉取数据为准,否则以服务配置为准
  • params:数据拉取访问时带的请求参数 scrape_interval: 拉取时间间隔
  • scrape_timeout: 拉取超时时间
  • metrics_path: 拉取节点的 metric 路径
  • static_configs:配置访问路径前缀,如ip+port,或者域名地址,或者通过服务发现,类似192.168.49.130:9100
  • scheme: 拉取数据访问协议,如http
  • sample_limit:存储的数据标签个数限制,如果超过限制,该数据将被忽略,不入存储;默认值为0,表示没有限制
  • relabel_configs:拉取数据重置标签配置
  • metric_relabel_configs:metric 重置标签配置
    上面的配置文件我配置了三个监测点,三个jod_name分别是prometheus(监控promethues本身)、server(监控Centos服务器)、demo-server(监控springboot应用)。

1.2、启动prometheus并在后台运行,支持热更新。

nohup ./prometheus --config.file=prometheus.yml --web.enable-lifecycle  > startLog.log 2>&1 &

1.3、检查是否启动

http://192.168.49.130:9090/metrics

在这里插入图片描述
或者查看项目路径下日志输出文件:startLog.log

1.4、访问prometheus提供的web-ui

http://192.168.49.130:9090/ 
上面地址会重定向到
http://192.168.49.130:9090/graph

在这里插入图片描述

1.5、添加jobs/exporters采集数据
如下prometheus架构图,prometheus serrver通过拉取metris数据来采集数据,而数据提供靠各个jobs/exporters。
在这里插入图片描述

在这里插入图片描述
官方提供的exporters

node_exporter是监控服务器的exporter,下载安装包,并配置prometheus.yml中的scrape_configs

 - job_name: "server"
    static_configs:
      - targets: ["192.168.49.130:9100"]

热更新prometheus,执行下面的命令。

curl -X POST http://ip:9090/-/reload

查看targets状态:
在这里插入图片描述
在这里插入图片描述
1.6 查看prometheus采集的数据

在这里插入图片描述
在这里插入图片描述
选中一个表达式,然后点击execute,便查询到对应的数据。表达式查询功能强大,更多使用参考官方文档。prometheus 表达式查询官方文档
在这里插入图片描述
2、部署grafana监控面板
2.1、通过docker 安装grafana
官方安装文档

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

2.2、访问grafana web-ui

http://192.168.49.130:3000

在这里插入图片描述
2.3、配置prometheus数据源
下面就是按图操作:
2.3.1、点击设置
在这里插入图片描述
2.3.2、点击add new data source在这里插入图片描述
2.3.3、选择数据源类型-prometheus
在这里插入图片描述
2.3.4、设置数据源地址
在这里插入图片描述
2.4、导入配置好的监控模板
在这里插入图片描述
2.4.1、输入grafana官方提供的dashboard id
官方提供的dashboard网址
点击进去搜索Node Exporter Full
在这里插入图片描述
将copy到的id填到下面,然后load。
在这里插入图片描述
监控centos的监控界面:
在这里插入图片描述

3、springboot集成prometheus监控
3.1、将下面的依赖添加到pom中

 		<dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
            <scope>runtime</scope>
        </dependency>
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

配置文件中添加:

management:
  server:
    port: 9484
  endpoints:
    web:
      exposure:
        include: '*'
#        include: prometheus.metrics,health,info

postman测试:http://localhost:9484/actuator/prometheus
在这里插入图片描述
3.2、设置prometheus的job

 - job_name: "demo-server"
    metrics_path: '/actuator/prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ["192.168.49.2:9484"]    

热更新prometheus,执行下面的命令。

curl -X POST http://ip:9090/-/reload

查看targets状态:
在这里插入图片描述

4、grafana配置promethues监控springboot应用
操作和添加监控服务器的一样。
首先去https://grafana.com/grafana/dashboards/ 去搜索,搜索micrometer,然后选择一个你中意的,copy它的id,导入监控面板。
最后的效果:
在这里插入图片描述


http://www.niftyadmin.cn/n/174819.html

相关文章

毫米波雷达人体存在感应器,雷达传感控制技术,智能化触发应用

毫米波雷达人体存在传感器成品&#xff0c;凭借更高感知精度和更全面的感知能力&#xff0c;为智能化场景创造全新体验和想象空间。 有了雷达人体存在传感器&#xff0c;智能设备就能够通过雷达传感器感应到用户是否存在&#xff0c;从而实现自动关闭&#xff0c;避免造成能源…

软件开发过程中系统架构设计文档一般可以怎么写

系统架构设计文档是一个非常重要的文档&#xff0c;它描述了一个软件系统的整体结构和组成部分&#xff0c;包括各个模块、组件和它们之间的交互关系。以下是一些可以考虑包含在系统架构设计文档中的内容&#xff1a; 概述&#xff1a;简要介绍系统的目的、范围和主要功能&…

C++ 可变体(variant)

一、可变体(variant) 基础用法 Union的问题&#xff1a; 无法知道当前使用的类型是什么。而且union无法自动调用底层数据成员的析构函数。创建复杂的数据类型的封装能力非常鸡肋. variant C17 提供了 std::variant。 可变体的声明 下面的代码是声明一个可变体的用法&…

服务端(一)安装 nvm 以及管理 node 版本

安装nvm地址 Releases coreybutler/nvm-windows GitHubA node.js version management utility for Windows. Ironically written in Go. - Releases coreybutler/nvm-windowshttps://github.com/coreybutler/nvm-windows/releases 直接下载安装&#xff0c;注意安装路径中…

CSDN竞赛第39期题解

CSDN竞赛第39期题解 1、题目名称&#xff1a;代写匿名信 小Q想要匿名举报XX领导不务正业&#xff01; 小Q害怕别人认出他的字迹。 他选择从报纸上剪裁下来英文字母组成自己的举报信。 现在小Q找来了报纸&#xff0c;和自己的举报信的Txt&#xff0c; 你能帮他确定一下是否能够…

abi生成go文件

abi文件生成需要安装solidity&#xff0c;参考上一篇文章MacOS 安装 solidity或者通过remix将智能合约进行编译&#xff0c;拷贝编译好的abi下载以太坊源码并变异abigen工具包git clone https://github.com/ethereum/go-ethereum.git go install ./cmd/abigen可以在GOBIN对应的…

Kaggle 赛题解析 | AMP 帕金森进展预测

文章目录一、前言二、比赛说明1. Evaluation2. Timeline3. Prize4. Code Requirements三、数据说明四、总结&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 竞赛题目&#xff1a;AMP-Parkinson’s Disease Progression Prediction 竞赛地址…

DBN+LSTM神经网络电容量回归分析,基于MATLAB编程的深度信念网络+lstm回归分析,

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机&#xff08;RBM&#xff09; LSTM长短期神经网络的原理 DBNLSTM的时间序列电容预测 基本结构 主要参数 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络&#xff0c;拥有提取特征&#xff0c;非监督学…