Docker Compose 部署 Prometheus + Grafana
·
安装
docker-compose.yml
version: '3.8'
services:
# Prometheus 监控服务
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
volumes:
- ./conf/prometheus.yml:/etc/prometheus/prometheus.yml
- ./prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
- '--web.enable-lifecycle'
ports:
- "9090:9090"
networks:
- monitoring
# Grafana 可视化平台
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
volumes:
- ./grafana_data:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
- GF_USERS_ALLOW_SIGN_UP=false
ports:
- "3000:3000"
networks:
- monitoring
depends_on:
- prometheus
# Node Exporter (可选,用于收集主机指标)
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
restart: unless-stopped
command:
- '--path.rootfs=/host'
network_mode: host
pid: host
volumes:
- '/:/host:ro,rslave'
deploy:
mode: global
volumes:
prometheus_data:
grafana_data:
networks:
monitoring:
driver: bridge
prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node-exporter'
static_configs:
- targets: ['ip:9100']
监控服务访问信息
服务地址
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000
(默认用户名/密码:admin/admin)
配置 Grafana
添加 Prometheus 数据源
- 登录 Grafana
- 点击左侧齿轮图标 → Data Sources → Add data source
- 选择 Prometheus
- URL:
http://prometheus:9090 - 点击 Save & Test
导入仪表板
方法一:从 Grafana 官方库导入
- 登录 Grafana
- 点击左侧菜单的 “+” → “Import”
- 在 “Import via grafana.com” 输入框中输入以下常用仪表板 ID:
- Node Exporter Full:
1860 - Linux Hosts Metrics:
10180 - Node Exporter Server Metrics:
11074
- Node Exporter Full:
- 点击 “Load”
- 选择数据源(如 Prometheus)
- 点击 “Import”
方法二:手动导入 JSON 文件
- 从 Grafana 仪表板库 下载 JSON 文件
- 在 Grafana 中点击 “+” → “Import”
- 点击 “Upload JSON file” 上传下载的文件
- 选择数据源并导入
可选配置
持久化数据
已配置数据卷,确保 Prometheus 和 Grafana 的数据在容器重启后不会丢失。
添加更多监控目标
编辑 prometheus.yml 文件,添加更多的 scrape_configs 部分来监控其他服务。
配置告警
可以添加 Alertmanager 服务来配置告警规则和通知。
效果图
仪表板 ID:1860
更多推荐



所有评论(0)