DockProm 项目使用教程
1. 项目的目录结构及介绍
DockProm 是一个用于 Docker 主机和容器监控的解决方案,结合了 Prometheus、Grafana、cAdvisor、NodeExporter 和 AlertManager。以下是项目的目录结构及其介绍:
dockprom/
├── alertmanager/
│ └── config/
├── caddy/
│ └── Caddyfile
├── grafana/
│ └── provisioning/
│ ├── dashboards/
│ └── datasources/
├── helpers/
│ └── aws/
├── prometheus/
│ ├── alerts/
│ └── rules/
├── screens/
├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── config/
├── docker-compose-exporters.yml
├── docker-compose.yml
alertmanager/
: 包含 AlertManager 的配置文件。caddy/
: 包含 Caddy 服务器的配置文件。grafana/
: 包含 Grafana 的预配置仪表盘和数据源。helpers/
: 包含一些辅助脚本,例如 AWS 相关的脚本。prometheus/
: 包含 Prometheus 的告警规则和配置文件。screens/
: 包含一些截图文件。.gitattributes
和.gitignore
: Git 的配置文件。LICENSE
: 项目的许可证。README.md
: 项目的说明文档。config/
: 包含一些通用的配置文件。docker-compose-exporters.yml
和docker-compose.yml
: Docker Compose 的配置文件。
2. 项目的启动文件介绍
DockProm 项目主要通过 docker-compose.yml
文件来启动和管理各个服务。以下是 docker-compose.yml
文件的主要内容:
version: '3.7'
services:
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus/:/etc/prometheus/
command:
- '--config.file=/etc/prometheus/prometheus.yml'
ports:
- '9090:9090'
networks:
- dockprom
grafana:
image: grafana/grafana:latest
volumes:
- ./grafana/provisioning:/etc/grafana/provisioning
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
ports:
- '3000:3000'
networks:
- dockprom
...
networks:
dockprom:
prometheus
: 定义了 Prometheus 服务的镜像、卷挂载、命令和端口映射。grafana
: 定义了 Grafana 服务的镜像、卷挂载、环境变量和端口映射。networks
: 定义了服务的网络配置。
3. 项目的配置文件介绍
DockProm 项目的配置文件主要分布在各个服务的目录中,以下是一些关键配置文件的介绍:
Prometheus 配置文件
位于 prometheus/prometheus.yml
,主要配置 Prometheus 的抓取目标、告警规则等:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node'
static_configs:
- targets: ['node-exporter:9100']
Grafana 配置文件
位于 grafana/provisioning/datasources/prometheus.yml
,配置 Grafana 的数据源:
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus:9090
access: proxy
isDefault: true
AlertManager 配置文件
位于 alertmanager/config/alertmanager.yml
,配置 AlertManager 的接收器和路由规则:
global:
resolve_timeout: 5m
route:
receiver: 'default-receiver'
receivers:
- name: 'default-receiver'
webhook