写在前面
Prometheus是一款开源的系统监控和警报工具包,特别适合容器化环境。本文将详细介绍如何使用docker-compose在Linux系统中快速部署完整的Prometheus监控系统,包含核心监控组件、可视化界面和服务器指标采集等功能。
环境准备
确保系统已安装Docker和docker-compose工具。建议使用Linux服务器(如Ubuntu/CentOS)进行操作。
步骤
- 创建监控目录结构
首先创建专用目录存放配置文件:
mkdir -p /usr/local/bin/monitor
cd /usr/local/bin/monitor
touch docker-compose.yml prometheus.yml
2.配置docker-compose.yml
以下是完整的docker-compose配置,包含5个核心服务:
version: '3'
networks:
monitor:
driver: bridge
services:
prometheus:
image: prom/prometheus
container_name: prometheus
hostname: prometheus
restart: always
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
networks:
- monitor
alertmanager:
image: prom/alertmanager
container_name: alertmanager
hostname: alertmanager
restart: always
ports:
- "9093:9093"
networks:
- monitor
grafana:
image: grafana/grafana
container_name: grafana
hostname: grafana
restart: always
ports:
- "3000:3000"
networks:
- monitor
node-exporter:
image: quay.io/prometheus/node-exporter
container_name: node-exporter
hostname: node-exporter
restart: always
ports:
- "9100:9100"
networks:
- monitor
cadvisor:
image: google/cadvisor:latest
container_name: cadvisor
hostname: cadvisor
restart: always
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
ports:
- "8899:8080"
networks:
- monitor
- 配置prometheus.yml
配置Prometheus抓取指标的目标:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'cadvisor'
static_configs:
- targets: ['localhost:8899']
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
- 启动服务
在配置文件所在目录执行:
# 首次启动建议前台运行以便查看日志
docker-compose --compatibility up
# 确认无误后可使用后台模式
docker-compose --compatibility up -d
- 访问服务
启动成功后,可通过以下地址访问各组件:
- Prometheus UI: http://<服务器IP>:9090
- Grafana: http://<服务器IP>:3000 (默认账号/密码: admin/admin)
- Node Exporter指标: http://<服务器IP>:9100/metrics
- cAdvisor指标: http://<服务器IP>:8899/metrics
组件说明
- Prometheus: 核心监控组件,负责指标采集、存储和查询
- Grafana: 数据可视化平台,提供丰富的监控仪表盘
- Node Exporter: 采集主机硬件和操作系统指标
- cAdvisor: 采集Docker容器资源使用情况
- Alertmanager: 告警管理组件(本文暂未配置)
Tips:确保9090、3000、9100等端口未被占用!!!
The end.