首页/新闻资讯/正文详情

使用Docker Compose部署Prometheus与Grafana监控系统

发布时间:2026/11/3 20:00:36 来源:云帆数科 栏目:资讯中心
使用Docker Compose部署Prometheus与Grafana监控系统
1. 项目概述监控系统是现代IT基础设施中不可或缺的一部分而Prometheus和Grafana的组合已经成为监控领域的黄金标准。这套方案不仅适用于大型分布式系统也能完美服务于中小型应用。我曾在多个生产环境中部署过这套监控栈它的灵活性和强大功能总能给我带来惊喜。Prometheus作为时序数据库和告警引擎负责数据的采集和存储Grafana则提供可视化仪表板让枯燥的监控数据变得直观易懂。两者配合使用可以构建从基础设施到应用层的全方位监控体系。特别是在容器化环境中这套方案的优势更加明显。2. 环境准备2.1 系统要求推荐使用Linux系统进行部署Ubuntu 20.04 LTS或CentOS 7/8都是不错的选择。硬件配置方面至少2核CPU4GB内存生产环境建议8GB以上50GB存储空间根据监控指标数量调整注意Prometheus对磁盘I/O要求较高建议使用SSD存储。如果监控目标超过100个应考虑单独部署Prometheus服务器。2.2 依赖安装首先确保系统已安装最新版的Docker和Docker Compose# Ubuntu/Debian sudo apt-get update sudo apt-get install -y docker.io docker-compose # CentOS/RHEL sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose验证安装是否成功docker --version docker-compose --version3. Docker Compose部署3.1 编写docker-compose.yml创建一个项目目录然后编写docker-compose.yml文件version: 3 services: prometheus: image: prom/prometheus:latest container_name: prometheus restart: unless-stopped volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - prometheus_data:/prometheus ports: - 9090:9090 command: - --config.file/etc/prometheus/prometheus.yml - --storage.tsdb.path/prometheus - --web.console.templates/etc/prometheus/consoles - --web.console.libraries/etc/prometheus/console_libraries - --storage.tsdb.retention.time30d networks: - monitor-net grafana: image: grafana/grafana:latest container_name: grafana restart: unless-stopped volumes: - grafana_data:/var/lib/grafana ports: - 3000:3000 networks: - monitor-net volumes: prometheus_data: grafana_data: networks: monitor-net: driver: bridge3.2 配置Prometheus创建prometheus.yml配置文件global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: prometheus static_configs: - targets: [localhost:9090] - job_name: node_exporter static_configs: - targets: [node_exporter:9100]3.3 启动服务在项目目录下执行docker-compose up -d等待约1分钟后可以通过以下URL访问Prometheus: http://服务器IP:9090Grafana: http://服务器IP:30004. 基础配置与使用4.1 Prometheus初始配置访问Prometheus Web界面后可以在Status Targets查看监控目标状态在Graph页面输入PromQL查询表达式在Alerts页面配置告警规则建议先添加node_exporter监控主机基础指标docker run -d --name node_exporter --net host \ -v /proc:/host/proc:ro \ -v /sys:/host/sys:ro \ -v /:/rootfs:ro \ prom/node-exporter:latest \ --path.procfs/host/proc \ --path.sysfs/host/sys \ --collector.filesystem.ignored-mount-points^/(sys|proc|dev|host|etc)($|/)然后在prometheus.yml中添加这个target。4.2 Grafana初始配置首次访问Grafana时默认用户名密码是admin/admin。登录后需要添加数据源Configuration Data Sources Add data source选择Prometheus类型URL填写http://prometheus:9090因为使用Docker网络点击Save Test验证连接导入官方仪表板点击 Import输入仪表板ID 1860Node Exporter Full选择Prometheus数据源点击Import5. 高级配置与优化5.1 Prometheus存储优化对于生产环境建议调整以下参数--storage.tsdb.retention.time: 数据保留时间默认15天--storage.tsdb.retention.size: 数据保留大小--storage.tsdb.wal-compression: 启用WAL压缩示例docker-compose.yml修改command: - --config.file/etc/prometheus/prometheus.yml - --storage.tsdb.path/prometheus - --storage.tsdb.retention.time90d - --storage.tsdb.retention.size100GB - --storage.tsdb.wal-compression5.2 Grafana插件安装Grafana支持丰富的插件生态系统。以安装Pie Chart插件为例docker exec -it grafana grafana-cli plugins install grafana-piechart-panel docker-compose restart grafana对于离线环境可以下载插件包后挂载到容器中volumes: - ./plugins:/var/lib/grafana/plugins5.3 告警配置Prometheus支持Alertmanager实现告警通知。添加Alertmanager服务alertmanager: image: prom/alertmanager:latest container_name: alertmanager restart: unless-stopped volumes: - ./alertmanager.yml:/etc/alertmanager/alertmanager.yml ports: - 9093:9093 networks: - monitor-net然后在prometheus.yml中添加配置alerting: alertmanagers: - static_configs: - targets: [alertmanager:9093]6. 常见问题排查6.1 Prometheus无法采集数据检查步骤确认target状态是否为UP检查网络连通性docker exec -it prometheus curl target:port查看Prometheus日志docker logs prometheus验证scrape配置是否正确6.2 Grafana无法连接Prometheus排查方法在Grafana容器内测试连接docker exec -it grafana curl http://prometheus:9090检查数据源配置中的URL确认网络配置确保在同一个Docker网络6.3 性能问题优化如果出现性能瓶颈增加Prometheus资源限制deploy: resources: limits: cpus: 2 memory: 4G优化scrape间隔非关键指标可以设置为30s或60s使用recording rules预计算常用查询7. 生产环境建议经过多个项目的实践我总结出以下经验对于大规模部署考虑使用Prometheus联邦或Thanos架构重要监控指标应设置适当的告警阈值定期备份Grafana仪表板配置导出JSON使用Grafana的Provisioning功能自动化配置为不同团队创建单独的Grafana组织和文件夹监控系统的维护同样重要定期检查存储空间使用情况监控Prometheus自身指标scrape失败率、内存使用等更新到稳定版本避免使用过旧的镜像这套监控方案我已经在多个生产环境中稳定运行超过两年从未让我失望。特别是在容器化环境中它的自动服务发现功能大大简化了配置工作。根据我的经验合理配置的PrometheusGrafana可以满足90%以上的监控需求。

