✅ 完整部署流程(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

五、验证访问

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

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

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


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

  1. 登录 Grafana,点击左侧 Dashboards → Import

  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
相关推荐
zmsup16 小时前
Agent 上下文调优:结合 OpsArk 运维智能体,设计模型每一步真正需要的信息
运维·agent·上下文压缩·运维智能体·上下文调优
吴声子夜歌19 小时前
Nginx应用与运维——Nginx负载均衡应用实战(二)
运维·nginx·负载均衡
lisanmengmeng19 小时前
NRPE 添加命令(一)
linux·运维·服务器
pt104319 小时前
CML网络仿真入门-2:使用CML模拟网络实验环境
运维·网络协议
沫璃染墨20 小时前
《从零入门Linux系统篇(五十七):线程篇·十——生产者消费者模型进阶:从环形缓冲区到POSIX信号量》
linux·运维·服务器·开发语言·c++·系统架构·信号处理
HAHAXX821 小时前
电商RPA批量上架通用方案:一套流程如何同时跑通拼多多、抖店、淘宝和跨境平台
java·运维·rpa
零基础12321 小时前
LLM Agent 驱动的物模型构建:从设备手册到边缘接入的自动化实践
运维·人工智能·经验分享·python·自动化
更深兼春远1 天前
第2篇:Dify 部署保姆级教程:用 Docker跑起来
docker·容器·dify
程序猿老A1 天前
从入门型到企业型:云服务器开放共享型到独享型规格升级
运维·服务器
Ruiery1 天前
Linux 6.6内核 CPU 深度解析(九):时钟与 TSC — 内核怎么从 PIT/HPET 切到 TSC
linux·运维·服务器