介绍
随着对外暴露的指标越来越多以及使用反馈,为保证数据安全现dameng_exporter已支持通过Basic Auth来保护metrics endpoint,防止未授权访问。
注:在dameng_exporter的v1.1.3版本新增用户权限认证功能。
生成加密密文
使用–encryptBasicAuthPwd参数生成bcrypt加密的密码:
[root@localhost dameng_exporter]# ./dameng_exporter_linux_amd64 --encryptBasicAuthPwd=Dameng123#
## 执行后会输出类似这样的结果:
Encrypted Basic Auth Password: $2a$12$6knT1Oz4elbt0/kaP/GXN.rC3rWOwNkCliGJGhcxz0A6y8lGxaTQe
配置dameng_exporter
在配置文件中新增添加以下内容,basicAuthUsername表示登录的用户名,basicAuthPassword表示加密后的密文
enableBasicAuth=true
basicAuthUsername=admin
basicAuthPassword=$2a$12$6knT1Oz4elbt0/kaP/GXN.rC3rWOwNkCliGJGhcxz0A6y8lGxaTQe
验证权限是否生效
修改配置文件以后,重启exporter,随后登录接口地址
登录以后,此时输入我们在配置文件配置的用户名的明文密码就可以登录了。
prometheus中配置权限认证
在Prometheus配置文件(prometheus.yml)中,在原有基础上添加basic auth配置。
注: 此处配置的password中的密码必须跟dameng_exporter.config中的password一致才行,否则认证会失败
scrape_configs:
# 添加的是数据库监控的接口9200接口,如果是一套集群,则在targets标签后进行逗号拼接,如下图所示
- job_name: "dm_db_single"
static_configs:
- targets: ["192.168.112.135:9200"]
labels:
cluster_name: '权限认证测试'
basic_auth:
username: "admin"
password: "$2a$12$6knT1Oz4elbt0/kaP/GXN.rC3rWOwNkCliGJGhcxz0A6y8lGxaTQe"