安装
docker-compose.yml
version: '3.8'services:# Prometheus 监控服务prometheus:image: prom/prometheus:latestcontainer_name: prometheusrestart: unless-stoppedvolumes:- ./conf/prometheus.yml:/etc/prometheus/prometheus.yml- ./prometheus_data:/prometheuscommand:- '--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:latestcontainer_name: grafanarestart: unless-stoppedvolumes:- ./grafana_data:/var/lib/grafana- ./grafana/provisioning:/etc/grafana/provisioningenvironment:- GF_SECURITY_ADMIN_USER=admin- GF_SECURITY_ADMIN_PASSWORD=admin- GF_USERS_ALLOW_SIGN_UP=falseports:- "3000:3000"networks:- monitoringdepends_on:- prometheus# Node Exporter (可选,用于收集主机指标)node-exporter:image: prom/node-exporter:latestcontainer_name: node-exporterrestart: unless-stoppedcommand:- '--path.rootfs=/host'network_mode: hostpid: hostvolumes:- '/:/host:ro,rslave'deploy:mode: globalvolumes:prometheus_data:grafana_data:networks:monitoring:driver: bridge
prometheus.yml
global:scrape_interval: 15sevaluation_interval: 15sscrape_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