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



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

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

问题是,我正在寻找安全的节点,这样只有普罗米修斯服务器可以访问节点输出,而同一网络中的所有其他计算机都可以拒绝访问节点网站。

我已经尝试安装Windows节点设置:

msiexec /i windows_exporter-0.19.0-amd64.msi LISTEN_PORT="15000" EXTRA_FLAGS="--web.config.file=C:Configurationweb.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 Fileswindows_exporterwindows_exporter.exe" --log.format logger:eventlog?name=windows_exporter --telemetry.addr 0.0.0.0:15000

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

基本身份验证在windows导出器上的工作方式与在Linux操作系统的节点导出器上相同吗?或者,是否有其他可能的方法可以在不需要安装IIS的情况下确保对节点公开数据的访问安全?

我从未在Windows中使用过节点导出器,但在Linux中,您的Web.yml配置文件应该如下所示:

basic_auth_users:
<string>: <secret>

像这样:基本用户:废品机:$2a$14$AWpxyT1KcRPSE07IfmqTqOZnpMfGwxHP8uPVQV8G0qdjggND3hgC

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

我找不到任何直截了当的答案。然后我以与我是安全节点导出器相同的方式进行了尝试,结果成功了。以下是提到的主要步骤

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

htpasswd-nBC 10"|tr-d':\n';回波

现在在windows somewere中创建一个.yaml文件(并提到用户名和上面加密的密码

C: \windows_exporter\config.yaml基本用户:用户名:

现在,在安装Windows导出器时,通过EXTRA_FLAGS="指定该文件的路径--web.config.file=C:\windows_exporter\config.yaml">

就像我在命令下使用的一样

msiexec/i windows_exporter-0.23-amd64.msi ENABLED_COLLECTORS=";ad、adfs、缓存、cpu、cpu_info、cs、容器、dfsr、dhcp、dns、fsrmquota、iis、logical_disk、登录、内存、msmq、mssql、netframework_clrexceptions、netframeworks _clrinterop、netframework _clrjit、netframeork_clrloading、netframeworks_clrlock-and-threads、netramework_clrmemory、netframework_clrremoting、netframework_clrsecurity、net、os、process、remote_fx、service、tcp、time、vmware"quot;EXTRA_FLAGS="--web.config.file=C:\windows_exporter\config.yaml"LISTEN_ PORT=";9115〃;

现在,在promethues.yaml文件中的promethues服务器需要指定这个用户名密码,如下所示

  • 作业名称:"exporter_metrics";scrape_interval:5s基本身份(_A(:用户名:密码:<清除测试密码>文件配置:
    • 文件:
      • "windows.yml";relabel_configs:-source_labels:[地址]target_label:实例正则表达式:'([^:]+((:[0-9]+(?'替换:"${1}">

注意:在Prometheus.yaml中,密码将是明文格式。

最新更新