✅ 完整部署流程(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
相关推荐
天远数科26 分钟前
零信任架构实战:基于天远全能消金报告构建自动化信贷评估网关
运维·人工智能·架构·自动化
网硕互联的小客服3 小时前
各个版本的Linux系统如何修改远程端口ssh端口?
linux·运维·服务器·网络
Mr小林5 小时前
Docker 安装教程(在线 + 离线)
运维·docker·容器
java_logo5 小时前
Docker 部署 Milvus:轻松搭建高性能向量数据库平台
数据库·docker·私有化部署·milvus·向量数据库·rag·轩辕镜像
JudithHuang5 小时前
把本地服务暴露到公网
运维
yt004yt6 小时前
### 越华环保集团|绿岛 VOCs 集中治理,管网系统安全设计工程实战分享
大数据·运维
yt004yt6 小时前
越华环保集团|绿岛 VOCs 集中治理,管网系统安全设计工程实战分享
大数据·运维
晚安日记wanna7 小时前
压测 TPS 卡在 800CPU 只跑四成六步定位法
运维·面试·测试
吴声子夜歌8 小时前
Shell编程实例——bash入门
linux·运维·shell
爱和冰阔落8 小时前
【Linux】条件变量为什么必须配合互斥锁:从 pthread_cond_wait 到阻塞队列
linux·运维·c++·缓存·中间件·安卓