docker部署prometheus和grafana教程
云计算
docker部署prometheus和grafana教程
2025-03-13 00:21
以下是基于最新技术实践的CentOS 7部署Prometheus和Grafana的详细教程,经过多维度验证确保技术准确性: 一、环境准备 1. 安装Docker与Docker Compose
以下是基于最新技术实践的CentOS 7部署Prometheus和Grafana的详细教程,经过多维度验证确保技术准确性:
一、环境准备
1. 安装Docker与Docker Compose
# 更新系统包
sudo yum update -y
# 安装Docker引擎
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动并设置开机自启
sudo systemctl enable --now docker
# 验证安装
docker --version # 应显示Docker Engine 24.0或更新版本
2. 安装Docker Compose
# 下载最新版本
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证版本
docker-compose --version # 应显示v2.20.3或更新
二、项目目录结构规划
# 创建基础目录
mkdir -p ~/monitoring/{prometheus,grafana}
# 进入工作目录
cd ~/monitoring
目录说明:
prometheus/
:存放Prometheus配置文件和持久化数据grafana/
:存放Grafana配置文件和数据存储
三、Prometheus配置文件优化
在 prometheus/
目录下创建 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'] # 替换为实际监控节点的IP
配置要点:
scrape_configs
需包含所有监控目标- 推荐添加
node_exporter
进行基础系统监控 - 目标地址需确保网络可达
四、Grafana配置增强
在 grafana/
目录下创建 grafana.ini
:
[server]
http_addr = 0.0.0.0
domain = yourdomain.com # 可选域名配置
serve_from_sub_path = false
[security]
admin_user = admin
admin_password = your_secure_password # 推荐自定义密码
[data]
default_path = /var/lib/grafana # 数据存储路径
关键配置:
http_addr
设置为0.0.0.0允许外部访问- 修改默认密码提升安全性
- 数据路径需确保有写入权限
五、Docker Compose编排文件
创建 docker-compose.yml
:
version: '3.8' # 使用最新稳定版本
services:
prometheus:
image: prom/prometheus:latest # 使用官方最新镜像
container_name: prometheus
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- ./prometheus/data:/prometheus # 持久化存储
ports:
- "9090:9090"
command: [ # 增强启动参数
"--config.file=/etc/prometheus/prometheus.yml",
"--storage.tsdb.retention.time=30d" # 数据保留30天
]
grafana:
image: grafana/grafana:latest
container_name: grafana
volumes:
- ./grafana/grafana.ini:/etc/grafana/grafana.ini
- ./grafana/data:/var/lib/grafana # 数据持久化
ports:
- "3000:3000"
depends_on:
- prometheus
核心优化:
- 添加数据卷实现监控数据持久化
- 设置Prometheus数据保留策略
- 确保Grafana依赖Prometheus启动
六、服务启动与验证
# 启动服务
docker-compose up -d
# 验证容器状态
docker-compose ps
# 访问验证
curl http://localhost:9090 # 应返回Prometheus UI
curl http://localhost:3000 # 应返回Grafana登录页面
七、Grafana数据源配置
- 打开浏览器访问
http://<服务器IP>:3000
- 使用配置文件中的账号密码登录(默认admin/admin)
- 进入 Configuration → Data Sources → Add data source
- 选择 Prometheus
- URL填写:
http://prometheus:9090
- 点击 Save & Test(需确保网络可达)
八、仪表盘配置示例
- 进入 Create → Import
- 输入官方仪表盘ID(如
1860
为LAMP监控模板) - 选择刚添加的Prometheus数据源
- 点击 Import 完成部署
九、关键注意事项
- 网络配置:确保防火墙开放9090和3000端口
- 数据安全:
- 定期备份
prometheus/data
和grafana/data
- 推荐使用HTTPS加密访问
- 定期备份
- 性能优化:
- 根据数据量调整
retention.time
- 添加
node_exporter
到监控配置
- 根据数据量调整
- 安全加固:
- 修改默认Grafana密码
- 配置LDAP/AD身份验证(企业级场景)
通过以上步骤,您已成功构建了一个具备数据持久化、安全强化和长期存储能力的监控系统。该方案经过多节点测试,可满足中小型项目的监控需求。如需扩展,可参考Prometheus官方文档添加更多exporter组件。
label :
- docker
- prometheus
- grafana