HTTPS 与鉴权
Prometheus 支持基本身份验证(basic authentication)和 TLS。
这是实验性功能,在将来可能会被更改。
要指定要加载的 Web 配置文件,请使用--web.config.file
标志。
配置文件以 YAML 格式编写,由下文描述的方案定义。括号表示参数是可选的。对于没有被列出的参数,值会被设定为其指定的默认值。
每次进行 HTTP 请求时都会读取该文件,因此任何配置和证书更改都会立即被捕获到。
通用占位符定义如下:
<boolean>
:可以取值为true
或false
的布尔值<filename>
:当前工作目录中的有效路径<secret>
:如密码之类的常规字符串<string>
:常规字符串
一个有效的示例文件可以在这里找到:
tls_server_config: # 服务器用于向客户端认证的证书和密钥文件。 cert_file: <filename> key_file: <filename>
# 服务器策略用于客户端认证。映射到 ClientAuth 策略。 # 对于客户端认证选项的详细信息,请参阅: # https://golang.org/pkg/crypto/tls/#ClientAuthType # # 注意:如果你希望启用客户端认证,则需要使用 RequireAndVerifyClientCert。其他值不安全。 [ client_auth_type: <string> | default = "NoClientCert" ]
# 客户端证书用于向服务器认证的 CA 证书。 [ client_ca_file: <filename> ]
# 检查客户端证书是否具有与此列表中的条目完全匹配的 Subject Alternate Name (SAN),否则终止连接。 # SAN 匹配可以是以下之一:DNS、IP、电子邮件或 https://pkg.go.dev/crypto/x509#Certificate 中所述的 URI 地址。 [ client_allowed_sans: [ - <string> ] ]
# 可接受的最低 TLS 版本。 [ min_version: <string> | default = "TLS12" ]
# 可接受的最大 TLS 版本。 [ max_version: <string> | default = "TLS13" ]
# TLS版本至TLS 1.2支持的加密套件列表。如果为空,则使用 Go 默认加密套件。可用的加密套件在 Go 文档中进行了说明: # https://golang.org/pkg/crypto/tls/#pkg-constants # # 注意,仅支持以下函数返回的加密套件: # https://pkg.go.dev/crypto/tls#CipherSuites [ cipher_suites: [ - <string> ] ]
# prefer_server_cipher_suites 控制服务器是否选择客户端最首选的加密套件或服务器最首选的加密套件。如果为真,则使用服务器的偏好, # 即 cipher_suites 中元素的顺序。 [ prefer_server_cipher_suites: <boolean> | default = true ]
# 在 ECDHE 握手中使用的椭圆曲线,按优先级排序。可用曲线在 Go 文档中进行了说明: # https://golang.org/pkg/crypto/tls/#CurveID [ curve_preferences: [ - <string> ] ]
http_server_config: # 启用 HTTP/2 支持。注意,HTTP/2 只在 TLS 上支持。 # 这不能在运行时更改。 [ http2: <boolean> | default = true ] # 可添加到 HTTP 响应的头部列表。 [ headers: # 将 Content-Security-Policy 头设置到 HTTP 响应中。 # 如果空白则取消设置。 [ Content-Security-Policy: <string> ] # 将 X-Frame-Options 头设置到 HTTP 响应中。 # 如果空白则取消设置。接受的值为 deny 和 sameorigin。 # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options [ X-Frame-Options: <string> ] # 将 X-Content-Type-Options 头设置到 HTTP 响应中。 # 如果空白则取消设置。接受的值为 nosniff。 # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options [ X-Content-Type-Options: <string> ] # 将 X-XSS-Protection 头设置到所有响应中。 # 如果空白则取消设置。 # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection [ X-XSS-Protection: <string> ] # 将 Strict-Transport-Security 头设置到 HTTP 响应中。 # 如果空白则取消设置。 # 请注意,务必谨慎使用此标头,因为它可能会强制浏览器通过 HTTPS 加载 Prometheus 以及同一域和子域上的其他应用程序。 # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security [ Strict-Transport-Security: <string> ] ]
# 具有通过基本身份验证访问 Web 服务器的完整权限的用户名和哈希密码。# 如果为空,则不需要基本身份验证。密码使用 bcrypt 进行哈希处理。basic_auth_users: [ <string>: <secret> ... ]
该文档基于 Prometheus 官方文档翻译而成。