Basic authentication
Prometheus 支持使用 basic authentication(basic auth,即基本认证)以连接到 Prometheus 的表达式浏览器和 HTTP API。
注意:本教程涵盖了对 Prometheus 实例进行基本认证的连接。基本认证也支持从 Prometheus 实例到抓取 Target 的连接。
密码散列
现在假设你希望所有访问 Prometheus 实例的用户提供用户名和密码。对于这个示例,请使用admin
作为用户名,并选择任意密码。
首先,使用 bcrypt 生成密码的散列。为了生成散列密码,我们将使用 python3-bcrypt。
如果你正在运行一个类似于 Debian 的发行版,则可以通过运行apt install python3-bcrypt
来安装它。其他替代方案也可以用于生成散列密码,在测试时,你可以使用网络上的 bcrypt 生成器。
以下是一个使用 python3-bcrypt 提示输入密码并对其进行散列的 Python 脚本:
将此脚本保存为 gen-pass.py
并运行它:
根据提示输入你的密码:
在这个例子中,我们使用了 “test” 作为密码。现在,将这个散列后的密码保存在某个位置,因为接下来的步骤中也会用到它!
创建 web.yml 文件
让我们创建一个 web.yml 文件,内容如下:
你可以使用 promtool check web-config web.yml
验证该文件的格式。
你可以向文件中添加多个用户。
启动 Prometheus
可以使用 web 配置文件启动 Prometheus,如下所示:
测试
你可以使用 cURL 与你配置的 Prometheus 进行交互。尝试以下命令:
这将会返回401 Unauthorized
响应,因为你没有提供有效的用户名和密码。
要成功访问使用 basic auth 的 Prometheus 端点,例如/metrics
端点,请使用-u
标志提供正确的用户名,并在后续提示中提供密码:
这应返回 Prometheus 的元数据,看起来类似:
概述
在这篇指南中,你将用户名和散列后的密码存储在web.yml
文件中,并通过参数将这些信息用于访问使用 basic auth 的 Prometheus 的 HTTP 端点。
该文档基于 Prometheus 官方文档翻译而成。