Windows Server 服务器监控部署文档(Prometheus + Grafana)

Windows Server 服务器监控部署文档(Prometheus + Grafana)

目标:采集几十台 Windows Server 虚拟机的 IP、CPU 使用率、内存使用率、磁盘剩余空间,通过 Grafana 可视化大屏实时展示。

架构:每台 Windows 虚拟机部署 windows_exporter(采集 Agent,监听 9182)→ 监控服务器部署 Prometheus 定时拉取指标 → Grafana 接入 Prometheus 并导入现成大屏模板。

采集间隔:全局可配置 1 分钟或 5 分钟,只需改 Prometheus 配置,无需改动每台机器的 Agent。

方案概述与端口清单

本方案使用成熟开源组件,无需自行开发采集 EXE:

  • windows_exporter:开源 Windows 采集程序,MSI 安装包,安装后自动注册为系统服务、开机自启,暴露 CPU、内存、磁盘、网卡、主机信息等指标。

  • Prometheus:时序数据库,定时(pull 模式)从所有 windows_exporter 拉取指标,本地存储。

  • Grafana:可视化大屏,内置 Windows 监控仪表盘模板,导入即可展示所有主机总览与趋势。

组件 默认端口 放行说明
windows_exporter TCP 9182 仅允许监控服务器 IP 访问各虚拟机的 9182
Prometheus TCP 9090 本机/运维管理端访问
Grafana TCP 3000 大屏浏览器访问此端口

前置准备

  • 准备一台监控服务器(低配虚拟机即可,建议 2 核 4G、磁盘 50G),用于部署 Prometheus + Grafana。

  • 确认监控服务器与所有被监控 Windows 虚拟机内网互通;虚拟机防火墙放行 9182 端口。

  • 所有 Windows 虚拟机的操作需具备管理员权限。

第一步:所有 Windows 虚拟机安装 windows_exporter

对每台被监控的 Windows Server 执行以下操作。

下载安装包

官方下载地址:https://github.com/prometheus-community/windows_exporter/releases

选择稳定版:windows_exporter-0.30.4-amd64.msi。

安装方式(推荐静默批量安装)

以管理员身份打开 PowerShell,执行静默安装,开启所需采集项并自动放行防火墙:

powershell 复制代码
msiexec /i "windows_exporter-0.30.4-amd64.msi" /qn ENABLED_COLLECTORS="cpu,memory,logical_disk,net,os,system" ADDLOCAL=FirewallException
  • /qn:静默无窗口安装。

  • ENABLED_COLLECTORS:开启 CPU、内存、逻辑磁盘、网卡、系统信息采集。

  • ADDLOCAL=FirewallException:自动添加防火墙放行 9182 端口。

单台测试也可双击 MSI 图形化安装,采集器勾选 cpu、memory、logical_disk、net、os、system 即可。

验证安装

  1. 打开服务管理器 services.msc,找到 windows_exporter,状态应为"正在运行"、启动类型"自动"。

  2. 本机浏览器访问 http://本机IP:9182/metrics,页面出现大量文本指标即采集成功。

  3. 在监控服务器 上访问 http://虚拟机IP:9182/metrics,能打开即网络通畅;不通请检查虚拟机防火墙。

第二步:部署 Prometheus

下载与解压

官网:https://prometheus.io/download/,下载 Windows 版本(prometheus-xxx.windows-amd64.zip),解压到例如 D:\prometheus。

修改配置文件 prometheus.yml

打开 D:\prometheus\prometheus.yml,替换为以下内容(注意 YAML 用空格缩进,不能用 Tab):

yaml 复制代码
global:
  scrape_interval: 1m       # 采集间隔,1 分钟;可改为 5m 表示 5 分钟
  evaluation_interval: 1m

scrape_configs:
  - job_name: "windows-servers"
    static_configs:
      - targets:
          # 在此填写所有 Windows 虚拟机 IP:9182,一行一台
          - 192.168.1.10:9182
          - 192.168.1.11:9182
          - 192.168.1.12:9182
          # 新增机器只需在此追加一行

后续新增 Windows 虚拟机:装好 windows_exporter 后,在 targets 中追加一行 IP:9182,重启 Prometheus 即自动接入大屏。

启动 Prometheus

cmd 复制代码
cd D:\prometheus
prometheus.exe --config.file=prometheus.yml --storage.tsdb.retention.time=30d

--storage.tsdb.retention.time=30d 表示监控数据保留 30 天,防止磁盘持续膨胀,可按需改为 7d 或 90d。

验证

  1. 浏览器打开 http://监控服务器IP:9090。

  2. 进入 Status → Targets,所有 windows 主机状态为 UP 即采集正常;红色 DOWN 表示网络不通或 exporter 未启动。

可选:使用 nssm 工具将 prometheus 注册为 Windows 服务,实现开机自启,无需一直挂着 cmd 窗口。

第三步:部署 Grafana

下载安装

官网:https://grafana.com/grafana/download,下载 Windows 版本 MSI 双击安装,自动注册为系统服务,默认端口 3000。

登录

浏览器访问 http://监控服务器IP:3000,默认账号密码 admin / admin,首次登录强制修改密码。

添加 Prometheus 数据源

  1. 左侧菜单 Connections → Data sources → Add data source,选择 Prometheus。

  2. URL 填写 http://127.0.0.1:9090。

  3. 拉到最下方点击 Save & test,提示成功即连通。

导入现成 Windows 大屏模板

