Project Icon

windows_exporter

Windows系统指标导出器 Prometheus Exporter

Windows_exporter是一款针对Windows系统的Prometheus指标导出工具。它提供多种收集器,可收集CPU、内存、磁盘、网络等系统指标,以及Active Directory、IIS、SQL Server等Windows服务指标。支持灵活配置收集器,提供MSI安装包和Docker镜像,适用于Windows Server 2016及更高版本。该工具作为Prometheus生态系统的一部分,可与Prometheus监控系统无缝集成,实现对Windows环境的全面监控。它采用Go语言开发,性能高效,资源占用低。用户可通过命令行参数或配置文件自定义收集器和监控指标,满足不同场景的需求。

windows_exporter

构建状态

适用于Windows机器的Prometheus导出器。

收集器

名称描述默认启用
adActive Directory 域服务
adcsActive Directory 证书服务
adfsActive Directory 联合身份验证服务
cache缓存指标
cpuCPU 使用率
cpu_infoCPU 信息
cs"计算机系统"指标(系统属性、CPU数量/总内存)
container容器指标
diskdrive磁盘驱动器指标
dfsrDFSR 指标
dhcpDHCP 服务器
dnsDNS 服务器
exchangeExchange 指标
fsrmquotaMicrosoft 文件服务器资源管理器 (FSRM) 配额收集器
hypervHyper-V 主机
iisIIS 站点和应用程序
licenseWindows 许可状态
logical_disk逻辑磁盘、磁盘 I/O
logon用户登录会话
memory内存使用指标
mscluster_clusterMSCluster 集群指标
mscluster_networkMSCluster 网络指标
mscluster_nodeMSCluster 节点指标
mscluster_resourceMSCluster 资源指标
mscluster_resourcegroupMSCluster 资源组指标
msmqMSMQ 队列
mssqlSQL Server 性能对象指标
netframework_clrexceptions.NET Framework CLR 异常
netframework_clrinterop.NET Framework 互操作指标
netframework_clrjit.NET Framework JIT 指标
netframework_clrloading.NET Framework CLR 加载指标
netframework_clrlocksandthreads.NET Framework 锁和线程指标
netframework_clrmemory.NET Framework 内存指标
netframework_clrremoting.NET Framework 远程处理指标
netframework_clrsecurity.NET Framework 安全检查指标
net网络接口 I/O
os操作系统指标(内存、进程、用户)
physical_disk物理磁盘指标
printer打印机指标
process每个进程的指标
remote_fxRemoteFX 协议 (RDP) 指标
scheduled_task计划任务指标
service服务状态指标
smbSMB 服务器
smbclientSMB 客户端
smtpIIS SMTP 服务器
system系统调用
tcpTCP 连接
teradici_pcoipTeradici PCoIP 会话指标
timeWindows 时间服务
[thermalzone](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.thermalzone.md热区信息
[terminal_services](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.terminal_services.md终端服务(RDS)
[textfile](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.textfile.md从文本文件读取Prometheus指标
[vmware_blast](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.vmware_blast.mdVMware Blast会话指标
[vmware](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.vmware.mdVMware客户端代理安装的性能计数器
查看每个收集器的链接文档以获取更多关于报告指标、配置设置和使用示例的信息。

过滤启用的收集器

默认情况下,windows_exporter 将公开所有启用收集器的指标。这是收集指标的推荐方式,以避免在比较不同系列的指标时出现错误。

对于高级用途,可以向 windows_exporter 传递一个可选的收集器列表来过滤指标。collect[] 参数可以多次使用。在 Prometheus 配置中,您可以在 抓取配置 下使用此语法。

  params:
    collect[]:
      - foo
      - bar

这对于让不同的 Prometheus 服务器从节点收集特定指标很有用。

标志

windows_exporter 接受用于配置某些行为的标志。下面列出了配置导出器全局行为的标志,而特定于收集器的标志则在上面相应的收集器文档中有所说明。

标志描述默认值
--web.listen-address导出器的主机:端口。:9182
--telemetry.path用于公开收集的指标的 URL 路径。/metrics
--telemetry.max-requests最大并发请求数。0 表示禁用。5
--collectors.enabled逗号分隔的要使用的收集器列表。使用 [defaults] 作为占位符,它会展开包含所有默认启用的收集器。[defaults]
--collectors.print如果为真,打印可用的收集器并退出。
--scrape.timeout-margin从客户端允许的超时时间中减去的秒数。调整以允许开销或高负载。0.5
--web.config.file用于设置 TLS 和身份验证的 web 配置
--config.file使用配置文件 从路径或 URL
--config.file.insecure-skip-verify从 URL 加载配置文件时跳过 TLSfalse

安装

可以从 releases 页面 下载最新版本。

每个版本都提供一个 .msi 安装程序。安装程序将把 windows_exporter 设置为 Windows 服务,并在 Windows 防火墙中创建一个例外。

如果安装程序在没有任何参数的情况下运行,导出器将使用默认设置运行,包括启用的收集器、端口等。以下参数可用:

名称描述
ENABLED_COLLECTORS--collectors.enabled 标志相同,提供逗号分隔的启用收集器列表
LISTEN_ADDR要绑定的 IP 地址。默认为空字符串(任何本地地址)
LISTEN_PORT要绑定的端口。默认为 9182
METRICS_PATH提供指标的路径。默认为 /metrics
TEXTFILE_DIRS使用 --collector.textfile.directories 标志指定一个或多个目录,用逗号分隔,收集器应该在这些目录中读取包含指标的文本文件
REMOTE_ADDR允许为 Windows 防火墙例外(允许列表)设置逗号分隔的远程 IP 地址。默认为空字符串(任何远程地址)
EXTRA_FLAGS允许传递完整的 CLI 标志。默认为空字符串
ADD_FIREWALL_EXCEPTION为 windows_exporter 设置防火墙例外。默认为 yes
ENABLE_V1_PERFORMANCE_COUNTERS在现代系统上启用 V1 性能计数器。默认为 yes

参数通过 msiexec 发送给安装程序。示例调用:

msiexec /i <path-to-msi-file> ENABLED_COLLECTORS=os,iis LISTEN_PORT=5000

带有自定义查询的服务收集器示例。

msiexec /i <path-to-msi-file> ENABLED_COLLECTORS=os,service --% EXTRA_FLAGS="--collector.service.services-where ""Name LIKE 'sql%'"""

在一些较旧的 Windows 版本上,您可能需要用双引号将参数值括起来,以使安装命令正确解析:

msiexec /i C:\Users\Administrator\Downloads\windows_exporter.msi ENABLED_COLLECTORS="ad,iis,logon,memory,process,tcp,textfile,thermalzone" TEXTFILE_DIRS="C:\custom_metrics\"

要安装导出器并创建防火墙例外,请使用以下命令:

msiexec /i <path-to-msi-file> ADD_FIREWALL_EXCEPTION=yes

要修复安装,例如强制重新创建 Windows 服务:

msiexec /fa <path-to-msi-file>

Powershell 7.3 及以上版本在使用 --% EXTRA_FLAGS 时需要将 PSNativeCommandArgumentPassing 设置为 Legacy

$PSNativeCommandArgumentPassing = 'Legacy'
msiexec /i <path-to-msi-file> ENABLED_COLLECTORS=os,service --% EXTRA_FLAGS="--collector.service.services-where ""Name LIKE 'sql%'"""

Docker 实现

windows_exporter 可以作为 Docker 容器运行。Docker 镜像可在以下位置获取:

标签

Docker 镜像使用导出器的版本进行标记。latest 标签也可用,指向最新版本。

此外,带有 -hostprocess 后缀的 hostprocess 风格基于 https://github.com/microsoft/windows-host-process-containers-base-image, 设计用于作为 Windows 主机进程容器运行。该镜像的大小比默认镜像小。

Kubernetes 实现

有关在 Windows Kubernetes 上安装的详细步骤,请参见此处

支持的版本

windows_exporter 支持 Windows Server 2016 及更高版本,以及桌面版 Windows 10 和 11(21H2 或更高版本)。

Windows Server 2012 和 2012R2 仅作为尽力而为的支持,不保证可以工作。

使用方法

go get -u github.com/prometheus/promu
go get -u github.com/prometheus-community/windows_exporter
cd $env:GOPATH/src/github.com/prometheus-community/windows_exporter
promu build -v
.\windows_exporter.exe

Prometheus指标将在localhost:9182上公开

示例

仅启用服务收集器并指定自定义查询

.\windows_exporter.exe --collectors.enabled "service" --collector.service.services-where "Name='windows_exporter'"

仅启用进程收集器并指定自定义查询

.\windows_exporter.exe --collectors.enabled "process" --collector.process.include="firefox.+"

当有多个同名进程时,WMI会将第一个实例之后的进程表示为process-name#index。因此,要获取所有进程而不仅仅是第一个,正则表达式必须使用.+。更多信息请参阅process

将[defaults]与--collectors.enabled参数一起使用

[defaults]--collectors.enabled参数一起使用,该参数会扩展为所有默认收集器。

.\windows_exporter.exe --collectors.enabled "[defaults],process,container"

这会在默认收集器之上额外启用进程和容器收集器。

使用配置文件

可以使用--config.file标志指定YAML配置文件。例如:.\windows_exporter.exe --config.file=config.yml。如果使用绝对路径,请确保用引号括起路径,例如:.\windows_exporter.exe --config.file="C:\Program Files\windows_exporter\config.yml"

也可以从URL加载配置。例如:.\windows_exporter.exe --config.file="https://example.com/config.yml"

如果需要跳过TLS验证,可以使用--config.file.insecure-skip-verify标志。例如:.\windows_exporter.exe --config.file="https://example.com/config.yml" --config.file.insecure-skip-verify

collectors:
  enabled: cpu,cs,net,service
collector:
  service:
    services-where: "Name='windows_exporter'"
log:
  level: warn

一个示例配置文件可以在这里找到。

配置文件注意事项

配置文件值可以与CLI标志混合使用。例如:

.\windows_exporter.exe --collectors.enabled=cpu,logon

log:
  level: debug

CLI标志的优先级高于配置文件中指定的值。

许可证

基于MIT

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号