Docker-Compose-Prometheus-and-Grafana 使用教程
1. 项目目录结构及介绍
本项目是基于 Docker Compose 的 Prometheus 和 Grafana 监控解决方案。项目目录结构如下:
Docker-Compose-Prometheus-and-Grafana/
├── alertmanager/
├── caddy/
├── grafana/
│ └── provisioning/
├── helpers/
│ └── aws/
├── prometheus/
├── screens/
├── .env
├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── config/
├── docker-compose.exporters.yml
└── docker-compose.yml
alertmanager/
: 包含 AlertManager 配置文件。caddy/
: 包含 Caddy 服务器配置文件。grafana/
: 包含 Grafana 配置文件和仪表板配置。helpers/
: 包含辅助脚本和文件。prometheus/
: 包含 Prometheus 配置文件。screens/
: 包含预设的 Grafana 仪表板屏幕文件。.env
: 环境变量配置文件。docker-compose.exporters.yml
: 包含额外导出器的 Docker Compose 配置。docker-compose.yml
: 主 Docker Compose 配置文件。
2. 项目的启动文件介绍
项目的启动主要通过 docker-compose.yml
文件来配置和启动服务。以下是启动文件的基本内容:
version: '3.7'
services:
prometheus:
image: prom/prometheus
volumes:
- ./prometheus:/etc/prometheus
depends_on:
- node-exporter
- cadvisor
ports:
- "9090:9090"
alertmanager:
image: prom/alertmanager
volumes:
- ./alertmanager:/etc/alertmanager
ports:
- "9093:9093"
grafana:
image: grafana/grafana
volumes:
- ./grafana/provisioning:/etc/grafana/provisioning
- grafana_data:/var/lib/grafana
ports:
- "3000:3000"
env_file:
- ./config/grafana.env
node-exporter:
image: prom/node-exporter
ports:
- "9100:9100"
cadvisor:
image: google/cadvisor
ports:
- "8080:8080"
depends_on:
- docker
caddy:
image: abiosoft/caddy
ports:
- "80:80"
- "443:443"
depends_on:
- prometheus
- alertmanager
volumes:
- ./caddy/Caddyfile:/etc/Caddy/Caddyfile
该文件定义了 Prometheus、AlertManager、Grafana、NodeExporter、cAdvisor 和 Caddy 服务。每个服务都有自己的配置和端口映射。
3. 项目的配置文件介绍
配置文件主要涉及 .env
文件和 docker-compose.yml
文件中的环境变量配置。
.env
文件用于存储环境变量,例如管理员用户名和密码:
ADMIN_USER=admin
ADMIN_PASSWORD=admin
- 在
docker-compose.yml
文件中,可以使用env_file
指令引入环境变量配置,例如 Grafana 的环境变量配置:
grafana:
image: grafana/grafana
volumes:
- ./grafana/provisioning:/etc/grafana/provisioning
- grafana_data:/var/lib/grafana
ports:
- "3000:3000"
env_file:
- ./config/grafana.env
此外,docker-compose.yml
文件中的服务配置部分也可能包含服务的特定配置,如 Prometheus 和 AlertManager 的配置卷映射。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考