SpringBoot+Prometheus+Grafana搭建应用监控系统

这篇具有很好参考价值的文章主要介绍了SpringBoot+Prometheus+Grafana搭建应用监控系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.应用监控系统介绍

SpringBoot的应用监控方案比较多,SpringBoot+Prometheus+Grafana是比较常用的一种解决方案,主要的监控数据的处理逻辑如下:
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

  • SpringBoot 的 actuator 提供了应用监控端点,可以对外暴露监控数据信息。
  • Prometheus 是监控系统,可以从 Springboot 采集监控数据,以时序数据的形式存储,并对外提供了监控数据查询服务。
  • Grafana 是专业的 UI 仪表盘系统,支持非常多的数据源,自然也支持Prometheus,可以对接Prometheus,从其中获取数据,使用仪表盘展示出来。

springboot 2.X 中引入了 micrometer,它可以更方便的对接各种监控系统,包括 Prometheus。

2.软件版本说明

  • jdk >= 1.8.0
  • springboot == 2.7.11
  • prometheus == 2.45.2
  • grafana == 10.1.0

3. 准备SpringBoot项目

创建一个Springboot项目, SpringBoot版本选择2.7.11, 项目的pom.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
   
	<groupId>com.beyond</groupId>
    <artifactId>beyond-monitor-admin</artifactId>
	 <packaging>jar</packaging>
	
	 <name>beyond-monitor-admin</name>
    <description>Demo project for Spring Boot</description>
	
	 <properties>
        <springboot.version>2.7.11</springboot.version>
		<prometheus.version>1.9.10</prometheus.version>
    </properties>
	
    <dependencies>
        <!-- SpringWeb模块 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- 对外暴露监控端点 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!-- 集成prometheus定时爬取web服务监控端点数据 -->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
			<version>${prometheus.version}</version>
        </dependency>
    </dependencies>
	
	 <!-- 依赖声明 -->
    <dependencyManagement>
        <dependencies>
            <!-- SpringBoot的依赖配置-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>	
	</dependencyManagement>
	
    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

配置文件application.yml文件配置如下:

server:
  port: 19090
spring:
  application:
    name: beyond-monitor-admin
  profiles:
    active: dev

logging:
  config: classpath:logback-plus.xml

--- # Actuator 监控端点的配置项
management:
  endpoints:
    enabled-by-default: true #暴露所有端点信息
    web:
      exposure:
		# 这里可以指定暴露端点的范围,示例: health,info,env,prometheus,metrics,httptrace,threaddump,heapdump,springmetrics
        include: '*'
  endpoint:
    health:
      show-details: ALWAYS
    logfile:
      external-file: ./logs/beyond-monitor-admin.log

启动程序,访问http://localhost:19090/actuator/prometheus就可以看到服务暴露的那些监控指标了。
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
OK, 这样我们的web项目配置暴露监控指标就配置好了, 下面我们继续进行PrometheusGrafana的安装。

4.应用安装

4.1.Prometheus下载安装

本文下载的是linux版本的最新稳定版本prometheus-2.45.2.linux-amd64.tar.gz

下载地址:https://prometheus.io/download/

下载prometheus-2.45.2linux系统64位的安装压缩包,上传到服务器。
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

将上传的安装压缩包解压缩到指定的安装目录下

prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

重命名应用名称为prometheus-2.45.2, 个人习惯, 可以跳过。

prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafanaprometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
通过以上步骤,prometheus-2.45.2就安装好了。

4.2.Grafana下载安装

本文下载的是linux版本的最新稳定版本grafana-10.1.0.linux-amd64.tar.gz

下载地址:https://grafana.com/grafana/download
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
下载grafana-10.1.0linux系统64位的安装压缩包,上传到服务器。

将上传的安装压缩包解压缩到指定的安装目录下

prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
通过以上步骤,grafana-10.1.0就安装好了。

5.Prometheus配置启动

因为我们需要使用Prometheus从Springboot应用暴露的监控指标中进行数据采集,所以需要再Prometheus的配置文件prometheus.yml文件中配置数据采集的目标信息。
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

vim prometheus.yml

# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # 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"]
 
  # 配置应用监控服务的相关信息, prometheus会从配置的应用服务暴露的监控端点获取监控数据,如果有多个应用可以配置多个job
  - job_name: 'beyond-monitor-admin' 
    scrape_interval: 5s # 刮取的时间间隔
    scrape_timeout: 5s  
    metrics_path: /actuator/prometheus
    scheme: http
    #basic_auth: #认证信息(如果上线生产环境,admin项目最好配置安全认证, 这里配置认证账号和密码)
    #  username: admin
    #  password: admin 
    static_configs:
      - targets: ["10.10.3.169:19090"]  #此处填写 Spring Boot 应用的 IP + 端口号

更多配置信息请查看官方文档prometheus配置。

现在可以启动Prometheus了,启动命令如下:

./prometheus --config.file=prometheus.yml

如下图:说明启动成功
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

访问http://10.10.3.14:9090/targets,将IPt替换成你的Prometheus服务所在那台机器的IP,查看Spring Boot采集状态是否正常,如下图,说明Prometheus对接你的web应用成功,可以成功采集到监控信息。
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

6.Grafana配置启动

6.1.启动Grafana服务

prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

# 进入到grafana的安装目录下的bin目录
cd /home/software/grafana-10.1.0/bin
# 启动grafana-server服务
nohup ./grafana-server &

当然你也可以直接将grafana-server配置到系统环境变量, 方便随时启动不用切换路径到grafana的安装目录下的bin目录,这个可以自行操作。

通过浏览器访问grafana服务,http://10.10.3.14:3000, 默认的登录账号密码是

账号:admin
密码:admin

prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

使用默认账号密码登录成功过之后,系统要求立即修改密码,如下图:
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
修改密码保存之后就进入系统首页了
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

6.2.配置Grafana可视化图表

6.2.1.配置数据源

在配置Grafana可视化图表之前需要先配置数据源, Grafana支持很多种数据源对接,这里我们配置
Prometheus数据源。
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

点击添加数据源
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
选择Prometheus数据源
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
配置Prometheus的应用访问URL地址信息
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
如下图:说明数据源配置正常可访问, 如果失败, 大概率就是以下几种情况导致的:

  • Prometheus服务未正常启动
  • Prometheus服务url信息配置填写错误
  • 两个服务安装在不同的服务器,主机之间的网络不通
  • 两个服务安装在不同的服务器,防火墙服务启动,服务无法通信

一般错误就是这几种情况,一一排查基本就能解决。

prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
之后再数据源列表就可以看到我们配置的Prometheus数据源
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

6.2.2.配置可视化监控面板

对于这块儿, 我是真不擅长, 但是Grafana有一个网站上提供了免费的可视化模板可以下载, 访问地址是:https://grafana.com/grafana/dashboards/
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
这里我们搜索Spring,
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

找一个你喜欢的模板, 点击Download JSON
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

然后再Grafana上点击Dashboards菜单。如下图:
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
选择从外部导入
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

上传可视化面板的JSON文件并导入
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
载入可视化面板模板如下:
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

保存可视化面板
prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

可视化面板入口一

prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana

可视化面板入口二

prometheus-2.45.2.linux-amd64.tar.gz下载,Spring全家桶,SpringBoot,Java,spring boot,prometheus,grafana
通过以上操作, 我们的SpringBoot+Prometheus+Grafana搭建应用监控系统就搭建起来了。
好了,本篇文章到此结束,如果安装搭建过程中遇到问题,欢迎留言讨论哈,最后如果文章对你有帮助,请点赞关注,送你一朵小红花,谢谢~~~。文章来源地址https://www.toymoban.com/news/detail-813615.html

