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

Docker 环境下多节点服务器监控实战:从 Prometheus 到 Grafana 的完整部署指南

Docker 环境下多节点服务器监控实战:从 Prometheus 到 Grafana 的完整部署指南

文章目录

    • Docker 环境下多节点服务器监控实战:从 Prometheus 到 Grafana 的完整部署指南
      • 一 多节点部署
        • 1 节点一
        • 2 节点二
        • 3 节点三
      • 二 监控节点部署
      • 三 配置 prometheus.yml
      • 四 测试监控系统

本文介绍了如何通过 Docker 快速部署 Prometheus 和 Grafana,实现对多个服务器节点的监控。在实战过程中,分别在三个节点上部署 node-exporter,并在第三个节点上集成 Prometheus 和 Grafana,完成对服务器性能的实时监控。文章提供了详细的 Docker Compose 配置文件,并对 Prometheus 进行优化配置,确保节点数据的精准采集与展示。最后,用户可以通过访问 Grafana 来实现可视化的监控体验。这篇指南适合有一定基础的开发者快速掌握多节点监控系统的搭建。

预备课

Docker 安装与配置:从入门到部署

Docker 部署 Prometheus+Grafana 监控系统快速指南

一 多节点部署

部署多个 node-exporter 节点监控,例如:节点有三个。

IP描述
192.168.0.1节点一
192.168.0.2节点二
192.168.0.3节点三
Grafana 和 Prometheus 都部署在这个节点上
1 节点一

docker-compose.node01.yml

version: '3'
services:node-exporter:image: prom/node-exporter:v1.6.1container_name: node-exporterhostname: node_exporter_01restart: alwaysnetworks:- monitornetports:- "9100:9100"networks:monitornet:external: true
2 节点二

docker-compose.node02.yml

version: '3'
services:node-exporter:image: prom/node-exporter:v1.6.1container_name: node-exporterhostname: node_exporter_02restart: alwaysnetworks:- monitornetports:- "9100:9100"networks:monitornet:external: true
3 节点三

docker-compose.node03.yml

version: '3'
services:node-exporter:image: prom/node-exporter:v1.6.1container_name: node-exporterhostname: node_exporter_03restart: alwaysnetworks:- monitornetports:- "9100:9100"networks:monitornet:external: true

二 监控节点部署

监控节点也部署在 节点三192.168.0.3)上 。

docker-compose.monitor.yml

version: '3'
services:prometheus:image: prom/prometheus:v2.47.2container_name: "prometheus0"restart: alwaysnetworks:- monitornetports:- "9090:9090"volumes:- "./prometheus.yml:/etc/prometheus/prometheus.yml"- "./prometheus_data:/prometheus"grafana:image: grafana/grafana:10.1.5container_name: "grafana0"restart: alwaysnetworks:- monitornetports:- "3000:3000"volumes:- "./grafana_data:/var/lib/grafana"networks:monitornet:external: true

三 配置 prometheus.yml

prometheus.yml 的配置

global:scrape_interval:     15s # 全局默认抓取间隔时间external_labels:monitor: single-monitor # 外部标签,用于标识监控源
scrape_configs:- job_name: node-exporter # 采集节点监控数据的任务名称scrape_interval: 5s # 当前任务的抓取间隔时间metrics_path: /metrics  # 指标数据的抓取路径static_configs:# 监听目标服务的 IP 和端口,需根据实际情况修改。如果是云服务,可能需要使用公网 IP。# 如果有多个 targets,不要设置 labels,否则可能导致数据混乱- targets: ['192.168.0.3:9100', '192.168.0.2:9100', '192.168.0.1:9100']
#        labels:
#          instance: CentOS # 如果监控多个节点,注释掉 labels 避免数据冲突- job_name: prometheus # 监控 Prometheus 自身的任务static_configs:- targets: [ 'prometheus:9090' ] # Prometheus 服务的抓取目标labels:instance: prometheus # 为 Prometheus 服务添加标签

四 测试监控系统

# node-exporter 部署成功
http://192.168.0.3:9100/metrics
# prometheus 部署成功
http://192.168.0.3:9090/targets
# grafana 地址 初始密码 admin/admin
http://192.168.0.3:3000 

Grafana 默认访问地址为 http://your-grafana:3000,初始登录的用户名和密码均为 admin。登录后,修改密码以确保安全。

http://www.lryc.cn/news/459796.html

相关文章:

  • 【动手学深度学习】6.3 填充与步幅(个人向笔记)
  • 【宝可梦】游戏
  • docker启动的rabbitmq如何启动其SSL功能
  • 易基因: cfMeDIP-seq揭示cfDNA甲基化高效区分原发性和转移性前列腺|Nat Commun
  • CMake 教程跟做与翻译 4
  • MySQL面试题分享
  • vue路由缓存问题
  • RabbitMQ中如何解决消息堆积问题,如何保证消息有序性
  • python爬虫案例——selenium爬取淘宝商品信息,实现翻页抓取(14)
  • 在VSCode中使用Excalidraw
  • 25中国投资中投笔试测评秋招校招SHL笔试题型分享
  • 【LeetCode热题100】分治-快排
  • Docker 教程四 (Docker 镜像加速)
  • 各类排序详解
  • 【c语言——指针详解(4)】
  • C# (.net6)实现Redis发布和订阅简单案例
  • 【golang】gorm 使用map实现in 条件查询用法
  • 理论篇| 移动端爬虫
  • systemd实现seatunnel自动化启停
  • MySQL-08.DDL-表结构操作-创建-案例
  • 完成Sentinel-Dashboard控制台数据的持久化-同步到Nacos
  • RocketMq详解:三、RocketMq通用生产和消费方法改造
  • 基于SpringBoot+Vue+Uniapp的仓库点单小程序的详细设计和实现
  • R语言从多波段tif数据中逐个提取单波段数据
  • 华为海思:大小海思的双轮驱动战略分析
  • LeetCode | 704.二分查找
  • TCP三握四挥
  • java项目之大型商场应急预案管理系统(源码+文档)
  • 【C++】--内存管理
  • 【设计模式系列】模板方法模式