prometheus设置用户名密码

本文详细指导如何在Prometheus中使用web.yml文件存储用户名和散列密码进行身份验证,包括哈希密码过程、创建web.yml配置、启动Prometheus并进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明

在本指南中,您将用户名和散列密码存储在web.yml文件,使用该文件中的凭证对访问prometheus HTTP端点的用户进行身份验证根据参数–web.config.file启动prometheus.

散列密码

假设您希望所有访问Prometheus实例的用户都提供用户名和密码。对于此示例,请使用admin作为用户名,并选择任何你想要的密码。

首先,生成一个bcrypt密码的哈希。为了生成散列密码,我们将使用python3-bcrypt。(安装python3环境)

让我们通过运行来安装它sudo dnf install python3-bcrypt.x86_64

下面是一个python脚本,它使用python3-bcrypt提示输入密码并对其进行哈希处理:

import getpass

import bcrypt

password = getpass.getpass("password: ")

hashed_password = bcrypt.hashpw(password.encode(“utf-8”), bcrypt.gensalt())

print(hashed_password.decode())

将脚本另存为gen-pass.py并运行它:

$ python3 gen-pass.py

这应该会提示您输入密码:

password:

$2b 12 12 12hNf2lSsxfm0.i4a.1kVpSOVyBCfIB51VRjgBUyv6kdnyTlgWj81Ay

在这个例子中,我使用“test”作为密码。

将密码保存在某个地方,我们将在接下来的步骤中使用它!

创建web.yml

让我们创建一个web.yml文件(证明文件),内容如下:

basic_auth_users:

admin: $2b 12 12 12hNf2lSsxfm0.i4a.1kVpSOVyBCfIB51VRjgBUyv6kdnyTlgWj81Ay

您可以使用以下命令来验证该文件promtool check web-config web.yml

$ promtool check web-config web.yml

web.yml SUCCESS

您可以向文件中添加多个用户。

启动普罗米修斯

可以使用web配置文件启动prometheus,如下所示:

$ prometheus --web.config.file=web.yml

测试

您可以使用CURL与您的设置进行交互。尝试以下请求:

curl --head http://localhost:9090/graph

这会返回一个401 Unauthorized因为您未能提供有效的用户名和密码。

要使用基本身份验证成功访问Prometheus端点,例如/metrics端点,使用提供正确的用户名-u出现提示时,标记并提供密码:

curl -u admin http://localhost:9090/metrics

Enter host password for user ‘admin’:

这将返回Prometheus metrics输出,类似于:

# HELP go_gc_duration_seconds A summary of the GC invocation durations.

# TYPE go_gc_duration_seconds summary

go_gc_duration_seconds{quantile=“0”} 0.0001343

go_gc_duration_seconds{quantile=“0.25”} 0.0002032

go_gc_duration_seconds{quantile=“0.5”} 0.0004485

### 回答1: Prometheus 自带的 Basic Authentication 可以通过在 Prometheus 配置文件中设置用户名密码来实现登录认证。对于密码,通常采用密文来存储。以下是一个示例配置: ``` # Prometheus 配置文件 global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: prometheus static_configs: - targets: ['localhost:9090'] basic_auth: username: "prometheus" password: "$2y$05$Hq3gW0xvK2B0uV7Kl8gRkuO7EfA5KcwBkpGtE5V5.5.VRh9x7bK8y" ``` 在上面的示例中,我们设置用户名为 "prometheus",密码为一个密文。请注意,密文是加密后的密码,不是明文。在生产环境中,建议采用安全的密码加密方式(例如 bcrypt)来存储密码。 ### 回答2: 在使用Prometheus自带的Basic Authentication进行登录认证时,用户名密码是以密文的形式进行设置的。下面是一个登录认证示例。 首先,我们需要在Prometheus配置文件中启用Basic Authentication功能,并设置用户名密码。可以通过编辑prometheus.yml文件,在其中添加以下内容: ``` ... basic_auth_users: - username: "密文用户名" password_hash: "密文密码" ... ``` 请注意,密文用户名和密文密码都需要进行相应的加密处理。 要设置密文用户名密码,可以使用htpasswd命令行工具进行加密。首先,确保已安装该工具。然后,运行以下命令: ``` $ htpasswd -nbB "用户名" "密码" ``` 这将生成一个密文字符串。将该密文字符串分别填入prometheus.yml文件的basic_auth_users部分的username和password_hash字段中。 保存并关闭prometheus.yml文件后,重启Prometheus服务器以使配置生效。 现在,当访问Prometheus时,会要求进行身份验证。可以在浏览器或使用HTTP客户端发送请求时,将用户名密码作为HTTP标头的Authorization字段进行传递,格式为"Basic base64(username:password)"。 以下是使用curl命令进行登录认证的示例: ``` $ curl -H "Authorization: Basic base64(用户名:密码)" http://localhost:9090/ ``` 在示例中,将"用户名"和"密码"替换为您自己的密文用户名密码。 如此配置后,只有提供正确的用户名密码才能成功访问Prometheus。这提供了一种加强安全性和保护数据的方法。 ### 回答3: 在使用Prometheus自带的Basic Authentication进行登录认证时,可以通过以下方式设置用户名密码为密文。 首先,我们需要在Prometheus配置文件中进行修改。打开Prometheus配置文件(通常命名为prometheus.yml),找到并添加以下配置: ``` basic_auth_users: - username: "密文用户名" password: "密文密码" ``` 在上述配置中,"密文用户名"是你想要设定的用户名的密文形式,"密文密码"是你想要设定的密码的密文形式。 在实际应用中,我们可以使用各种加密算法将用户名密码进行加密,例如使用SHA256算法,可以通过以下方法生成密文: 1. 打开终端或命令提示符。 2. 输入以下命令: ``` echo -n "用户名" | sha256sum ``` 3. 将生成的密文复制并替换配置文件中的"密文用户名"。 同样地,对于密码也可以使用相同的方法生成密文并替换配置文件中的"密文密码"。 完成以上步骤后,保存并重新启动Prometheus服务。此时,Prometheus将会使用我们设定的密文进行Basic Authentication验证。 需要注意的是,密文形式的用户名密码只在配置文件中存储,而在用户登录时需要输入明文的用户名密码Prometheus会在登录验证时将明文的用户名密码进行加密,并与配置文件中的密文进行比对来实现登录认证。这样可以更有效地保护用户的登录信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值