到了这里,关于SpringBoot+Prometheus+Grafana搭建应用监控系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • linux系统监控prometheus关联Grafana展示数据

    linux系统监控prometheus关联Grafana展示数据

    前提 寻找插件 创建数据源 输入id,点击右边load 选择数据源 查看页面

    2024年02月22日
    浏览(10)
  • 构建Docker容器监控系统(Cadvisor +Prometheus+Grafana)

    构建Docker容器监控系统(Cadvisor +Prometheus+Grafana)

            Cadvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行Cadvisor用户可以轻松的获取到当前主机上容器的运行统计信息,并以图表的形式向用户展示。 阿里云镜像加速器 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 欢

    2024年02月14日
    浏览(13)
  • 构建Docker容器监控系统(2)(Cadvisor +Prometheus+Grafana)

    构建Docker容器监控系统(2)(Cadvisor +Prometheus+Grafana)

    Cadvisor产品简介 Cadvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行Cadvisor用户可以轻松的获取到当前主机上容器的运行统计信息,并以图表的形式向用户展示。 被监控主机上部署Cadvisor容器 清空原来的 [root@agent ~]# docker rm -f $(docker ps -aq)

    2024年02月14日
    浏览(29)
  • 【经验案例】Springboot微服务搭建JVM监控(Springboot + Prometheus + Grafana)

    【经验案例】Springboot微服务搭建JVM监控(Springboot + Prometheus + Grafana)

    由于项目之前在生产环境出现过OOM的问题,并且没有及时发现,导致生产环境出现了在一定时间内不可用的情况,故决定搭建JVM监控对微服务24小时监听,以便于出现问题能够及时通知相关人员进行服务降级或解决问题。 经过可行性分析,得到目前较为适合的微服务监控为

    2024年02月06日
    浏览(10)
  • 基于Prometheus 和 Grafana 实现springboot应用监控和服务器监控

    基于Prometheus 和 Grafana 实现springboot应用监控和服务器监控

    目录 1.Prometheus环境搭建 1.1 下载和安装Prometheus 1.2 配置Prometheus 1.3 配置Prometheus抓取Spring Boot应用Metrics 1.4 启动Prometheus 2.Grafana环境搭建 2.1 下载和安装Grafana 2.2 配置Grafana数据源 2.3 创建Dashboard 3、NodeExporter(服务器监控)插件配置安装 3.1 下载和安装Node Exporter 插件 3.2配置pro

    2024年02月13日
    浏览(10)
  • K8s部署Prometheus+grafana+alertmanager报警监控系统(持续更新)

    K8s部署Prometheus+grafana+alertmanager报警监控系统(持续更新)

    自行准备一套k8s集群,如果不知道怎么搭建,可以参考一下我之前的博客 https://blog.csdn.net/qq_46902467/article/details/126660847 我的k8s集群地址是: k8s-master1 10.0.0.10 k8s-node1 10.0.0.11 k8s-node2 10.0.0.12 一、安装nfs服务 二、安装nfs客户端 三、部署Prometheus 四、部署grafana 五、部署alertmanage

    2023年04月24日
    浏览(42)
  • 免费开源服务器资源监控系统grafana+prometheus+node_exporter

    免费开源服务器资源监控系统grafana+prometheus+node_exporter

    有项目做测试的时候需要查询服务器资源利用情况,自己又没写相应的模块,此时就需要一套好用的资源监控系统,,咨询了运维人员给推荐了一套,装完后真的很好用。 就是grafana+prometheus+ node_exporter(linux)或者windows_exporter(wins) 具体介绍不多说: 1、grafana是对数据做展

    2024年02月12日
    浏览(12)
  • 完美的分布式监控系统 Prometheus与优雅的开源可视化平台 Grafana

    完美的分布式监控系统 Prometheus与优雅的开源可视化平台 Grafana

    prometheus与grafana之间是相辅相成的关系。简而言之Grafana作为可视化的平台,平台的数据从Prometheus中取到来进行仪表盘的展示。而Prometheus这源源不断的给Grafana提供数据的支持。 Prometheus是一个开源的系统监控和报警系统,能够监控和告警各种系统,包括网络、存储、服务器和

    2024年02月07日
    浏览(7)
  • 完美的分布式监控系统——Prometheus(普罗米修斯)与优雅的开源可视化平台——Grafana(格鲁夫娜)

    完美的分布式监控系统——Prometheus(普罗米修斯)与优雅的开源可视化平台——Grafana(格鲁夫娜)

            prometheus与grafana之间是相辅相成的关系。作为完美的分布式监控系统的Prometheus,就想布加迪威龙一样示例和动力强劲。在猛的车也少不了仪表盘来观察。于是优雅的可视化平台Grafana出现了。         简而言之Grafana作为可视化的平台,平台的数据从Prometheus中取到来进

    2024年02月14日
    浏览(10)
  • 使用 Zabbix + Grafana 搭建服务器监控系统

    使用 Zabbix + Grafana 搭建服务器监控系统

    搭建 Linux 服务器监控的目的是自己有一台阿里云服务器内存是 2g 的 , 多开一些软件就会把内存和 CPU 使用率弄的很高,最终导致服务器卡死。 所以基于这个痛点,想知道当前的 CPU 和内存是多少。阿里云 ECS 控制台中也提供对服务器的监控 , 但是为了学习 Linux 服务器监控系统

    2024年01月21日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包