无法在 Windows-Exporter 上启用基本身份验证以保护 Windows 和 Prometheus 之间的节点

问题描述 投票:0回答:2

作为监视 Windows 服务器状态(CPU、磁盘使用情况、内存、网络等)的测试环境,我放置了两个测试节点,并在自定义端口上配置了 Windows-Exporter:15000

接下来,我为每个单独的 Windows 实例创建了适当的作业,并在 Grafana 中创建了仪表板。

问题是我正在寻找安全节点,因此只有 Prometheus 服务器可以访问节点输出,而同一网络中的所有其他计算机都被拒绝访问节点网站。

我尝试安装 Windows Node,设置如下:

msiexec /i windows_exporter-0.19.0-amd64.msi LISTEN_PORT="15000" EXTRA_FLAGS="--web.config.file=C:\Configuration\web.yml"

以及在命令行中为 EXTRA_FLAGS 参数使用不同的“和”配置 - 但似乎它们被忽略了。唯一工作正常的参数是监听端口的更改。

我已按照 https://prometheus.io/docs/guides/basic-auth/ 提供的说明设置基本身份验证。

Web.yml 看起来像这样:

 basic_auth:
      username: 'scrapper'
      password: '$2a$14$AWpxyT1KcRPSE07IfmqTqOZznpMfGwxHP8uPVQV8G0qdjggND3hgC'

但是,使用

msiexec
安装后 - windows_exporter 的 Windows 服务中的条目没有 web.config.file 条目:

"C:\Program Files\windows_exporter\windows_exporter.exe" --log.format logger:eventlog?name=windows_exporter --telemetry.addr 0.0.0.0:15000

我尝试使用

sc
命令编辑服务条目,但它完全破坏了节点,使我回滚到对节点的不受保护的访问。

基本身份验证在 windows-exporter 上的工作方式与在 Linux 操作系统的 node-exporter 上的工作方式相同吗? 或者是否有其他可能的方法来安全访问节点公开的数据而无需安装 IIS?

windows-services windows-installer prometheus prometheus-node-exporter
2个回答
0
投票

我从未在 Windows 中使用过 Node Exporter,但在 Linux 中,你的 Web.yml 配置文件应该如下:

 basic_auth_users:
        <string>: <secret>

像这样: basic_auth_users: 刮刀:$2a$14$AWpxyT1KcRPSE07IfmqTqOZznpMfGwxHP8uPVQV8G0qdjggND3hgC


0
投票

我正在寻找与您提到的相同的搜索,即在 Windows-Exporter 上启用基本身份验证以保护 Windows 和 Prometheus 之间的节点。

我找不到任何直接的答案。然后我按照与 security node_exporter 相同的方式进行了尝试,结果成功了。下面提到的主要步骤

首先从某个 Linux 机器生成加密的 htpasswed。可以使用命令

htpasswd -nBC 10“” | tr-d': ';回声

现在在 Windows 中创建一个 .yaml 文件(并提及用户名以及上面的加密密码。就像

C:\windows_exporte

© www.soinside.com 2019 - 2024. All rights reserved.