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数据源配置

  1. 打开浏览器访问 http://<服务器IP>:3000
  2. 使用配置文件中的账号密码登录(默认admin/admin)
  3. 进入 Configuration → Data Sources → Add data source
    • 选择 Prometheus
    • URL填写:http://prometheus:9090
    • 点击 Save & Test(需确保网络可达)

八、仪表盘配置示例

  1. 进入 Create → Import
  2. 输入官方仪表盘ID(如 1860为LAMP监控模板)
  3. 选择刚添加的Prometheus数据源
  4. 点击 Import 完成部署

九、关键注意事项

  1. 网络配置:确保防火墙开放9090和3000端口
  2. 数据安全
    • 定期备份 prometheus/data和 grafana/data
    • 推荐使用HTTPS加密访问
  3. 性能优化
    • 根据数据量调整 retention.time
    • 添加 node_exporter到监控配置
  4. 安全加固
    • 修改默认Grafana密码
    • 配置LDAP/AD身份验证(企业级场景)

通过以上步骤,您已成功构建了一个具备数据持久化、安全强化和长期存储能力的监控系统。该方案经过多节点测试,可满足中小型项目的监控需求。如需扩展,可参考Prometheus官方文档添加更多exporter组件。


标签:
  • docker
  • prometheus
  • grafana