✅ 完整部署流程(Docker 独立监控 + 域名访问)

一、环境准备

  • 一台云服务器(CentOS 7 / Ubuntu 20.04,已安装 Docker)

  • 一个已解析到服务器 IP 的域名(如 anxun.xyz

  • 已安装 Nginx(用于反向代理)


二、创建监控目录并编写配置

复制代码
mkdir -p /opt/monitoring
cd /opt/monitoring

创建目录:

mkidr +路径+名字

例:mkdir /opt/monitoring/docker-compose.yml

vi /opt/monitoring/docker-compose.yml

#打开文件

然后点击i,进入输入模式

然后复制代码

然后esc,退出输入模式

然后:wq 退出即可

1. 创建 docker-compose.yml
复制代码
version: '3.8'

services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    restart: always
    network_mode: host
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
      - prometheus_data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--storage.tsdb.retention.time=30d'

  node_exporter:
    image: prom/node-exporter:latest
    container_name: node_exporter
    restart: always
    network_mode: host
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    command:
      - '--path.procfs=/host/proc'
      - '--path.sysfs=/host/sys'
      - '--path.rootfs=/rootfs'

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: always
    network_mode: host
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin
    volumes:
      - grafana_data:/var/lib/grafana

volumes:
  prometheus_data:
  grafana_data:
2. 创建 Prometheus 配置文件 prometheus.yml
复制代码
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']

  - job_name: 'campus_app'
    static_configs:
      - targets: ['localhost:8000']

三、启动监控服务

复制代码
cd /opt/monitoring
docker compose up -d

查看运行状态:

复制代码
docker compose ps
# 应该看到 prometheus、node_exporter、grafana 三个容器均为 Up

四、配置 Nginx 反向代理(子域名访问)

1. 在阿里云 DNS 添加解析记录
  • prom.anxun.xyz → 服务器公网 IP

  • grafana.anxun.xyz → 服务器公网 IP

2. 创建 Nginx 配置文件 /etc/nginx/conf.d/monitoring.conf
复制代码
server {
    listen 80;
    server_name prom.anxun.xyz;

    location / {
        proxy_pass http://127.0.0.1:9090;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen 80;
    server_name grafana.anxun.xyz;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
3. 测试并重载 Nginx
复制代码
nginx -t
systemctl reload nginx

五、验证访问

  • Prometheushttp://prom.anxun.xyz (或 http://服务器IP:9090

  • Grafanahttp://grafana.anxun.xyz (或 http://服务器IP:3000

  • 默认 Grafana 账号密码:admin / admin


六、导入现成监控仪表盘(Grafana)

  1. 登录 Grafana,点击左侧 DashboardsImport

  2. 输入仪表盘 ID 1860(Node Exporter Full)

  3. 选择 Prometheus 数据源,点击 Import

稍等片刻,即可看到服务器 CPU、内存、磁盘、网络等实时监控图表。


七、常用管理命令

复制代码
# 重启监控服务
cd /opt/monitoring
docker compose restart

# 查看日志
docker compose logs -f

# 停止服务(保留数据)
docker compose down

# 彻底删除(含数据卷)
docker compose down -v
相关推荐
AI服务老曹8 分钟前
Docker部署AI视频分析平台项目实战记录
人工智能·docker·音视频
qetfw13 分钟前
CentOS 7 配置 firewalld 防火墙
linux·运维·centos
留不住的何止是时间20 分钟前
关于docker构建镜像build指令的注意事项
运维·docker·容器
Dovis(誓平步青云)1 小时前
《Linux CPU频率为何忽高忽低:cpufreq、idle状态与性能抖动教程》
linux·运维·服务器·spring boot·后端·生成对抗网络
小此方1 小时前
Re:Linux系统篇(四十三)信号篇·一:谁在敲进程的门?一篇带你了解信号概念与产生机制
linux·运维·驱动开发
Championship.23.248 小时前
Linux 3.0 锁机制与故障排查详解
linux·运维·服务器
风123456789~10 小时前
【Linux专栏】ls 排除某个文件
linux·运维·服务器
其实防守也摸鱼11 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
Darkwanderor13 小时前
对Linux的进程控制的研究
linux·运维·c++
小兔崽子去哪了14 小时前
Docker 删除镜像后磁盘空间没有释放?
后端·docker·容器