Docker Compose
一、认识
基于 Docker Compose
部署 Prometheus
主要是为了简化多容器的管理和配置,并且可以方便地进行集群部署、服务发现等操作。Docker Compose
允许我们在一个配置文件中定义多个容器服务,包括 Prometheus
容器、存储卷以及必要的网络配置。
下面是一个基于 Docker Compose
部署 Prometheus
的完整步骤,涵盖持久化存储、容器重启、更新、销毁存储等操作。
二、目录结构
创建一个工作目录 prometheus-docker-compose
,该目录用于存放 Prometheus
配置文件和 Docker Compose
配置文件。
prometheus-docker-compose/
│
├── prometheus.yml # Prometheus 配置文件
├── docker-compose.yml # Docker Compose 配置文件
└── data/ # 持久化存储目录
三、操作
3.1 创建 Prometheus 配置
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 Compose 配置
创建 docker-compose.yml
文件,使用 Docker Compose
来管理 Prometheus
容器。
services:
prometheus:
image: prom/prometheus:latest # 使用 Prometheus 官方最新镜像
container_name: prometheus # 容器名称
ports:
- "9090:9090" # 映射 9090 端口到宿主机
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml # 映射配置文件
- ./data:/prometheus # 持久化存储目录
restart: unless-stopped # 自动重启策略,除非手动停止容器
networks:
- prometheus-network
networks:
prometheus-network:
driver: bridge
-
image
: 使用prom/prometheus:latest
镜像。 -
container_name
: 给容器命名为prometheus
。 -
ports
: 将宿主机的9090
端口映射到容器的9090
端口,用于访问Prometheus Web UI
。 -
volumes
:-
./prometheus.yml:/etc/prometheus/prometheus.yml
: 将宿主机的配置文件prometheus.yml
映射到容器内的/etc/prometheus/prometheus.yml
。 -
./data:/prometheus
: 将宿主机上的./data
目录映射到容器内的/prometheus
,用于持久化Prometheus
数据。
-
-
restart
: 设置为unless-stopped
,表示容器会自动重启,除非手动停止。 -
networks
: 配置容器加入到一个名为prometheus-network
的网络,确保Prometheus
和其他服务能够互相通信。
3.3 启动服务
在项目根目录下(即 prometheus-docker-compose
目录)运行以下命令来启动容器:
docker-compose up -d
3.4 检测服务
你可以使用以下命令查看 Prometheus
容器的状态:
docker-compose ps
如果要查看 Prometheus
的日志:
docker-compose logs prometheus
3.5 重启服务(可选)
Prometheus
容器的重启可以通过 docker-compose restart
命令来实现:
docker-compose restart prometheus
3.6 清理资源(可选)
docker-compose down -v
docker system prune -a --volumes
docker-compose up -d
四、查看
4.1 访问页面
访问 Prometheus Web
界面: 在浏览器中访问 Prometheus
: 打开 http://<主机IP>:9090
(例如,http://localhost:9090
)。
4.2 查看状态
转到 Status -> Targets
页面,查看所有目标状态是否为 UP
。