在Linux中使用docker-compose快速搭建Prometheus监控系统
写在前面
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: bridgeservices:prometheus:image: prom/prometheuscontainer_name: prometheushostname: prometheusrestart: alwaysvolumes:- ./prometheus.yml:/etc/prometheus/prometheus.ymlports:- "9090:9090"networks:- monitoralertmanager:image: prom/alertmanagercontainer_name: alertmanagerhostname: alertmanagerrestart: alwaysports:- "9093:9093"networks:- monitorgrafana:image: grafana/grafanacontainer_name: grafanahostname: grafanarestart: alwaysports:- "3000:3000"networks:- monitornode-exporter:image: quay.io/prometheus/node-exportercontainer_name: node-exporterhostname: node-exporterrestart: alwaysports:- "9100:9100"networks:- monitorcadvisor:image: google/cadvisor:latestcontainer_name: cadvisorhostname: cadvisorrestart: alwaysvolumes:- /:/rootfs:ro- /var/run:/var/run:rw- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:roports:- "8899:8080"networks:- monitor
- 配置prometheus.yml
配置Prometheus抓取指标的目标:
global:scrape_interval: 15sevaluation_interval: 15sscrape_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.