✅ 完整部署流程(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
相关推荐
腾讯蓝鲸智云42 分钟前
【运维自动化-节点管理】节点管理的插件策略如何使用
运维·自动化·云计算·sass·paas
苍煜2 小时前
Docker容器网络详解+端口映射原理(系列第二篇:实战核心)
网络·docker·容器
疯狂成瘾者3 小时前
服务器的单体和集群
运维·服务器
liuhuizuikeai3 小时前
可视化门禁---Linux/Qt+SqLite篇
linux·运维·qt
charlie1145141916 小时前
嵌入式Linux驱动开发——新 API 字符设备驱动完整教程 - 从设备结构体到应用测试
linux·运维·驱动开发
gwjcloud7 小时前
Kubernetes从入门到精通(高级篇)04
云原生·容器·kubernetes
飞Link7 小时前
2000 亿砸向算力:字节跳动 AI 基建跨越,后端与运维的“万亿 Token”生死战
运维·人工智能
SWAGGY..7 小时前
Linux系统编程:(二)基础指令详解
linux·运维·服务器
张文君8 小时前
上古世纪服务端编译安装AAEmu docker编译安装
运维·docker·容器
雾岛心情8 小时前
小铭邮件管理工具箱的界面(公司版)
运维·服务器·工具·o365·小铭邮件工具箱(公司版)