当前位置: 首页 > ds >正文

docker compose安装Prometheus、Grafana

1、创建目录结构

mkdir -p /opt/monitoring/{prometheus,grafana}
mkdir -p /opt/monitoring/prometheus/{config,data}
chmod -R 777 /opt/monitoring  # 确保容器有写入权限

2、准备 Prometheus 配置文件

vi /opt/monitoring/prometheus/config/prometheus.yml
global:scrape_interval: 15sscrape_configs:- job_name: 'prometheus'static_configs:- targets: ['localhost:9090']- job_name: 'node'static_configs:- targets: ['node-exporter:9100']

配置解释

全局配置 (global)

global:scrape_interval: 15s          # 默认抓取间隔(每15秒)evaluation_interval: 15s      # 规则评估间隔(每15秒)scrape_timeout: 10s           # 每次抓取超时时间external_labels:              # 外部系统标识此Prometheus的标签monitor: 'prod-cluster'region: 'us-east'
  • scrape_interval:15s 默认抓取间隔(每15秒)
  • evaluation_interval: 15s      # 规则评估间隔(每15秒)
  • scrape_timeout: 10s           # 每次抓取超时时间

抓取配置

这是最核心的配置部分,定义监控目标

scrape_configs:# 可随意指定- job_name: 'spring'# 多久采集一次数据scrape_interval: 15s# 采集时的超时时间scrape_timeout: 10s# 采集的路径metrics_path: '/actuator/prometheus'# 采集服务的地址,设置成Springboot应用所在服务器的具体地址static_configs:- targets: ['${host1}','${host2}']  
  • job_name: 'prometheus'    # 任务名称
  • static_configs:           # 静态目标配置

保留天数

        Prometheus 的默认数据保留时间是 15天。在 Prometheus 的配置文件 prometheus.yml 中,可以添加以下配置来设置数据保留时间

storage:tsdb:retention.time: 30d
  • 数据保留时间的单位可以是 s(秒)、m(分钟)、h(小时)、d(天)、w(周)、y(年)。

  • 如果需要根据存储大小限制数据保留时间,可以使用 --storage.tsdb.retention.size 参数

3、创建 docker-compose.yml 

version: '3'services:prometheus:image: prom/prometheuscontainer_name: prometheusrestart: alwaysports:- "9090:9090"volumes:- /opt/monitoring/prometheus/config:/etc/prometheus- /opt/monitoring/prometheus/data:/prometheuscommand:- '--config.file=/etc/prometheus/prometheus.yml'- '--storage.tsdb.path=/prometheus'networks:- monitoringnode-exporter:image: prom/node-exportercontainer_name: node-exporterrestart: alwaysports:- "9100:9100"volumes:- /proc:/host/proc:ro- /sys:/host/sys:ro- /:/rootfs:rocommand:- '--path.procfs=/host/proc'- '--path.sysfs=/host/sys'- '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc)($$|/)'networks:- monitoringgrafana:image: grafana/grafanacontainer_name: grafanarestart: alwaysports:- "3000:3000"volumes:- /opt/monitoring/grafana:/var/lib/grafanaenvironment:- GF_SECURITY_ADMIN_PASSWORD=admin123  # 设置admin密码networks:- monitoringnetworks:monitoring:driver: bridge
  • 数据持久化:
    • /opt/monitoring/prometheus/data - Prometheus 时序数据库

    • /opt/monitoring/grafana - Grafana 配置和仪表板

4、启动服务

在docker-compose.yml 同级目录下执行

docker-compose up -d

其他命令

# 查看服务状态
docker-compose ps# 查看日志
docker-compose logs -f# 停止服务
docker-compose down# 重启服务
docker-compose restart

更新prometheus配置

修改配置文件后,重启服务

docker-compose restart prometheus

5、验证安装

  1. Prometheus: 访问 http://<宿主机IP>:9090

  2. Grafana: 访问 http://<宿主机IP>:3000 (初始用户名/密码: admin/admin123)

  3. Node Exporter: 访问 http://<宿主机IP>:9100/metrics

    1. Node Exporter 是 Prometheus 生态系统中的一个关键组件,专门用于收集主机系统(通常是 Linux/Unix 服务器)的硬件和操作系统指标。

