Windows Exporter

上一篇我们聊到了 Node Exporter ,这次我们看看在 Windows 下使用的 Exporter 。

Windows Exporter 由 Prometheus Community 维护,官方地址是:https://github.com/prometheus-community/windows_exporter 。 当前版本是 v0.16.0 ,发行于 2021.02.25 。

Windows Exporter 是一个采集 Windows 机器指标的采集器。支持 Windows Server 2008R2 以上版本或者 Windows 7 以上版本。

安装

Windows Exporter 在发布的是时候提供了两种格式的文件,分别是 *.exe*.msi

MSI (Microsoft Installers)是 Windows 的包管理器,类似于 Linux 的 rpm 。

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

我们在使用的时候可以选择任意一种格式来进行安装。

使用 MSI 不进行任何参数的指定的时候,他会安装在 C:\Program Files\windows_exporter\,启动参数是 C:\Program Files\windows_exporter\windows_exporter.exe" --log.format logger:eventlog?name=windows_exporter --telemetry.addr :9182

对于 Windows ,我们不建议这样部署。建议的部署方式是通过 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,thermalzone" TEXTFILE_DIR="C:\custom_metrics\"

如果你下载了 *.exe 包,也可以在放到指定目录以后通过如下命令将 windows_exporter 添加到 Windows 服务。

sc create windows_exporter binpath= "C:\Program Files\windows_exporter\windows_exporter.exe" --log.format logger:eventlog?name=windows_exporter  --telemetry.addr :9182" displayname= "windows_exporter" start= auto

只启用服务采集并指定自定义查询

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

只启用进程采集并指定自定义查询

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

使用 --collectors.enabled 参数打开默认采集选项

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

启动参数

windows_exporter 通过配置参数来决定启动后的行为。下面列出了Exporter 配置以后会全局剩下的一些参数以及默认值,而收集器特定的收集器在上面各自的收集器文档中进行了记录。

Flag Description Default value
--telemetry.addr host:port for exporter. :9182
--telemetry.path URL path for surfacing collected metrics. / metrics
--telemetry.max-requests Maximum number of concurrent requests. 0 to disable. 5
--collectors.enabled Comma-separated list of collectors to use. Use [defaults] as a placeholder which gets expanded containing all the collectors enabled by default." [defaults]
--collectors.print If true, print available collectors and exit.
--scrape.timeout-margin Seconds to subtract from the timeout allowed by the client. Tune to allow for overhead or high loads. 0.5
--web.config.file A web config for setting up TLS and Auth None

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

Name Description
ENABLED_COLLECTORS As the --collectors.enabled flag, provide a comma-separated list of enabled collectors
LISTEN_ADDR The IP address to bind to. Defaults to 0.0.0.0
LISTEN_PORT The port to bind to. Defaults to 9182.
METRICS_PATH The path at which to serve metrics. Defaults to /metrics
TEXTFILE_DIR As the --collector.textfile.directory flag, provide a directory to read text files with metrics from
REMOTE_ADDR Allows setting comma separated remote IP addresses for the Windows Firewall exception (whitelist). Defaults to an empty string (any remote address).
EXTRA_FLAGS Allows passing full CLI flags. Defaults to an empty string.

当使用 MSI 包安装的时候我们使用全部大写的参数,当使用 exe 包安装的时候,我们使用 -- 开头的参数来指定 windows_exporter 启动后的行为。

采集的指标

这个列表是 Windows Exporter 支持采集的指标,有一些指标是启动后缺省会打开的,有一些是需要手动打开的。 https://github.com/prometheus-community/windows_exporter#

默认情况下,windows_exporter 将暴露所有已采集的指标。这是收集指标的推荐方法,以避免在比较不同系列指标时出现错误。

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

  params:
    collect[]:
      - foo
      - bar

使用配置文件

Windows Exporter 支持使用 --config.file 参数来指定一个 YAML 格式的文件作为配置文件来启动,比如: .\windows_exporter.exe --config.file=config.yml .

这个配置文件支持配置要采集的指标类型、日志、 TLS 认证等内容。

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

# TLS and basic authentication configuration example.
#
# Additionally, a certificate and a key file are needed.
tls_server_config:
  cert_file: server.crt
  key_file: server.key

# Usernames and passwords required to connect.
# Passwords are hashed with bcrypt: https://github.com/prometheus/exporter-toolkit/blob/master/docs/web-configuration.md#about-bcrypt.
basic_auth_users:
  alice: $2y$10$mDwo.lAisC94iLAyP81MCesa29IzH37oigHC/42V2pdJlUprsJPze
  bob: $2y$10$hLqFl9jSjoAAy95Z/zw8Ye8wkdMBM8c5Bn1ptYqP/AXyV0.oy0S8m

更详细的配置可以参考 Web configuration

建议

在部署的时候建议使用 MSI 来部署方便一些,另外建议打开 textfile,并且使用 TEXTFILE_DIR 或者 --collector.textfile.directory 参数指定好目录,这样方便后期自定义指标的采集。另外建议使用配置文件启动,这样后期在增加监控项的时候可以不用重新修改 Windows 服务。

← Node Exporter| Windows Exporter | cAdvisor 容器信息采集 →

results matching ""

    No results matching ""