目录

Prometheus开启basic_auth认证

考虑将公司的联邦集群(pull)换成remote_write(push)这种形式, 所以需要将Prometheus开放到公网,看了看认证相关的配置

也可以使用Nginx来反向代理,可以参考 Nginx开启基本http认证, 不过Prometheus原生带了basic auth 和ssl认证

开启web配置文件

./prometheus --web.config.file="web.yml"  --web.listen-address="0.0.0.0:9001"

生成密码

密码需要bcrypt加密,这里使用htpasswd工具生成

htpasswd -nB '' | tr -d ':'

web配置文件

basic_auth_users:
  admin: $2y$05$UKSS18ztdsUNoEuXYScr2OE1TCMe1hWnmD6JuwUi/uPTJayHIakae

访问

后面访问控制台页面或者调用接口都需要指定账号密码了

curl -u admin:xxxxx http://localhost:9090

其他Prometheus如果需要往这台写入, 需要在remote_write配置认证

remote_write:
- url: "http://127.0.0.1:9090/api/v1/write"
  basic_auth:
    username: admin
    password: xxxxx
  remote_timeout: 30s
  tls_config:
    insecure_skip_verify: true
  queue_config:
    capacity: 500
    max_shards: 1000
    min_shards: 1
    max_samples_per_send: 100
    batch_send_deadline: 5s
    min_backoff: 30ms
    max_backoff: 100ms