一、环境准备
-
一台云服务器(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)
-
登录 Grafana,点击左侧 Dashboards → Import
-
输入仪表盘 ID 1860(Node Exporter Full)
-
选择 Prometheus 数据源,点击 Import
稍等片刻,即可看到服务器 CPU、内存、磁盘、网络等实时监控图表。
七、常用管理命令
# 重启监控服务
cd /opt/monitoring
docker compose restart
# 查看日志
docker compose logs -f
# 停止服务(保留数据)
docker compose down
# 彻底删除(含数据卷)
docker compose down -v