菜单
正式发布 (GA)

remotecfg 块

remotecfg 是一个可选配置块,它使 Alloy 能够从远程端点获取并加载配置。remotecfg 指定时没有标签,每个配置文件中只能提供一次。

用于管理和获取 remotecfg 块所用配置的API 定义在 Apache 2.0 许可证下可用。

示例

alloy
remotecfg {
    url = "SERVICE_URL"
    basic_auth {
        username      = "USERNAME"
        password_file = "PASSWORD_FILE"
    }

    id             = constants.hostname
    attributes     = {"cluster" = "dev", "namespace" = "otlp-dev"}
    poll_frequency = "5m"
}

参数

支持以下参数

名称类型描述默认值必需
urlstring用于轮询配置的 API 地址。""
idstring自报告 ID。见下文
attributesmap(string)一组自报告属性。{}
poll_frequencyduration轮询 API 获取新配置的频率。"1m"
namestring收集器的人类可读名称。""
bearer_token_filestring包含用于身份验证的持有者令牌的文件。
bearer_tokensecret用于身份验证的持有者令牌。
enable_http2bool请求是否支持 HTTP2。true
follow_redirectsbool是否应遵循服务器返回的重定向。true
http_headersmap(list(secret))随每个请求发送的自定义 HTTP 头部。 map 的键是头部名称。
proxy_urlstring用于发送请求的 HTTP 代理。
no_proxystring以逗号分隔的 IP 地址、CIDR 表示法和域名列表,用于排除代理。
proxy_from_environmentbool使用环境变量指示的代理 URL。false
proxy_connect_headermap(list(secret))指定在 CONNECT 请求期间发送到代理的头部。

如果未设置 url,则该服务块为空操作。

如果未设置,Alloy 使用的自报告 id 是一个随机生成的匿名唯一 ID (UUID),存储在 Alloy 存储路径的 alloy_seed.json 文件中,以便在重启后保持不变。您可以使用 name 字段为特定的 Alloy 实例设置另一个用户友好的标识符。

idattributes 字段用于发送到远程端点的定期请求中,以便 API 可以决定提供哪些配置。

attribute map 的键可以包含任何自定义值,但保留前缀 collector. 除外。保留的标签前缀用于自动系统属性。您不能覆盖此此缀。

  • collector.os:Alloy 运行的操作系统。
  • collector.version:Alloy 的版本。

poll_frequency 必须至少设置为 "10s"

最多可提供以下参数之一:

no_proxy 可以包含 IP、CIDR 表示法和域名。IP 和域名可以包含端口号。如果配置了 no_proxy,则必须配置 proxy_url

proxy_from_environment 使用环境变量 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY(或其小写版本)。请求使用与其方案匹配的环境变量中的代理,除非被 NO_PROXY 排除。如果配置了 proxy_from_environment,则不得配置 proxy_urlno_proxy

只有在配置了 proxy_urlproxy_from_environment 时,才应配置 proxy_connect_header

remotecfg 定义中支持以下块

层级描述必需
basic_authbasic_auth配置 basic_auth 以向端点进行身份验证。
authorizationauthorization配置通用的授权以向端点进行身份验证。
oauth2oauth2配置 OAuth2 以向端点进行身份验证。
oauth2 > tls_configtls_config配置用于连接到端点的 TLS 设置。
tls_configtls_config配置用于连接到端点的 TLS 设置。

符号 > 表示更深层次的嵌套。例如,oauth2 > tls_config 指的是在 oauth2 块内定义的 tls_config 块。

basic_auth 块

名称类型描述默认值必需
password_filestring包含 basic auth 密码的文件。
passwordsecretBasic auth 密码。
usernamestringBasic auth 用户名。

passwordpassword_file 互斥,在 basic_auth 块中只能提供其中一个。

authorization 块

名称类型描述默认值必需
credentials_filestring包含秘密值的文件。
credentialssecret秘密值。
typestring授权类型,例如“Bearer”。

credentialcredentials_file 互斥,在 authorization 块中只能提供其中一个。

oauth2 块

名称类型描述默认值必需
client_idstringOAuth2 客户端 ID。
client_secret_filestring包含 OAuth2 客户端密钥的文件。
client_secretsecretOAuth2 客户端密钥。
endpoint_paramsmap(string)要附加到令牌 URL 的可选参数。
proxy_urlstring用于发送请求的 HTTP 代理。
no_proxystring以逗号分隔的 IP 地址、CIDR 表示法和域名列表,用于排除代理。
proxy_from_environmentbool使用环境变量指示的代理 URL。false
proxy_connect_headermap(list(secret))指定在 CONNECT 请求期间发送到代理的头部。
scopeslist(string)用于身份验证的作用域列表。
token_urlstring获取令牌的 URL。

client_secretclient_secret_file 互斥,在 oauth2 块中只能提供其中一个。

oauth2 块还可以包含一个单独的 tls_config 子块。

no_proxy 可以包含 IP、CIDR 表示法和域名。IP 和域名可以包含端口号。如果配置了 no_proxy,则必须配置 proxy_url

proxy_from_environment 使用环境变量 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY(或其小写版本)。请求使用与其方案匹配的环境变量中的代理,除非被 NO_PROXY 排除。如果配置了 proxy_from_environment,则不得配置 proxy_urlno_proxy

只有在配置了 proxy_urlproxy_from_environment 时,才应配置 proxy_connect_header

tls_config 块

名称类型描述默认值必需
ca_pemstring用于验证服务器的 CA PEM 编码文本。
ca_filestring用于验证服务器的 CA 证书。
cert_pemstring用于客户端身份验证的证书 PEM 编码文本。
cert_filestring用于客户端身份验证的证书文件。
insecure_skip_verifybool禁用服务器证书验证。
key_filestring用于客户端身份验证的密钥文件。
key_pemsecret用于客户端身份验证的密钥 PEM 编码文本。
min_versionstring可接受的最低 TLS 版本。
server_namestring用于指示服务器名称的 ServerName 扩展。

以下参数对互斥,不能同时设置:

  • ca_pemca_file
  • cert_pemcert_file
  • key_pemkey_file

配置客户端身份验证时,必须同时提供客户端证书(使用 cert_pemcert_file)和客户端密钥(使用 key_pemkey_file)。

未提供 min_version 时,可接受的最低 TLS 版本继承自 Go 的默认最低版本 TLS 1.2。如果提供了 min_version,则必须设置为以下字符串之一:

  • "TLS10" (TLS 1.0)
  • "TLS11" (TLS 1.1)
  • "TLS12" (TLS 1.2)
  • "TLS13" (TLS 1.3)