actuator+admin/prometheus+grafana监控web应用+mysql数据库

介绍

  • Actuator Spring Boot提供的一个功能强大的管理和监控工具.可以提供对应用程序的运行时信息、健康状况、性能指标、日志等进行监控和管理。

#Spring Boot 2.0的端点基础路径由“/”调整到”/actuator”下,如:/info调整为/actuator/info
/actuator/info 端点获取应用程序的自定义信息,例如版本号、构建信息等。
/actuator/threaddump端点获取应用程序当前的线程信息。
/actuator/metrics/memory.used端点获取应用程序当前的内存使用情况。
actuator/loggers端点获取和修改应用程序的日志级别。
/actuator/health:健康检查端点
/actuator/env:环境信息端点
/actuator/prometheus:暴露给 Prometheus 的监控数据端点

  • Prometheus 是一个开源的监控系统和时间序列数据库,由 SoundCloud 开发并于 2016 年开源。它以其高效的数据抓取和存储能力而闻名,能够实时监控和报警,帮助开发人员及时发现和解决系统问题。
  • Grafana 是一个开源的度量分析和可视化套件,可以与 Prometheus 无缝集成,生成直观的图表和仪表盘。

Actuator+Admin

SpringBoot Admin是一个在github上开源的社区项目,通过使用Actuator暴漏的端点来是实现项目的可视化监控和管理,可以作为中小公司健康监控系统的使用是没有太大问题的。
admin访问权限问题可以通过 security控制 参考:https://gitee.com/wenwang2000/com-spring-cloud-v2.git#com-spring-cloud-admin

###Admin服务端
maven

 <!--admin服务端 版本要和客户端一致-->
		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-server</artifactId>
			<version>x.x.x</version>
		</dependency>
		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-server-ui</artifactId>
			<version>x.x.x</version>
		</dependency>

启动类增加

@EnableAdminServer

###Actuator接入
maven

	<!--admin-client 版本要和客户端一致-->
		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-client</artifactId>
			<version>x.x.x</version>
		</dependency>

配置


spring:
  application:
    name: Actuator
  # 指定admin-server的地址
  boot:
    admin:
      client:
        url: http://localhost:80

登录admin
在这里插入图片描述
查看服务详情
在这里插入图片描述

Actuator+Prometheus

如果公司有相关资源可以采用该方案

maven

<!--actuator-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<!--这个依赖可以实现将actuator的数据转换成Prometheus可以识别的数据类型-->
		<dependency>
			<groupId>io.micrometer</groupId>
			<artifactId>micrometer-registry-prometheus</artifactId>
			<version>1.1.3</version>
		</dependency>
		<!--aspectj-->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.13</version>
		</dependency>

项目配置

management:
  endpoints:
    web:
      exposure:
        include: health,info,env,prometheus,metrics,httptrace,threaddump,heapdump,springmetrics
  endpoint:
    #健康检查
    health:
      #总是展示健康检查的详细信息
      show-details: always
    #启用之后,才能够正常调用  /actuator/prometheus 接口
    prometheus:
      enabled: true
  metrics:
    prometheus:
        enabled: true
    tags:
      enabled: true
      #应用程序名称,这个配置建议加上,Grafana官方提供的面板配置很多用了这个label
      application: ${spring.application.name}
#自定义  actuator 监控信息
info:
  app:
    name: "@project.name@" #从pom.xml中获取
    version: "@project.version@"

启动服务后访问:http://localhost:8080/actuator/prometheus 查看效果

Prometheus 采集服务数据

1、下载 https://prometheus.io/ 安装
2、核心的三个配置如下图
3、启动服务访问 http://127.0.0.1:9090/

在这里插入图片描述

效果如下:
在这里插入图片描述

Grafana可视化

1、下载 https://grafana.com/grafana/download
2、安装启动 http://localhost:3000/ 默认密码 admin/admin 首次登记需要修改

配置数据源

connections => datasources=>添加一个新的数据源
在这里插入图片描述
选择prometheus
在这里插入图片描述
配置服务地址
在这里插入图片描述

创建仪表盘

https://grafana.com/grafana/dashboards 查找需要的模版
在这里插入图片描述
下载模版json文件(点击进去)
在这里插入图片描述

Dashboard ==》Create Dashboard
在这里插入图片描述
上传下载的json文件
在这里插入图片描述
修改下名称+选择数据源
在这里插入图片描述
查看效果
在这里插入图片描述

监控mysql

安装 MySQL Exporter

https://github.com/prometheus/mysqld_exporter

配置MySQL Exporter

在 mysqld_exporter 目录中,创建一个配置文件 config.my.cnf

[client]
host=localhost
port=3306
user=your_mysql_user
password=your_mysql_password

运行 exporter

# --web.listen-address=":9104" 指定端口
./mysqld_exporter --config.my-cnf="config.my.cnf"

配置Prometheus

scrape_configs:
  - job_name: 'mysql'
    static_configs:
      - targets: ['localhost:9104']  # 确保这里的端口与 mysqld_exporter 的端口一致

选择模版
在这里插入图片描述
工程代码参考:https://gitee.com/wenwang2000/com-spring-cloud-v2.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值