Docker
一、认识
基于 Docker
部署 Prometheus
,同时涵盖持久化存储、容器重启、更新、以及销毁之前的存储和配置信息等操作
二、目录结构
首先,创建一个工作目录用于存放 Prometheus
配置文件和持久化存储数据。
prometheus-docker/
│
├── prometheus.yml # Prometheus 配置文件
└── data/ # 持久化存储目录
三、操作
3.1 创建配置
Prometheus
的主要配置文件是 prometheus.yml
,它定义了数据抓取和告警的设置。首先创建一个 prometheus.yml
文件:
global:
scrape_interval: 15s # 设置默认抓取间隔时间
scrape_configs:
- job_name: 'prometheus' # 抓取 Prometheus 自身指标
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter' # 抓取 Node Exporter 指标
static_configs:
- targets: ['node_exporter:9100'] # 替换为实际的 Node Exporter 地址
- job_name: 'custom_service' # 自定义服务
static_configs:
- targets: ['127.0.0.1:4000'] # 替换为实际服务地址
将此文件保存为 prometheus.yml
,并确保它与 Docker
容器路径的映射一致。
3.2 部署服务
通过 Docker
命令启动 Prometheus
容器,同时配置持久化存储和端口映射。
通过 Docker
命令启动 Prometheus
容器,同时配置持久化存储和端口映射。
docker run -d \
--name prometheus \
--restart always \
-p 9090:9090 \
-v ~/prometheus-docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
-v ~/prometheus-docker/data/prometheus:/prometheus \
prom/prometheus
-
-d
: 后台运行容器。 -
--name prometheus
: 给容器指定一个名字prometheus
。 -
-p 9090:9090
: 将宿主机的9090
端口映射到容器的9090
端口,用于访问Prometheus Web UI
。 -
-v ~/prometheus-docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
:将宿主机上的配置文件prometheus.yml
映射到容器内/etc/prometheus/prometheus.yml
路径。 -
-v ~/prometheus-docker/data/prometheus:/prometheus
:将宿主机上的data
目录映射到容器内/prometheus
目录,这样Prometheus
数据将存储在宿主机的data
目录中,实现持久化。 -
prom/prometheus:latest
: 使用Prometheus
官方最新版本的Docker
镜像。 -
--restart always
:配置容器在Docker
重启后自动重启。
3.3 验证服务
1. 确保 Prometheus
容器正在运行:
docker ps -a
3.3 停止服务(可选)
docker stop prometheus
3.4 重启服务(可选)
docker restart prometheus
3.5 清理资源(可选)
这个命令将删除所有未使用的容器、镜像和卷,包括数据,谨慎使用。
docker system prune -a --volumes
四、查看
4.1 访问页面
访问 Prometheus Web
界面: 在浏览器中访问 Prometheus
: 打开 http://<主机IP>:9090
(例如,http://localhost:9090
)。
4.2 查看状态
转到 Status -> Targets
页面,查看所有目标状态是否为 UP
。