一、环境准备一台云服务器CentOS 7 / Ubuntu 20.04已安装 Docker一个已解析到服务器 IP 的域名如anxun.xyz已安装 Nginx用于反向代理二、创建监控目录并编写配置mkdir -p /opt/monitoring cd /opt/monitoring创建目录mkidr 路径名字例mkdir /opt/monitoring/docker-compose.ymlvi /opt/monitoring/docker-compose.yml#打开文件然后点击i进入输入模式然后复制代码然后esc退出输入模式然后wq 退出即可1. 创建docker-compose.ymlversion: 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.time30d 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_PASSWORDadmin volumes: - grafana_data:/var/lib/grafana volumes: prometheus_data: grafana_data:2. 创建 Prometheus 配置文件prometheus.ymlglobal: 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→ 服务器公网 IPgrafana.anxun.xyz→ 服务器公网 IP2. 创建 Nginx 配置文件/etc/nginx/conf.d/monitoring.confserver { 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. 测试并重载 Nginxnginx -t systemctl reload nginx五、验证访问Prometheushttp://prom.anxun.xyz或http://服务器IP:9090Grafanahttp://grafana.anxun.xyz或http://服务器IP:3000默认 Grafana 账号密码admin/admin六、导入现成监控仪表盘Grafana登录 Grafana点击左侧Dashboards→Import输入仪表盘 ID1860Node Exporter Full选择 Prometheus 数据源点击Import稍等片刻即可看到服务器 CPU、内存、磁盘、网络等实时监控图表。七、常用管理命令# 重启监控服务 cd /opt/monitoring docker compose restart # 查看日志 docker compose logs -f # 停止服务保留数据 docker compose down # 彻底删除含数据卷 docker compose down -v