Alertmanager 支持基本身份验证和 TLS。注意:这只是试验性的,将来可能会改变。
目前 TLS 支持 HTTP 流量和 Gossip 流量。
要指定加载哪个网络配置文件,请使用 --web.config.file 标志。
该文件以 YAML 格式编写,定义方案如下。括号表示参数为可选参数。对于非列表参数,其值将设置为指定的默认值。
每次 http 请求(如配置中的任何更改)都会读取该文件,并立即获取证书。
通用占位符的定义如下:
<boolean>:布尔值,取值为 true 或 false
<filename>:当前工作目录中的有效路径
<secret>:一个正则表达式字符串,例如密码
<string>:正则字符串
tls_server_config:
# 证书和密钥文件,供服务器用于向客户端进行身份验证。
cert_file: <filename>
key_file: <filename>
# 用于客户端身份验证的服务器策略。映射到 ClientAuth 策略。
# 有关 clientAuth 选项的更多详情:
# https://golang.org/pkg/crypto/tls/#ClientAuthType
#
# 注意:如果要启用客户端身份验证,则需要使用 RequireAndVerifyClientCert,其他值不安全。
[ client_auth_type: <string> | default = "NoClientCert" ]
# 用于向服务器进行客户端证书身份验证的 CA 证书。
[ client_ca_file: <filename> ]
# 可接受的最小 TLS 版本。
[ min_version: <string> | default = "TLS12" ]
# 可接受的最大TLS版本。
[ max_version: <string> | default = "TLS13" ]
# 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 控制服务器是选择客户端最偏好的密码套件,
# 还是选择服务器最偏好的密码套件。如果为 "true",则使用以 cipher_suites
# 中元素顺序表示的服务器首选项。
[ prefer_server_cipher_suites: <bool> | 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:
# 为 HTTP 响应设置 Content-Security-Policy 标头。
# 如果空白,则取消设置。
[ Content-Security-Policy: <string> ]
# 为 HTTP 响应设置 X-Frame-Options 标头。
# 如果为空,则取消设置。接受的值是 deny 和 sameorigin。
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
[ X-Frame-Options: <string> ]
# 为 HTTP 响应设置 X-Content-Type-Options 头信息。
# 如果为空,则取消设置。接受值为 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> ]
# 为 HTTP 响应设置 Strict-Transport-Security 头信息。
# 如果为空,则取消设置。
# 请务必谨慎使用,因为该标头可能会强制浏览器通过 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> ... ]要指定是否使用 TLS 进行 gossip 交互,请使用 --cluster.tls-config 标志。
gossip 的服务器端和客户端均可配置。
tls_server_config:
#服务器用于验证客户端身份的证书和密钥文件。
cert_file: <filename>
key_file: <filename>
# 用于客户端身份验证的服务器策略。映射到 ClientAuth 策略。
# 有关 clientAuth 选项的更多详情:
# https://golang.org/pkg/crypto/tls/#ClientAuthType
[ client_auth_type: <string> | default = "NoClientCert" ]
# CA 证书,用于客户端对服务器进行证书验证。
[ client_ca_file: <filename> ]
# 可接受的最低TLS版本。
[ min_version: <string> | default = "TLS12" ]
# 可接受的最大TLS版本。
[ max_version: <string> | default = "TLS13" ]
# TLS 1.2 及以下版本支持的密码套件列表。
# 如果为空,则使用 Go 默认的密码套件。可用的密码套件记录在 go 文档中:
# https://golang.org/pkg/crypto/tls/#pkg-constants
[ cipher_suites:
[ - <string> ] ]
# prefer_server_cipher_suites 控制服务器是选择客户端最偏好的密码套件,
# 还是选择服务器最偏好的密码套件。
# 如果为 "true",则使用以 cipher_suites 中元素顺序表示的服务器首选项。
[ prefer_server_cipher_suites: <bool> | default = true ]
# 将在 ECDHE 握手过程中使用的椭圆曲线,按优先顺序排列。可用的椭圆曲线记录在 go 文档中:
# https://golang.org/pkg/crypto/tls/#CurveID
[ curve_preferences:
[ - <string> ] ]
tls_client_config:
# 用于验证服务器证书的 CA 证书的路径。
[ ca_file: <filepath> ]
# 用于客户端认证服务器的证书和密钥文件。
[ cert_file: <filepath> ]
[ key_file: <filepath> ]
# 服务器名称扩展名,用于指示服务器名称。
# http://tools.ietf.org/html/rfc4366#section-3.1
[ server_name: <string> ]
# 禁用服务器证书的验证。
[ insecure_skip_verify: <boolean> | default = false]