prometheus添加基本认证

官方配置说明:

Basic auth | Prometheus

一、生成密码加密串

Prometheus于2.24版本(包括2.24)之后提供Basic Auth功能进行加密访问,在浏览器登录UI的时候需要输入用户密码,访问Prometheus api的时候也需要加上用户密码。

使用python脚本,生成加密密码串

1
import getpassimport bcrypt password = getpass.getpass("password: ")hashed_password = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt())print(hashed_password.decode())

将以上脚本复制保存为 getpass.py

然后通过cmd命令行执行脚本

python.exe getpass.py

执行脚本后,在password:后面输入你要设置的密码,然后就会生成一串加密的密码串,记录下该密码串,后面配置会使用到。

二、服务端配置

以我配置习惯为例,Prometheus服务端我默认将配置存放在 /etc/prometheus目录下

在该目录下新建文件 web.yml,然后添加步骤一生成的密码加密串

1
basic_auth_users:    admin: $2b$12$/cUMX6b8JAu9onTddMfHAetdlOJS9XU....................

保存文件后,使用promtool工具对文件进行校验

1
promtool check web-config /etc/prometheus/web.yml

 输出SUCCESS表示校验通过

以上准备工作完成后,最后在启动的命令脚本中,需加入web.config.file的配置参数

我本地是将启动脚本配置成服务启动,所以在服务脚本中加入参数即可

然后重新加载服务脚本:systemctl daemon-reload

再重启服务:systemctl restart prometheus

 最后再进行验证

现在就需要输入账号密码验证

登录后,查看target会发现,Prometheus的自检节点无法通过校验

这是因为节点在获取metrics接口时未配置basic auth认证校验,只需要在服务端将账号密码配置上就行

注意的是,密码是加密前的明文密码,配置完成后重启服务就正常了。

本文转自 https://blog.csdn.net/Hu_wen/article/details/136869252,如有侵权,请联系删除。


prometheus添加基本认证
https://blog.t-ao.cn/2025/06/19/prometheus添加基本认证(Basic auth)/
作者
TAO
发布于
2025年6月19日
许可协议