Prometheus basic auth实现用户密码登录

前提环境:

  • Prometheus
  • Grafana

涉及参考文档:

加载的 Web 配置文件,请使用该参数·。--web.config.file
在这里插入图片描述

一、生成加密哈希

1、 安装 httpd-tools 加密工具
yum install -y httpd-tools
2、自定义密码
htpasswd -nBC 12 '' | tr -d ':\n'

在这里插入图片描述

二、配置认证文件

basic_auth_users:
    admin: $2y$12$1807mv67DEse0l/jRXIHl.aytvO7bfellsEUZNfxIgH0ivQWqsqae

在这里插入图片描述

三、重启新Prometheus容器

新增参数: --web.config.file=认证文件名称

docker run --name Prometheus -d \
-v /data/docker_data/Promthues/data:/prometheus \
-v /data/docker_data/Promthues/conf:/etc/prometheus \
-p 9090:9090 prom/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--web.listen-address="0.0.0.0:9090" \
--storage.tsdb.path=/prometheus \
--web.console.libraries=/usr/share/prometheus/console_libraries \
--web.console.templates=/usr/share/prometheus/consoles \
--storage.tsdb.retention=30d \
--web.config.file=/etc/prometheus/web-config.yml \
--web.enable-lifecycle

注:
验证文件是否符合要求 语法

promtool check web-config web.yml

在这里插入图片描述

四、访问测试

1、命令行验证

cURL 与您的设置进行交互。请尝试此请求:

curl --head http://localhost:9090/graph

在这里插入图片描述
因为您未能提供有效的用户名和密码。401 Unauthorized

由此请求代入用户和密码,进行二次验证

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

在这里插入图片描述

注:Prometheus服务热加载
在这里插入图片描述

2、Web 界面验证

在这里插入图片描述

在这里插入图片描述

五、Grafana 数据源配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Prometheus 自带的 Basic Authentication 可以通过在 Prometheus 配置文件中设置用户名和密码实现登录认证。对于密码,通常采用密文来存储。以下是一个示例配置: ``` # Prometheus 配置文件 global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: prometheus static_configs: - targets: ['localhost:9090'] basic_auth: username: "prometheus" password: "$2y$05$Hq3gW0xvK2B0uV7Kl8gRkuO7EfA5KcwBkpGtE5V5.5.VRh9x7bK8y" ``` 在上面的示例中,我们设置了用户名为 "prometheus",密码为一个密文。请注意,密文是加密后的密码,不是明文。在生产环境中,建议采用安全的密码加密方式(例如 bcrypt)来存储密码。 ### 回答2: 在使用Prometheus自带的Basic Authentication进行登录认证时,用户名和密码是以密文的形式进行设置的。下面是一个登录认证示例。 首先,我们需要在Prometheus配置文件中启用Basic Authentication功能,并设置用户名和密码。可以通过编辑prometheus.yml文件,在其中添加以下内容: ``` ... basic_auth_users: - username: "密文用户名" password_hash: "密文密码" ... ``` 请注意,密文用户名和密文密码都需要进行相应的加密处理。 要设置密文用户名和密码,可以使用htpasswd命令行工具进行加密。首先,确保已安装该工具。然后,运行以下命令: ``` $ htpasswd -nbB "用户名" "密码" ``` 这将生成一个密文字符串。将该密文字符串分别填入prometheus.yml文件的basic_auth_users部分的username和password_hash字段中。 保存并关闭prometheus.yml文件后,重启Prometheus服务器以使配置生效。 现在,当访问Prometheus时,会要求进行身份验证。可以在浏览器或使用HTTP客户端发送请求时,将用户名和密码作为HTTP标头的Authorization字段进行传递,格式为"Basic base64(username:password)"。 以下是使用curl命令进行登录认证的示例: ``` $ curl -H "Authorization: Basic base64(用户名:密码)" http://localhost:9090/ ``` 在示例中,将"用户名"和"密码"替换为您自己的密文用户名和密码。 如此配置后,只有提供正确的用户名和密码才能成功访问Prometheus。这提供了一种加强安全性和保护数据的方法。 ### 回答3: 在使用Prometheus自带的Basic Authentication进行登录认证时,可以通过以下方式设置用户名和密码为密文。 首先,我们需要在Prometheus的配置文件中进行修改。打开Prometheus的配置文件(通常命名为prometheus.yml),找到并添加以下配置: ``` basic_auth_users: - username: "密文用户名" password: "密文密码" ``` 在上述配置中,"密文用户名"是你想要设定的用户名的密文形式,"密文密码"是你想要设定的密码的密文形式。 在实际应用中,我们可以使用各种加密算法将用户名和密码进行加密,例如使用SHA256算法,可以通过以下方法生成密文: 1. 打开终端或命令提示符。 2. 输入以下命令: ``` echo -n "用户名" | sha256sum ``` 3. 将生成的密文复制并替换配置文件中的"密文用户名"。 同样地,对于密码也可以使用相同的方法生成密文并替换配置文件中的"密文密码"。 完成以上步骤后,保存并重新启动Prometheus服务。此时,Prometheus将会使用我们设定的密文进行Basic Authentication验证。 需要注意的是,密文形式的用户名和密码只在配置文件中存储,而在用户登录时需要输入明文的用户名和密码Prometheus会在登录验证时将明文的用户名和密码进行加密,并与配置文件中的密文进行比对来实现登录认证。这样可以更有效地保护用户登录信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值