1. 前言
监控系统资源,我们在做测试时,如果是为了测试客户端占用系统资源的情况,那就少不了要监控其所在系统进行监控。这也就是我们常用的window系统。linux系统下有node-export,windows下对应也有windows-export.本节就是主要来描述windows系统下的资源监控,从搭建到使用的全过程。(本节中提到的环境与实践操作命令等全是本人实际环境,类似的环境可以参考,不要一键复制粘贴到底哦,除了路径外还有有些命令可能会有点点差异。为避免执行失败,步骤操作可以参考,但不要一路不做修改复制粘贴到底哦。)
2. 环境准备
- 操作系统:windows11
- 使用工具:
- windows-exporter
(下载地址: https://github.com/prometheus-community/windows_exporter/releases)
- windows-exporter
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
说明:
- 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服务
选中服务,然后在右键菜单中点击属性,在属性对话框输入启动参数:
–telemetry.addr=127.0.0.1:9182
这里的IP地址,可以写虚拟机的实际地址,我本地PC就使用127.0.0.1
然后点击启动按钮,可以发现服务成功启动,如下图所示:
为了测试windows_exporter是否可以成功采集到监控数据,我们可以在浏览器里面访问下面的地址,来观察是否有数据返回,如果有,则说明服务启动、运行成功。
http://127.0.0.1:9182/metrics
如果想删除这个服务,只需要在服务列表里面将此服务停掉,然后服务启动设置为手动,最后在cmd命令行窗口输入下面的命令,即可删除服务。
sc delete windows_exporter
4.配置prometheus 采集windows_export监控数据
为方便后续持续添加更多的监控目标主机,将监控目标配置改基于文件(linux-targets.json、windows-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.csdn.net/cnskylee/article/details/125442012
https://blog.51cto.com/dusthunter/2558405