1. 为什么你需要一个自己的监控平台?
如果你管理着几台服务器,或者正在学习容器技术,那你肯定遇到过这样的场景:半夜收到报警说网站打不开了,手忙脚乱地登录服务器,敲一堆命令查内存、查CPU、查网络,折腾半天才发现是某个服务自己崩了。又或者,你总觉得服务器有点“卡”,但说不清到底是哪里出了问题,是内存不够了,还是磁盘IO太高了?这种“两眼一抹黑”的感觉,对于任何一个开发者或者运维来说,都太难受了。
这就是监控平台的价值所在。它就像给你的服务器集群装上了一套“全景仪表盘”和“健康监测仪”。你不再需要手动敲命令,所有关键指标——CPU使用率、内存消耗、磁盘空间、网络流量、服务状态——都会以清晰、直观的图表形式,实时展示在你面前。任何风吹草动,你都能第一时间发现,甚至可以在问题发生前就收到预警。
今天我要跟你分享的,就是用 Docker 来快速搭建一套业界顶流的监控组合:Prometheus + Grafana。我选择Docker的方式,是因为它真的太方便了。想象一下,以前部署这些服务,你得操心操作系统版本、依赖库冲突、配置文件路径等等一堆破事。现在,你只需要几条简单的命令,就能把整个监控系统像搭积木一样跑起来,环境隔离得干干净净,卸载也只是一条命令的事,完全不会污染你的主机环境。这对于新手来说,门槛降低了不止一个档次。
这套组合里,Prometheus 负责“干活”,它是个专门收集和存储时间序列数据的“数据抓取器”和“数据库”。它会定期去你指定的目标(比如你的服务器、你的应用)那里拉取监控数据。而 Grafana 负责“美颜”,它是个强大的数据可视化工具,能把Prometheus里那些冷冰冰的数字,变成五彩斑斓、一目了然的图表和仪表盘。最后,我们还需要一个“小助手”叫 Node_exporter,它安装在被监控的服务器上,专门负责收集那台服务器本身的各项指标(比如CPU、内存),然后暴露给Prometheus来抓取。
接下来,我就带你从零开始,一步步把这块“全景仪表盘”给装起来。整个过程我会尽量讲得细一些,把我自己踩过的坑和总结的技巧都告诉你,保证你跟着做就能成功。
2. 动手之前:理清思路与准备环境
在真正敲命令之前,我们先花几分钟把整个架构和准备工作理清楚,这能帮你避免后面很多混乱。我画个简单的图给你看,你心里就有数了:
你的电脑/浏览器 (访问 Grafana 看图表)
↑
[ 主节点服务器 ]
├── Docker 容器 A: Prometheus (端口 9090) -> 抓取并存储数据
└── Docker 容器 B: Grafana (端口 3000) -> 从 Prometheus 取数据并展示
↑ (Grafana 查询)
↑
[ Prometheus 定期抓取 ]
↑
[ 从节点服务器 (可以有多台) ]
└── Docker 容器 C: Node_exporter (端口 9100) -> 暴露本机指标
核心流程是这样的:
- 我们在主节点一台服务器上,用Docker启动Prometheus和Grafana。
- 在从节点(也就是你想监控的服务器)上,用Docker启动Node_exporter。
- 配置Prometheus,告诉它:“你去某某从节点的9100端口抓数据。”
- 配置Grafana,告诉它:“你去连接主节点上9090端口的Prometheus,把它作为数据源。”
- 最后,在Grafana里选一个好看的仪表盘模板,数据就会自动呈现出来。
环境准备: 你需要至少两台安装了Linux的服务器(虚拟机或云服务器都行)。一台作为主节点(Master),另一台作为从节点(Slave)。如果只有一台机器,也可以把所有服务都装在上面,自己监控自己,用来学习和测试完全没问题。
最关键的一步:安装Docker。这是所有操作的基础。因为我们是“基于Docker”的实战,所以每台服务器上都必须先装好Docker和Docker Compose。这里我给出在CentOS 7/8或Ubuntu 20.04/22.04这类常见系统上的一条龙安装命令,你直接在服务器上执行就行:
# 一键安装Docker的脚本(适用于大多数Linux发行版)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 启动Docker服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 验证安装是否成功,看到版本号就对了
docker --version
# (可选但强烈推荐)安装Docker Compose
# 下载最新版本的Docker Compose,这里以v2.20.0为例,你可以去官网查最新版
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version
安装完成后,建议运行一下 sudo docker run hello-world 这个测试镜像,如果能看到欢迎信息,说明你的Docker环境完全正常。好了,基础打牢了,我们接下来就开始搭建监控系统的核心——主节点。
3. 搭建监控大脑:主节点部署 Prometheus 与 Grafana
现在,我们登录到主节点服务器,开始部署两个核心服务。我会用最直接、最清晰的Docker命令来操作,同时解释每个参数的作用,让你知其然也知其所以然。
3.1 部署 Prometheus:数据的抓取与存储中心
Prometheus 是我们监控系统的“数据仓库”。它主动去拉取(Pull)各个目标的数据,并存储在自己的时序数据库中。
首先,我们把Prometheus的官方镜像拉取到本地。Docker镜像就像是一个打包好的软件安装包,拉取就是从仓库下载这个包。
docker pull prom/prometheus:latest
接下来是运行容器。这条命令看起来有点长,别怕,我们拆开看:


3436

被折叠的 条评论
为什么被折叠?



