Spring Boot + Docker 应用监控配置教程 Prometheus + Grafana

文章目录

      • 一、Prometheus
        • 1. 主要特性
        • 2. 架构
      • 二、Grafana
        • 主要特性:
      • 三、Prometheus + Grafana 结合
      • 四、应用场景
      • 五、实战部署到项目
        • 1. 环境配置
          • datasource.yml 配置文件
        • 2. 配置到 Spring Boot 项目中
        • 3. 编辑配置文件
        • 4. 启动 Spring Boot 项目


一、Prometheus

Prometheus 是一个开源的系统监控和报警工具包,最初由 SoundCloud 开发,现已成为 CNCF(云原生计算基金会)的项目。它主要用于收集和存储时间序列数据,并允许用户对这些数据进行查询和分析。

1. 主要特性
  • 多维数据模型:数据以度量(metrics)和标签(labels)的形式存储。
  • 强大的查询语言(PromQL):允许用户灵活地对数据进行查询。
  • 无需依赖分布式存储:单个服务器节点即可运行。
  • 数据收集方式:通过 HTTP pull 模型,从受监控的目标(targets)主动拉取数据。
  • 内置的报警管理:通过 Alertmanager 进行报警管理和通知。
  • 多种可视化方式:虽然 Prometheus 自带基本的图形界面,但更多时候与 Grafana 配合使用。
2. 架构

Prometheus 主要由以下几个组件组成:

  • Prometheus Server:负责抓取和存储时间序列数据。
  • Pushgateway:用于短期任务的指标推送。
  • Client Libraries:用于应用程序代码内嵌的指标采集。
  • Alertmanager:处理报警。
  • Exporters:用于从第三方服务收集数据(如 Node Exporter、Blackbox Exporter)。

二、Grafana

Grafana 是一个开源的可视化和分析工具,专注于为复杂的数据查询和展示提供解决方案。它支持从多个数据源获取数据,包括 Prometheus、Graphite、InfluxDB、Elasticsearch 等。

主要特性:
  • 多数据源支持:可从不同的数据源获取和整合数据。
  • 丰富的可视化组件:提供多种图表和面板组件,如时序图、柱状图、饼图、热力图等。
  • 灵活的仪表盘:用户可以根据需要创建和定制仪表盘。
  • 查询编辑器:强大的查询编辑器支持各类数据源的查询语法。
  • 警报功能:能够基于仪表盘数据设置警报。
  • 用户权限管理:支持团队协作和权限管理。

三、Prometheus + Grafana 结合

  1. 数据收集与存储:Prometheus 负责从各种目标(如应用、数据库、硬件设备等)中拉取数据,并将其存储为时间序列数据。
  2. 数据可视化:Grafana 从 Prometheus 中读取数据,并将其以丰富的图表形式展示在仪表盘上。
  3. 报警管理:通过 Prometheus 和 Grafana 的集成,用户可以基于监控数据创建报警规则,并在触发条件满足时接收通知。
  4. 查询与分析:使用 Grafana 的查询编辑器,用户可以通过 PromQL 灵活地查询 Prometheus 中的数据,并进行深度分析。

四、应用场景

  • 服务器和基础设施监控:监控 CPU、内存、磁盘、网络等系统指标。
  • 应用性能监控:监控应用程序的响应时间、错误率、请求数等指标。
  • 业务指标监控:监控订单量、用户活跃度、转化率等业务数据。
  • 分布式系统监控:监控 Kubernetes 集群、微服务架构等复杂分布式系统的运行状况。

五、实战部署到项目

1. 环境配置

打开Linux,我们采用docker的方式进行安装,文件目录大致如下:

Spring Boot + Docker 应用监控配置教程 Prometheus + Grafana_第1张图片

datasource.yml 配置文件
apiVersion: 1.0 # 定义 API 版本,这里是 1.0 

datasources: # 数据源的定义部分 
	- name: Prometheus # 数据源的名称,可以自定义 
	  type: prometheus # 数据源的类型,这里指定为 
	  Prometheus access: proxy # 访问方式,使用 proxy 模式 
	  url: http://prometheus:9090 # Prometheus 服务的 URL 地址 
	  isDefault: true # 设置为默认数据源

grafana 配置文件

完整文件:点击下载 grafana.ini

grafana.ini 文件:

  1. 需要改的第一个地方。
[server]  
http_port = 4000 # 设置服务端口,默认3000,如果被占用,可以设置为4000
  1. 需要改的第二个地方。
[database]  
# You can configure the database connection by specifying type, host, name, user and password  
# as separate properties or as on string using the url properties.  
  
# Either "mysql", "postgres" or "sqlite3", it's your choice  
type = mysql
host = 192.168.1.107:3306  
name = grafana  # 需要在MySQL中先创建名为grafana的数据库
user = root  
password = 123456
  1. 还有一个配置文件 点击下载 ldap.toml。

prometheus.yml 配置文件

global: 
	scrape_i

你可能感兴趣的:(拓展知识,Java,项目,java,grafana,prometheus,docker)