跳到主要内容

基本认证设置

在 Prometheus 中,基本认证(Basic Authentication)是一种简单而有效的方式,用于保护您的监控系统免受未经授权的访问。通过启用基本认证,您可以确保只有经过身份验证的用户才能访问 Prometheus 的 Web UI 或 API。

什么是基本认证?

基本认证是一种 HTTP 身份验证机制,它要求用户在访问受保护的资源时提供用户名和密码。这些凭据会通过 HTTP 请求头中的 Authorization 字段发送到服务器。服务器会验证这些凭据,如果验证通过,则允许用户访问资源。

备注

基本认证虽然简单易用,但它的安全性较低,因为用户名和密码是以 Base64 编码的形式传输的,容易被拦截和解码。因此,建议在生产环境中结合 HTTPS 使用基本认证。

在 Prometheus 中配置基本认证

要在 Prometheus 中启用基本认证,您需要编辑 Prometheus 的配置文件(通常是 prometheus.yml),并添加相应的配置。

1. 创建用户凭据文件

首先,您需要创建一个包含用户名和密码的文件。Prometheus 使用 htpasswd 工具来生成这些凭据。如果您没有安装 htpasswd,可以通过以下命令安装:

bash
sudo apt-get install apache2-utils  # 对于 Debian/Ubuntu 系统
sudo yum install httpd-tools # 对于 CentOS/RHEL 系统

然后,使用以下命令生成凭据文件:

bash
htpasswd -c /etc/prometheus/.htpasswd myuser

这将提示您输入密码,并在 /etc/prometheus/.htpasswd 文件中存储用户名和加密后的密码。

2. 配置 Prometheus

接下来,您需要在 prometheus.yml 文件中添加基本认证的配置。以下是一个示例配置:

yaml
scrape_configs:
- job_name: 'prometheus'
basic_auth:
username: myuser
password: mypassword
static_configs:
- targets: ['localhost:9090']

在这个配置中,basic_auth 部分指定了用户名和密码。Prometheus 将使用这些凭据来验证对目标的访问。

3. 重启 Prometheus

完成配置后,您需要重启 Prometheus 以使更改生效:

bash
sudo systemctl restart prometheus

实际应用场景

假设您有一个 Prometheus 实例运行在公共云上,并且您希望限制对 Prometheus Web UI 的访问。通过启用基本认证,您可以确保只有知道用户名和密码的用户才能访问 Web UI。

例如,您可以在 prometheus.yml 中添加以下配置:

yaml
web:
basic_auth:
username: admin
password: securepassword

这样,当用户尝试访问 Prometheus Web UI 时,浏览器会弹出一个登录框,要求输入用户名和密码。

总结

基本认证是保护 Prometheus 实例的一种简单方法。通过配置用户名和密码,您可以限制对 Prometheus Web UI 和 API 的访问。然而,由于基本认证的安全性较低,建议在生产环境中结合 HTTPS 使用。

附加资源

练习

  1. 在本地 Prometheus 实例上启用基本认证,并尝试访问 Web UI。
  2. 使用 htpasswd 工具创建多个用户,并配置 Prometheus 以支持多用户认证。
  3. 结合 HTTPS 配置基本认证,并测试其安全性。

通过完成这些练习,您将更好地理解如何在 Prometheus 中配置和使用基本认证。