跳到主要内容

Docker

2024年12月23日
柏拉文
越努力,越幸运

一、认识


基于 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