相关推荐

ASP检测手机客户端并跳转:User-Agent移动端分流实践
ASP检测手机客户端并跳转:User-Agent移动端分流实践

接手一个跑了快十年的 ASP 老站,最怕的不是代码有多老,而是需求方一句轻描淡写的话:手机打开要自动进手机版。听起来就是几行 if 的事,真做起来,iPad 到底算不算手机、微信里点开算不算、搜索引擎的爬虫抓到的是哪个版… · 2026/11/3 20:00:36

开发者健康监测系统:用代码数据守护程序员健康
开发者健康监测系统:用代码数据守护程序员健康

1. 项目背景:当代码与健康相遇 凌晨三点的办公室,显示器蓝光映照着程序员疲惫的面容,咖啡杯早已见底,键盘敲击声在寂静的办公室里格外清晰。这样的场景在IT行业太常见了——根据2022年开发者生态调查报告,超过67%的程序… · 2026/11/3 20:00:36

智算中心网络架构演进与Border Leaf设计解析
智算中心网络架构演进与Border Leaf设计解析

1. 智算中心网络架构的演进挑战智算中心作为新一代算力基础设施,其网络架构设计正面临前所未有的流量模型变革。传统数据中心以"南北向"流量为主(客户端到服务器),而智算中心中服务器间"东西向"流量占比已超过… · 2026/11/3 19:59:36

回形针的一百年:材料、结构设计与办公场景下的工程智慧
回形针的一百年:材料、结构设计与办公场景下的工程智慧

说起 paperclip,也就是回形针,我大概有三四年没正眼看过它了。上周末收拾书桌抽屉,被一盒边缘生锈的回形针划了一下手指,才突然想认真聊聊这个一百多年来几乎没怎么变过样子的办公小物件。一支回形针能做什么?固定几张… · 2026/11/3 20:40:03

高效技术博文拆解:完整项目信息的四要素
高效技术博文拆解:完整项目信息的四要素

理解。在生成博文之前,我需要你提供完整的项目信息。请严格按以下格式填写,尤其不要省略“项目正文”和“关键词”这两项,它们决定了博文拆解的深度和方向。项目标题: [标题] 项目正文: [通常比较零散、不完整的原始描述,可是任意… · 2026/11/3 20:40:03

浪潮AS Manager带外管理实战:兼容老旧RAID与多品牌混管
浪潮AS Manager带外管理实战:兼容老旧RAID与多品牌混管

简介:本资源是浪潮存储系统AS Manager的官方图形化管理软件配套手册,面向企业IT运维人员、存储系统管理员及数据中心技术工程师,解决存储设备集中监控、权限管控与日常配置等核心管理问题。手册内容覆盖AS Manager的安装部署(需JR… · 2026/11/3 20:40:03

React Native Android渲染链路深度解析:从JS指令到GPU像素
React Native Android渲染链路深度解析:从JS指令到GPU像素

1. 这不是“React Native怎么写页面”的入门课&#xff0c;而是带你钻进Android虚拟机里看UI怎么一帧一帧被画出来的如果你已经能用<View>和<Text>搭出一个登录页&#xff0c;甚至封装过几个自定义组件&#xff0c;但某天发现&#xff1a;明明JS层setState很快&… · 2026/11/3 20:40:03

集线器与交换机核心区别及交换机技术解析
集线器与交换机核心区别及交换机技术解析

1. 集线器与交换机的本质区别在早期的局域网建设中&#xff0c;集线器&#xff08;Hub&#xff09;曾经是最基础的网络连接设备。我第一次接触网络设备时&#xff0c;也曾困惑为什么价格更高的交换机&#xff08;Switch&#xff09;会逐渐取代集线器。经过多年实际网络部署和维… · 2026/11/3 20:40:03

C语言中goto模拟if-else的原理与实践
C语言中goto模拟if-else的原理与实践

1. 为什么用goto模拟if-else&#xff1f;在C语言教学现场&#xff0c;有个学生突然举手问&#xff1a;"老师&#xff0c;既然goto是‘万恶之源’&#xff0c;那为什么教材里还保留这个语法&#xff1f;"这个问题让我想起2012年维护过的某个遗留系统——满屏的goto像蜘… · 2026/11/3 20:39:02

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码