作为监视 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 中使用过 Node Exporter,但在 Linux 中,你的 Web.yml 配置文件应该如下:
basic_auth_users:
<string>: <secret>
像这样: basic_auth_users: 刮刀:$2a$14$AWpxyT1KcRPSE07IfmqTqOZznpMfGwxHP8uPVQV8G0qdjggND3hgC
我正在寻找与您提到的相同的搜索,即在 Windows-Exporter 上启用基本身份验证以保护 Windows 和 Prometheus 之间的节点。
我找不到任何直接的答案。然后我按照与 security node_exporter 相同的方式进行了尝试,结果成功了。下面提到的主要步骤
首先从某个 Linux 机器生成加密的 htpasswed。可以使用命令
htpasswd -nBC 10“” | tr-d': ';回声
现在在 Windows 中创建一个 .yaml 文件(并提及用户名以及上面的加密密码。就像
C:\windows_exporte