Prometheus开启basic_auth认证
考虑将公司的联邦集群(pull)换成 remote_write(push)这种形式, 所以需要将 Prometheus 开放到公网,看了看认证相关的配置
也可以使用 Nginx 来反向代理,可以参考 Nginx开启基本http认证, 不过 Prometheus 原生带了 basic auth 和 ssl 认证, 官网的说明https://prometheus.io/docs/guides/basic-auth/
开启 web 配置文件
1 | ./prometheus --web.config.file="web.yml" --web.listen-address="0.0.0.0:9001" |
生成密码
密码需要 bcrypt 加密,这里使用 htpasswd
工具生成
1 | apt install apache2-utils |
1 | yum install httpd-tools |
1 | htpasswd -nB 'admin' |
web 配置文件
vim web.yml
1 | basic_auth_users: |
验证一下配置
1 | promtool check web-config web.yml |
remote write 访问
后面访问控制台页面或者调用接口都需要指定账号密码了
1 | curl -u admin:xxxxx http://localhost:9090 |
其他 Prometheus 如果需要往这台写入, 需要在其他的 Prometheus remote_write 配置认证
1 | remote_write: |
联邦配置
如果此 Prometheus 需要通过联邦机制接入到其他 Prometheus, 需要在对方的配置里面增加:
1 | - job_name: 'federate-http' |
启用了 Basic Auth 怎么健康检查
在 Kubernetes 环境下,配置如下:
1 | # 生成base64的账号密码编码 |
在 Liveness 和 Readness 配置
1 | httpGet: |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 杂烩饭!
评论