使用docker-compose快速部署Prometheus+grafana环境

初始化 Prometheus+grafana

创建相关目录并给予权限,持久化目录需要给777权限,否则容器启动失败

cd ~ && mkdir prometheus && chmod 777 prometheus
cd prometheus && mkdir grafana_data prometheus_data && chmod 777 grafana_data prometheus_data
chmod 777 grafana_data/ prometheus_data/ #个人根据配置文件中具体的挂在目录进行权限修改
vim docker-compose.yml
version: "3"
services:
  node-exporter:
    image: prom/node-exporter:v1.8.2
    container_name: "node-exporter0"
    ports:
      - "9100:9100"
    restart: always
  prometheus:
    image: prom/prometheus:v2.53.2
    container_name: "prometheus0"
    restart: always
    ports:
      - "9090:9090"
    volumes:
      - "./prometheus.yml:/etc/prometheus/prometheus.yml"
      - "./prometheus_data:/prometheus"
  grafana:
    image: grafana/grafana:11.1.3
    container_name: "grafana0"
    ports:
      - "3000:3000"
    restart: always
    volumes:
      - "./grafana_data:/var/lib/grafana"

注:prometheus主机需要部署以上容器,其他被监控主机只需要部署node-exporter
prometheus配置文件(根据自己的服务器ip进行修改targets内容)

vim prometheus.yml
global:
  scrape_interval:     15s # 默认抓取周期
  external_labels:
    monitor: 'codelab-monitor'
scrape_configs:
  - job_name: 'node-exporter' #服务的名称
    scrape_interval: 5s
    metrics_path: /metrics  #获取指标的url
    static_configs:
      - targets: ['xxx.xx.xx.xxx:9100'] # 这个为监听指定服务服务的ip和port,需要修改为自己的ip,貌似云服务必须用公网ip 

开放端口

9100 :node-exporter
9090 :prometheus
3000 :grafana

启动
docker-compose up -d         # 挂载目录给权限,不然会启动失败
访问

访问主机的9090端口可以查到Prometheus监控到的数据,访问3000端口是grafana的界面,账密admin/admin

node 模板号 9276,点击load 或者 8919

其他服务器安装node-exporter,这里不推荐docker
cd /usr/local/ && mkdir node_exporter
cd node_exporter
#通过wget下载二进制包    
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar -zxvf node_exporter-1.8.2.linux-amd64.tar.gz 
cd node_exporter-1.8.2.linux-amd64
nohup ./node_exporter &

配置

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
输入模板号

输入模板号 9276,点击load 或者 8919

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Springboot集成Prometheus

  1. 添加依赖如下:
	 <!-- SpringBoot Actuator -->
	 <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
	  <!-- Micrometer Prometheus Registry -->
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-prometheus</artifactId>
        <version>1.9.14</version>
    </dependency>
  1. 在 application.yml 中配置如下:
spring:
  application:
    name: PrometheusApp

#Prometheus springboot监控配置
management:
  endpoints:
    web:
      exposure:
        include: '*'
  metrics:
    export:
      prometheus:
        enabled: true
    tags:
      application: ${spring.application.name} # 暴露的数据中添加application label

上面的配置中, include=* 配置为开启 Actuator 服务,Spring Boot Actuator 自带了一个/actuator/Prometheus 的监控端点供给Prometheus 抓取数据。不过默认该服务是关闭的,所以,使用该配置将打开所有的 Actuator 服务。

最后,启动服务,然后在浏览器访问 http://10.2.1.159:8080/actuator/prometheus ,就可以看到服务的一系列不同类型 metrics 信息,例如 http_server_requests_seconds summary、jvm_memory_used_bytes gauge、jvm_gc_memory_promoted_bytes_total counter 等等。

  1. 将应用添加到Prometheus.
    修改 Prometheus 的配置文件 prometheus.yml ,添加上边启动的服务地址来执行监控。
	global:
	  scrape_interval:     15s # 默认抓取周期
	  external_labels:
	    monitor: 'codelab-monitor'
	scrape_configs:
	  - job_name: '数据库服务' #服务的名称
	    scrape_interval: 5s
	    metrics_path: /metrics  #获取指标的url
	    static_configs:
	      - targets: ['x.x.x.x:9100'] # 这个为监听指定服务服务的ip和port,需要修改为自己的ip,貌似云服务必须用公网
	  - job_name: 'system服务' 
	    scrape_interval: 5s
	    metrics_path: /mrms-api/system/actuator/prometheus
	    static_configs:
	      - targets: ['x.x.x.x:8089'] 	

上面的prometheusapp 就是前面创建的Spring Boot 应用程序,也就是 Prometheus 需要监控的服务地址。

  1. 然后,重启 Prometheus 服务,查看 Prometheus UI 界面确认 Target 是否添加成功。
    在这里插入图片描述
  2. Grafana导入jvm模版

    4701 或者 21319
    在这里插入图片描述
    在这里插入图片描述
    如上图所示,上面我们新增加的panel中成功显示了我们自定义的监控数据。继续请求之前的应用接口,数据会正常刷新。说明Grafana上的指标数据展示配置成功。

以上,我们就把如何自定义监控指标并在Grafana 的图形界面展示介绍完了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
答:以下是一个示例的docker-compose.yml文件,用于启动PrometheusGrafana来监控一个或多个应用程序: ``` version: '3' services: prometheus: image: prom/prometheus container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml command: - '--config.file=/etc/prometheus/prometheus.yml' restart: always grafana: image: grafana/grafana container_name: grafana depends_on: - prometheus ports: - "3000:3000" environment: GF_SERVER_ROOT_URL: http://localhost:3000 GF_SECURITY_ADMIN_USER: admin GF_SECURITY_ADMIN_PASSWORD: admin volumes: - ./grafana-data:/var/lib/grafana restart: always ``` 在该docker-compose.yml文件中,我们创建了两个服务:prometheusgrafanaPrometheus服务使用Prometheus Docker映像,并将端口映射到9090。它还将/prometheus.yml文件作为挂载卷传递给容器。在启动容器时,我们使用命令行参数来指定/config.file=/etc/prometheus/prometheus.yml。 Grafana服务程序使用Grafana Docker映像,并依赖于prometheus服务。Grafana服务映射端口3000,并将以下环境变量传递给容器:GF_SERVER_ROOT_URL:使用localhost:3000 (在该容器中内部)作为grafana的根URL,GF_SECURITY_ADMIN_USER和GF_SECURITY_ADMIN_PASSWORD管理Grafana管理员的凭据。此服务还挂载了grafana-data目录,以便可以在重启容器时保留所有Grafana的设置。 最后,我们定义了restart: always参数以确保容器在退出时自动重新启动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值