官方配置说明:
Basic auth | Prometheus
一、生成密码加密串
Prometheus于2.24版本(包括2.24)之后提供Basic Auth功能进行加密访问,在浏览器登录UI的时候需要输入用户密码,访问Prometheus api的时候也需要加上用户密码。
使用python脚本,生成加密密码串
import getpass
import 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,然后添加步骤一生成的密码加密串
basic_auth_users:
admin: $2b$12$/cUMX6b8JAu9onTddMfHAetdlOJS9XU....................
保存文件后,使用promtool工具对文件进行校验
promtool check web-config /etc/prometheus/web.yml
输出SUCCESS表示校验通过
以上准备工作完成后,最后在启动的命令脚本中,需加入web.config.file的配置参数
我本地是将启动脚本配置成服务启动,所以在服务脚本中加入参数即可
然后重新加载服务脚本:systemctl daemon-reload
再重启服务:systemctl restart prometheus
最后再进行验证
现在就需要输入账号密码验证
登录后,查看target会发现,Prometheus的自检节点无法通过校验
这是因为节点在获取metrics接口时未配置basic auth认证校验,只需要在服务端将账号密码配置上就行
注意的是,密码是加密前的明文密码,配置完成后重启服务就正常了。