✅ 完整部署流程(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
相关推荐
SelectDB16 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
曲幽1 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
武子康3 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn866 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker