完整译文请访问:使用Basic认证保护Prometheus API和UI端点。
Prometheus不直接支持连接到Prometheus表达式浏览器和HTTP API的Basic认证。如果你希望对这些连接执行Basic认证,我们建议将Prometheus与反向代理结合使用,并在代理层添加身份认证。你可以使用Prometheus的任何反向代理,但在本指南中,我们将提供一个nginx示例。
注意:虽然不支持连接至Prometheus实例的Basic认证,但是支持Prometheus实例与抓取目标之间的Basic认证。
nginx示例
假设你希望在nginx服务器后端运行一个Prometheus实例 localhost:12321
,并且,所有Prometheus端点都通过/prometheus
端点进行访问。因此,Prometheus的/metrics
端点的完整URL应该是:
http://localhost:12321/prometheus/metrics
我们还假设所有访问Prometheus实例的用户都需要提供用户名和密码。对于本例,使用admin
作为用户名并选择你想要的任何密码。
首先,使用htpasswd
工具创建一个.htpasswd
文件来存储用户名和密码,并将其存储在/etc/nginx
目录中:
mkdir -p /etc/nginx
htpasswd -c /etc/nginx/.htpasswd admin
注意:本例使用/etc/nginx
作为nginx配置文件(包括.htpasswd
文件)的目录,但是根据安装的不同而有所不同。其他常见的nginx配置目录包括/usr/local/nginx/conf
和/usr/local/etc/nginx
。
nginx配置
下面是一个示例nginx.conf
配置文件(存储在/etc/nginx/.htpasswd
)。有了这个配置,nginx将强制所有连接到/prometheus
端点的请求执行Basic认证:
http {
server {
listen 12321;
location /prometheus {
auth_basic "Prometheus";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:9090/;
}
}
}
events {}
完整译文请访问:使用Basic认证保护Prometheus API和UI端点。
-------------------------------- END -------------------------------
及时获取更多精彩文章,请扫码关注如下公众号《云原生之家》: