1. 前言

监控系统资源,我们在做测试时,如果是为了测试客户端占用系统资源的情况,那就少不了要监控其所在系统进行监控。这也就是我们常用的window系统。linux系统下有node-export,windows下对应也有windows-export.本节就是主要来描述windows系统下的资源监控,从搭建到使用的全过程。(本节中提到的环境与实践操作命令等全是本人实际环境,类似的环境可以参考,不要一键复制粘贴到底哦,除了路径外还有有些命令可能会有点点差异。为避免执行失败,步骤操作可以参考,但不要一路不做修改复制粘贴到底哦。)

2. 环境准备

  • 操作系统:windows11
  • 使用工具:
  • windows-exporter
    (下载地址: https://github.com/prometheus-community/windows_exporter/releases)

3. windows-exporter注册为系统服务

方便开机启动或是系统故障宕机快速恢复,可以把windows-exporter注册为系统服务。

sc create windows_exporter binpath= C:\windows_exporter-0.20.0-amd64.exe type= own start= auto displayname= windows_exporter

win prometheus安装 windows prometheus_windows

说明:

  • windows_export插件默认放在C盘根目录下。
  • sc create的用法说明:
  • 描述:
    在注册表和服务数据库中创建服务项。
  • 用法:
    sc create [service name] [binPath= ] …
  • 选项:
    注意,选项名称包括等号,等号和值之间需要一个空格。

参数

说明

type

<own|share|interact|kernel|filesys|rec>(默认 = own)

start

<boot|system|auto|demand|disabled|delayed-auto>(默认 = demand)

error

<normal|severe|critical|ignore>(默认 = normal)

binPath

<BinaryPathName>

group

<LoadOrderGroup>

tag

<yes|no>

depend

<依存关系(以/(斜杠)分隔)>

obj

<AccountName|ObjectName> (默认=LocalSystem)

DisplayName

<显示名称>

password

<密码>

注册完成成后可以在服务里看到所注册的windows_export服务

win prometheus安装 windows prometheus_windows_02

选中服务,然后在右键菜单中点击属性,在属性对话框输入启动参数:
–telemetry.addr=127.0.0.1:9182

这里的IP地址,可以写虚拟机的实际地址,我本地PC就使用127.0.0.1

win prometheus安装 windows prometheus_json_03


然后点击启动按钮,可以发现服务成功启动,如下图所示:

win prometheus安装 windows prometheus_linux_04


win prometheus安装 windows prometheus_win prometheus安装_05


为了测试windows_exporter是否可以成功采集到监控数据,我们可以在浏览器里面访问下面的地址,来观察是否有数据返回,如果有,则说明服务启动、运行成功。

http://127.0.0.1:9182/metricswin prometheus安装 windows prometheus_win prometheus安装_06

如果想删除这个服务,只需要在服务列表里面将此服务停掉,然后服务启动设置为手动,最后在cmd命令行窗口输入下面的命令,即可删除服务。

sc delete windows_exporter

4.配置prometheus 采集windows_export监控数据

为方便后续持续添加更多的监控目标主机,将监控目标配置改基于文件(linux-targets.jsonwindows-targets.json)的目标发布机制,这样后续添加监控目标主机,只需修改独立的目标主机列表,不需要重启prometheus服务。

vi /prom/prometheus.yml

# 将采集配置修改成以下内容,prometheus自身的监控基本不会修改,使用静态配置
# linux及windows主机性能监控均改为基于文件的服务发现模式
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['192.168.40.29:9090','192.168.40.27:9090']

  - job_name: 'node_exporter'
    file_sd_configs:
    - refresh_interval: 1m
      files:
      - linux-targets.json

  - job_name: 'windows_exporter'
    file_sd_configs:
    - refresh_interval: 1m
      files:
      - windows-targets.json

# 将要监控的linux主机信息添加到目标列表
vi /sas/prometheus/prometheus/linux-targets.json

[
  {
    "targets": [ "192.168.40.29:9100"],
    "labels": {
      "tenant": "devops"
    }
  }
]

# 将要监控的windows主机信息添加到目标列表
vi /sas/prometheus/prometheus/windows-targets.json

[
  {
    "targets": [ "192.168.40.27:9182"],
    "labels": {
      "tenant": "devops"
    }
  }
]

在grafana中配置监控信息展示模版:10467、14694、14510

5.注意事项

windows_exporter默认的监听端口是9182,启用了防火墙功能的主机需要配置防火墙允许prometheus服务器访问主机端口9182。

6.参考文档:

https://blog.51cto.com/dusthunter/2558405