Grafana设置中文

6、Grafana配置Prometheus数据源 

添加数据源

配置

  • URL: http://prometheus:9090

  • 其他保持默认

点击 "Save & Test"

7、导入 Grafana 仪表板

模版地址

Grafana提供了许多优秀的模板,可以网页https://grafana.com/grafana/dashboards 查找。

导入模版

加载模版

选择 Prometheus 数据源

 点击 "Import"

监控信息

8、实例

spring项目 

添加依赖

<!-- Actuator 提供监控端点 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency><!-- Micrometer Prometheus 适配器 -->
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

在 application.yml配置

# 监控
management:endpoints:web:exposure:include: '*' #  暴露所有端点metrics:tags:application: ${spring.application.name} # 监控指标prometheus:metrics:export:enabled: true # 暴露监控指标step: 30s # 监控指标步长

鉴权-放行

如果有鉴权,需要放行下面的接口

"/actuator/**"

验证

http://localhost:8080/actuator/prometheus

Prometheus 侧配置

基本抓取配置

scrape_configs:- job_name: 'spring-apps'metrics_path: '/actuator/prometheus'  # Spring Boot 暴露的端点scrape_interval: 15sstatic_configs:- targets: ['spring-app-host:8080']  # 应用地址labels:env: 'production'service_group: 'order-service'

Grafana 配置

监控

  • 19004(Spring Boot 3.x Statistics):适用于Micrometer Prometheus指标的全方位Spring Boot 3.x Grafana仪表盘。

  • 21308(Spring Boot Http (3.x):此仪表盘旨在监控Spring Boot应用程序中HTTP请求的状态和性能。它使用Spring Boot Actuator来公开指标,并使用Prometheus来收集和存储这些指标。然后,使用Grafana来可视化收集到的数据,从而深入了解HTTP请求行为。

监控信息

Spring Boot 3.x Statistics

Spring Boot Http (3.x)

 

http://www.xdnf.cn/news/13832.html

相关文章:

  • ubuntu网络连接失败 + mobaxterm拖拽文件出错等问题解决方法
  • CQL3D编译指南
  • PPIO 上线 Qwen3-Embedding 系列模型
  • C++学习-入门到精通【19】杂项汇总
  • 企业级人员评价系统Web端重构实战:前端架构效能升级
  • 【11408学习记录】考研数学核心突破:矩阵本质、系统信息与向量空间基
  • Linux系统lvm操作演示
  • 傲火集团传媒基地武汉启幕 构建数字娱乐产业生态闭环
  • 图像处理 | 基于matlab的多尺度Retinex(MSR)和自适应直方图均衡化(CLAHE)算法联合的低照度图像增强(附代码)
  • linux安装Redis6.0.8
  • 华为云物联网系统开发(纯云端)外包方案及项目需求说明书
  • PEP 8: E302 expected 2 blank lines, found 0
  • 在服务器上使用 Docker 部署 Node.js 后端服务和前端项目
  • 手写Antd的form组件源码
  • WPF调用Python心率监测脚本解决方案
  • 【iSAQB软件架构】以架构为中心的开发方法
  • 53. 最大的子数组和
  • iteration和每一轮,训练周期,迭代计数器 这些名词是什么关系?
  • 2025年中国人工智能发展研究报告:技术突破、行业变革与全球竞争新格局
  • ‘Target closed‘ error in Puppeteer解决
  • python打卡day52
  • 【GitOps】Kubernetes安装ArgoCD,使用阿里云MSE云原生网关暴露服务
  • 大数据学习(138)-Hive数据分析3
  • 利用Anything LLM和内网穿透工具在本地搭建可远程访问的AI知识库系统(1)
  • (十二)深度学习计算性能:硬件架构、算法效率与理论极限分析
  • Cursor 编辑器中的 Notepad 功能使用指南
  • sherpa-onnx开源语音处理框架研究报告:从技术解析到应用实践
  • Linux中shell编程的函数递归用法和脚本自动化讲解
  • 什么是JSON ?从核心语法到编辑器
  • 无人机避障——感知篇(在Ubuntu20.04的Orin nx上基于ZED2实现Vins Fusion)