2024 年云原生运维实战文档 99 篇原创计划 第 026 篇 |Docker 最佳实战「2024」系列 第 014 篇
你好,欢迎来到运维有术。
今天分享的内容是 Docker 最佳实战「2024」 系列文档中的 Docker 部署单节点 Prometheus 实战。
本文将详细介绍如何用 Docker 容器及 Docker Compose 部署单节点 Prometheus。
实战服务器配置 (架构 1:1 复刻小规模生产环境,配置略有不同)
主机名 | IP | CPU(核) | 内存(GB) | 系统盘(GB) | 数据盘(GB) | 用途 |
---|---|---|---|---|---|---|
docker-node-1 | 192.168.9.81 | 4 | 16 | 40 | 100 | Docker 节点 1 |
docker-node-2 | 192.168.9.82 | 4 | 16 | 40 | 100 | Docker 节点 2 |
docker-node-3 | 192.168.9.83 | 4 | 16 | 40 | 100 | Docker 节点 3 |
合计 | 3 | 12 | 48 | 120 | 300 |
实战环境涉及软件版本信息
使用 Docker 部署 Prometheus 服务的镜像有以下两种选择:
本文选择下载量最大的 Prometheus 官方提供的镜像,构建单节点 Prometheus 服务。
cd /data/containers
mkdir -p prometheus/{config,data}
chown nobody.nobody prometheus/data
创建配置文件,vi prometheus/config/prometheus.yml
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["192.168.9.81:9090"]
说明: 本文使用了 Prometheus 镜像自带的默认配置,请根据实际情况修改 192.168.9.81:9090,修改为部署 Prometheus 服务器 IP 和开放的实际端口
创建配置文件,vi prometheus/docker-compose.yml
name: "prometheus"
services:
prometheus:
image: prom/prometheus:v2.45.5
container_name: prometheus
restart: always
networks:
- app-tier
ports:
- '9090:9090'
volumes:
- ./data:/prometheus
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml
networks:
app-tier:
name: app-tier
driver: bridge
#external: true
说明: external: true, 当服务器已经创建 Docker 网络
app-tier
时,创建服务会有 WARN 信息提示,可以启用这个参数。
cd /data/containers/prometheus
docker compose up -d
$ docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
prometheus prom/prometheus:v2.45.5 "/bin/prometheus --c…" prometheus 33 seconds ago Up 32 seconds 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp
# 通过日志查看容器是否有异常,结果略
$ docker compose logs -f
打开浏览器,验证 Prometheus 管理控制台。
文章中所有操作步骤,已全部编排为自动化脚本,包含以下内容(因篇幅限制,不在此文档中展示):
运维有术星球会员请到专属代码仓库下载(价值内容,仅星球会员专享)。
以上,就是我今天分享的全部内容。下一期分享的内容还没想好,敬请期待开盲盒。
如果你喜欢本文,请分享、收藏、点赞、评论! 请持续关注 @运维有术,及时收看更多好文!
免责声明:
Get 本文实战视频(请注意,文档视频异步发行,请先关注)
欢迎加入 「知识星球|运维有术」 ,获取更多的 KubeSphere、Kubernetes、云原生运维、自动化运维、AI 大模型等实战技能。未来运维生涯始终有我坐在你的副驾。
版权声明
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。