Prometheus 监控实施 -- (二)应用服务集成Prometheus

一、应用侧配置

1.1、引入依赖
在应用的在pom.xml文件中需要引入以下依赖(标准版项目中已默认引入依赖):
 <!-- 实现对 Spring MVC 的自动化配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 实现对 Actuator 的自动化配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!-- MicrometerPrometheus 的支持 -->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
	<!-- 监控相关 -->
	<dependency>
    	<groupId>cn.iocoder.cloud</groupId>
    	<artifactId>yudao-spring-boot-starter-monitor</artifactId>
	</dependency>
1.2配置文件修改

在引入完依赖之后,需要在配置文件中新增一下配置:
Actuator 监控端点的配置项:

management:
  endpoints:
    web:
      base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuator
      exposure:
        include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。

  metrics:
    tags: # 通用标签
      application: ${spring.application.name}
    export:
      prometheus:
        enabled: true
      jmx:
        enabled: true
  • 配置项 management.endpoints.web.exposure.include = *,设置 Actuator 暴露所有端点。这样,prometheus端点也能被暴露出来。
  • 配置项management.metrics.tags,设置 Metrics 通用标签。这里,我们配置了一个通过用标签键为application,值${spring.application.name}。我们来试着想下,应用 A 和应用 B 都有相同的 Metrics 名,那么如果我们需要去区分它们,则需要通过给 Metrics 打上不同的标签来区分,而一般情况下,我们会选择application作为标签。如果胖友有使用过 Prometheus + Grafana 来做监控报表,会发现也是推荐这么实践的。
1.3 配置校验
在完成 上述两个小节的配置以后,接下里可以启动SpringBoot 应用验证一下配置是否完成。
应用启动完成以后,在浏览器中输入:http://${ip}:${port}/actuator/prometheus  ,效果如下图。

在这里插入图片描述

  • 每个 Metrics 指标的格式,[指标名][指标标签 JSON 串] [指标值]

由此,应用层面的监控指标已经配置完成。

###二、Prometheus 安装配置
####2.1 镜像下载
选择合适的镜像,docker镜像可以自己制作也可以从 镜像仓库下载 (https://hub.docker.com/ ) ,本文选择从仓库中下载 bitnami/prometheus 镜像。也可以是选择二进制文件安装,但过程相对复杂,本文只介绍docker安装过程。

1、先使用 docker pull bitnami/prometheus:latest 下载镜像
2、制作 docker-compose.yaml 配置文件,如下:

version: "2"
services:
  Prometheus:
    container_name: prometheus-server
    image: bitnami/prometheus:latest
    volumes:
      - ./prometheus.yml:/opt/bitnami/prometheus/conf/prometheus.yml
    ports:
      - "9090:9090"
    restart: always

4、prometheus.yml 配置文件修改

# my global config
global:
  # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  scrape_interval: 15s 
  # Evaluate rules every 15 seconds. The default is every 1 minute.
  evaluation_interval: 15s 
  # 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: "wecom-server"
   metrics_path: '/actuator/prometheus'
    static_configs:
     - targets: ["40.XXXX.XXXX.21:20004"]

targets 为应用服务的 ip跟端口。

5、启动docker,并验证prometheus
在浏览器中输入 http://XXXX.XXXX.XXXX.XXXXX:19090/ ,将出现 点击targets 将会出现 下图

在这里插入图片描述

自此prometheus 配置完成。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Resean0223

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值