ubuntu服务器部署prometheus监控
概述
文章介绍了在 ubuntu 服务器上使用 docker 部署服务监控软件普罗米修斯(prometheus),并将其他 linux 主机添加到监控。
认识prometheus
普罗米修斯(Prometheus)是云原生计算基金会的一个项目,是一个系统和服务监控系统。它会定期从配置的目标中收集指标,评估规则表达式,显示结果,并且在观察到指定条件时可以触发警报。
环境说明
| 操作系统 | 架构 | CPU | 内存 | docker版本 | IP | 部署服务 |
|---|---|---|---|---|---|---|
| Ubuntu 24.04 LTS | x86_64 | 4 | 8G | 28.4.0 | 192.168.2.201 | prometheus server&node exporter |
| Ubuntu 24.04 LTS | x86_64 | 4 | 8G | 28.4.0 | 192.168.2.202 | node exporter |
| Ubuntu 24.04 LTS | x86_64 | 4 | 8G | 28.4.0 | 192.168.2.203 | node exporter |
| Ubuntu 24.04 LTS | x86_64 | 2 | 4G | 28.4.0 | 192.168.2.204 | node exporter |
| Armbian | armv7l | 4 | 1G | 28.3.1 | 192.168.2.243 | node exporter |
安装prometheus
使用 docker 容器化安装 prometheus。
准备prometheus镜像
首先需要准备镜像,本次从docker官网下载 v3.9.1 版本镜像,打开 github 中克隆的 DockerTarBuilder 项目,执行 x86-64 Pull and Save Docker Image 的Action,参数填写 prom/prometheus:v3.9.1 ,运行完成后下载镜像文件。
将镜像文件解压出来,使用 MobaXterm 连接到服务器,将 prometheus 镜像文件 prom_prometheus_v3.9.1-amd64.tar.gz 上传到服务器上。
执行如下命令加载镜像:
1 | sudo docker load -i prom_prometheus_v3.9.1-amd64.tar.gz |
创建配置文件和挂载目录
我的服务器中 docker 相关的数据存放目录是 /home/wqf31415/docker/data/,在这个目录中创建目录存放 prometheus 相关数据和配置文件:
1 | cd /home/wqf31415/docker/data/ |
创建配置文件:
1 | vim prometheus/prometheus.yml |
prometheus.yml 内容如下,在初始的配置文件中增加了对 prometheus 自身的监控:
1 | global: |
准备docker-compose配置文件
创建 docker-compose-prometheus.yml 文件,填写内容如下:
1 | services: |
查看容器运行状态,状态为 Up 说明启动正常:
1 | sudo docker ps |
如果容器运行异常,使用 sudo docker logs prometheus 查看日志,分析错误原因。
容器运行正常,可以用浏览器访问服务器的 9090 端口,我的访问地址是 http://192.168.2.201:9090,查看 prometheus 页面,在页面的 Status -> Target Health 页面中能看到监控的 prometheus 自身服务,State 为 UP 说明监控正常。

安装node-exporter
二进制安装
访问官方 github 的发布地址:https://github.com/prometheus/node_exporter/releases ,根据操作系统和CPU架构选择合适的版本,我这里根据章节 环境说明 中信息选择了 node_exporter-1.10.2.linux-amd64.tar.gz 和 node_exporter-1.10.2.linux-armv7.tar.gz,可以直接下载后导入到服务器,或者复制文件连接,在服务器上使用 wget 下载,我这里复制文件链接,在服务器上下载:
1 | sudo wget https://github.com/prometheus/node_exporter/releases/download/v1.10.2/node_exporter-1.10.2.linux-amd64.tar.gz |
解压文件:
1 | tar -zxvf node_exporter-1.10.2.linux-amd64.tar.gz |
创建独立用户,拷贝可执行程序到 /usr/local/bin 目录,修改
1 | # 创建专用用户(提升安全性) |
配置 Systemd 服务:
1 | sudo tee /etc/systemd/system/node_exporter.service <<EOF |
启动 node-exporter:
1 | sudo systemctl daemon-reload |
docker安装
参考章节 准备prometheus镜像 从 docker 官方仓库下载镜像 prom/node-exporter:v1.10.2 ,将镜像导入到需要部署的服务器上。
准备 docker-compose 配置文件 docker-compose-node-exporter.yml ,内容如下:
1 | services: |
创建并启动容器:
1 | sudo docker compose -f docker-compose-node-exporter.yml up -d |
查看容器启动情况,状态为 Up 说明启动正常:
1 | sudo docker ps |
验证 node_exporter 功能:
1 | curl http://localhost:9100/metrics |
修改prometheus服务配置
修改 prometheus 服务配置文件 sudo vim /home/wqf31415/docker/data/prometheus/prometheus.yml,在 scrape_configs 中新增任务配置,内容如下:
1 | global: |
修改配置文件后,重启 prometheus 容器:
1 | sudo docker restart prometheus |
浏览器访问 prometheus 页面的 Status -> Target Health,查看已添加的监控节点状态,State 为 UP 说明节点监控正常。
安装Grafana可视化监控
创建目录和配置文件
创建容器挂载目录和数据源配置文件:
1 | cd /home/wqf31415/docker/data # 进入docker数据目录 |
在 provisioning/datasources 目录中创建 prometheus 数据源配置文件 prometheus.yaml 内容如下:
1 | apiVersion: 1 |
准备grafana镜像
参考章节 准备prometheus镜像 从 docker 官方仓库下载镜像 grafana/grafana:main ,将镜像导入到需要部署的服务器上。
准备 docker-compose 配置文件 docker-compose-grafana.yml ,内容如下:
1 | services: |
注:
上述 docker-compose 配置文件中环境变量中添加的GF_SERVER_HTTP_PORT=9091是将 web 访问端口修改成9091,是因为 grafana 默认端口3000和已有的其他程序冲突了,如果端口不冲突可以删除这个配置。
启动grafana
运行命令创建并启动 grafana 容器:
1 | sudo docker compose -f docker-compose-grafana.yml up -d |
浏览器访问 grafana 页面,我这里修改过访问端口,所以访问地址为 http://192.168.2.201:9091/ ,用户名为 admin,密码是配置的 123456。
由于在创建容器时添加了 prometheus 的数据源,所以在 grafana 页面的 Connections -> Data sources 页面可以看到名为 Prometheus 的数据源。
注:如果没有添加数据源配置文件,可以在 Data sources 页面手动添加。
创建可视化监控面板
Grafana 官网提供了很多看板模板,可以复制模板的 ID 或 json 描述数据,导入到本地使用,地址:https://grafana.com/grafana/dashboards
进入 grafana 页面的 Dashboards 页面,点击 New -> Import ,模板ID 填写 1860,点击 Load 加载模板,加载完成后选择已添加的 prometheus 数据源,保存后就可以在 Dashboards 页面查看监控面板。
