#yyds干货盘点# Prometheus Exporter(二) Windows Exporter

网友投稿 837 2022-10-09

#yyds干货盘点# Prometheus Exporter(二) Windows Exporter

本文已经收录在 Prometheus 合集 Prometheus 都可以采集那些指标?-- 常用 Exporter 合集 中。

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

Windows Exporter 由 Prometheus Community 维护,官方地址是: 。 当前版本是 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 ENABLED_COLLECTORS=os,iis LISTEN_PORT=5000

带有自定义查询的服务指标收集部署示例。

msiexec /i 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 支持采集的指标,有一些指标是启动后缺省会打开的,有一些是需要手动打开的。将暴露所有已采集的指标。这是收集指标的推荐方法,以避免在比较不同系列指标时出现错误。

对于高级使用,可以向 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 服务。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用idea+gradle编译spring5.x.x源码分析
下一篇:#yyds干货盘点# Prometheus Exporter (一) Node Exporter
相关文章

 发表评论

暂时没有评论,来抢沙发吧~