内网环境说明:服务器无法访问 grafana.com,不能用模板 ID 在线拉取。请使用文档下方附件提供的两份 dashboard JSON 文件,通过「Upload JSON file」方式手动导入。

  1. 把文档下方附件中的 dashboard JSON 文件下载到本机,再拷贝/上传到内网 Grafana 所在机器。

  2. 在 Grafana 左侧菜单 Dashboards → New → Import(或 Dashboards → Browse → 右上角 New → Import)。

  3. 不要在「Import via grafana.com」填写模板 ID(内网连不上会报错);改点 Upload JSON file,选择下载的 .json 文件。

  4. 在 Import 页面的 Prometheus 数据源下拉中,选择你在 Grafana 里已配置好的本地 Prometheus(两个模板都使用数据源变量,导入时才绑定,不写死外网 UID)。

  5. 点击 Import,打开仪表盘即可看到:主机清单与 IP、CPU 使用率、内存占用、各磁盘剩余容量与百分比、网络流量;支持全屏投屏与阈值变色(如磁盘低于 20% 自动标红)。

两份模板二选一即可:

JSON 文件 语言 说明
dash_15794.json 英文 Grafana 官方 windows_exporter 经典模板:Uptime、CPU、Memory、磁盘概览,面板稳定通用。
dash_24077.json 中文 中文化大屏,带主机下拉筛选($show_hostname),按 JOB 分组展示各主机 CPU/内存/网卡,推荐用于投屏可视化大屏。

常用指标 PromQL(自定义面板用)

指标 PromQL
CPU 使用率 100 - (avg by (instance) (irate(windows_cpu_time_total{mode="idle"}[2m])) * 100)
内存使用率 100 - (windows_memory_available_bytes / windows_os_physical_memory_total_bytes * 100)
磁盘剩余空间(GB) windows_logical_disk_free_bytes / 1024 / 1024 / 1024
磁盘剩余百分比 100 * windows_logical_disk_free_bytes / windows_logical_disk_size_bytes
主机 IP 直接使用 instance 字段,格式为 ip:9182,提取 IP 展示到表格。

可选:监控数据同步到达梦数据库

Prometheus 原生时序库适合大屏查询。若业务要求把原始监控数据落到达梦,两种方案:

方案 A:Prometheus Remote Write + 中间转发

通过 prometheus-sql 等中转组件,定时将指标 INSERT 写入达梦。参考建表 SQL:

sql 复制代码
CREATE TABLE MONITOR_HOST_METRICS(
    ID BIGINT IDENTITY(1,1) PRIMARY KEY,
    HOST_IP VARCHAR(50),
    CPU_USAGE DECIMAL(5,2),
    MEM_USAGE DECIMAL(5,2),
    DISK_FREE_GB DECIMAL(10,2),
    COLLECT_TIME DATETIME
);

方案 B:定时脚本读取 Prometheus API 写入达梦

编写简单 Python 脚本,每分钟调用 Prometheus API 查询指标,批量插入达梦,简单可控,几十台机器压力很小。

达梦存储时序监控数据必须配置数据老化策略(如只保留 30 天明细,定期归档/删除旧数据),否则表会无限膨胀、查询变慢。

可选:告警配置

Grafana 内置告警,可配置例如:

  • CPU 使用率 > 80% 持续 5 分钟触发告警;

  • 磁盘剩余空间小于 10GB 告警;

  • 主机离线(监控不到该目标)告警。

支持推送钉钉、企业微信或邮件。

运维排障清单

现象 排查方向
Prometheus Targets 显示 DOWN 检查 windows_exporter 服务是否运行;检查虚拟机防火墙 9182 是否放行;监控服务器 ping 虚拟机 IP 确认网络连通。
Grafana 图表无数据 确认数据源连通;核对 PromQL 指标名称是否与 exporter 版本匹配。
Prometheus 服务器磁盘占用过大 调小 --storage.tsdb.retention.time,缩短数据保留时间。
新增 Windows 虚拟机 安装 windows_exporter,在 prometheus.yml 的 targets 增加一行 IP:9182,重启 Prometheus。

说明:Prometheus 默认是拉取模式(主动连接每台 Windows 的 9182),内网环境完全适用;若虚拟机处于隔离网段无法被主动连接,需改用 push 模式(配合 pushgateway)。

Grafana大屏模板_windows_exporter_15794.json

Grafana大屏模板_中文主机总览_24077.json

相关推荐
龙亘川4 小时前
城市运管服平台下综合办公数字化建设实践与思考
大数据·人工智能·智慧城市·开源软件·数据可视化
龙亘川8 小时前
设备管理业务建模:从设备信息台账到维护计划执行闭环
大数据·人工智能·智慧城市·开源软件·数据可视化
数字新视界9 小时前
国产信创动环监控系统的未来趋势分析
物联网·3d·数字孪生·三维可视化·数据可视化
慧都小妮子11 小时前
Stimulsoft 2026.4 发布:Markdown 组件、桑基图与 .NET 11 支持
.net·数据可视化·stimulsoft·版本更新·报表控件·桑基图·.net 11
ASS-ASH2 天前
从力学与机械原理角度深度剖析:尊界V800刹车踏板支架断裂事件的技术逻辑
人工智能·python·数据可视化·机械工程·汽车安全·物理仿真·制动系统
龙亘川2 天前
长假大客流复盘|数字化助力城市交通与文旅态势智能管控
大数据·人工智能·智慧城市·开源软件·数据可视化
daxiangxm2 天前
GEO策略:让AI直接引用你的内容
开发语言·团队开发·运维开发·个人开发·数据库开发
织元Zmetaboard2 天前
物流数据大屏模板怎么改?从全国运输总览到区域异常监控
数据可视化·物流·数据质量·大屏
柳杉3 天前
Codex + 可视化大屏工作流实践:15 个行业场景的设计产出合集
前端·openai·数据可视化