菜单
开源

发现.nomad

discovery.nomad 允许您从 Nomad 的 Service API 中检索抓取目标。

用法

alloy
discovery.nomad "LABEL" {
}

参数

以下参数得到支持

名称类型描述默认值必需
serverstringNomad 服务器的地址。https://127.0.0.1:4646no
namespacestring要使用的 Nomad 命名空间。defaultno
regionstring要使用的 Nomad 区域。globalno
allow_stalebool允许从非领导者 Nomad 实例读取。trueno
tag_separatorstringPrometheus 标签中连接 Nomad 标签的分隔符。,no
refresh_intervalduration刷新容器列表的频率。"30s"no
bearer_token_filestring包含用于身份验证的托管令牌的文件的文件。no
bearer_tokensecret用于身份验证的托管令牌。no
enable_http2bool是否支持 HTTP2 请求。trueno
follow_redirectsbool是否应跟随服务器返回的重定向。trueno
proxy_urlstring用作请求的 HTTP 代理。no
no_proxystring用逗号分隔的 IP 地址、CIDR 表示法和域名列表,排除从中代理。no
proxy_from_environmentbool使用环境变量中指定的代理 URL。falseno
proxy_connect_headermap(list(secret))指定在连接请求期间发送给代理的头。no

以下提供最多一个

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

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

proxy_connect_header 应仅在配置了 proxy_urlproxy_from_environment 时进行配置。

区块

以下区块在 discovery.nomad 定义中受支持

层次结构区块描述必需
basic_authbasic_auth配置 basic_auth 以对端点进行身份验证。no
authorizationauthorization配置通用的端点授权。no
oauth2oauth2配置 OAuth2 以对端点进行身份验证。no
oauth2 > tls_configtls_config配置与端点连接的 TLS 设置。no
tls_configtls_config配置与端点连接的 TLS 设置。no

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

basic_auth 区块

名称类型描述默认值必需
password_filestring包含基本认证密码的文件。no
passwordsecret基本认证密码。no
usernamestring基本认证用户名。no

passwordpassword_file 是互斥的,并且在 basic_auth 块内只能提供其中一个。

authorization 区块

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

credentialcredentials_file 是互斥的,并且在 authorization 块内只能提供其中一个。

oauth2 区块

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

client_secretclient_secret_file 是互斥的,并且在 oauth2 块内只能提供其中一个。

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

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

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

proxy_connect_header 应仅在配置了 proxy_urlproxy_from_environment 时进行配置。

tls_config 区块

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

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

  • 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)

导出字段

以下字段是导出的,可以由其他组件引用

名称类型描述
targetslist(map(string))从 Nomad 服务器发现的集合。

每个目标包括以下标签

  • __meta_nomad_address:目标的服务地址。
  • __meta_nomad_dc:目标的数据中心名称。
  • __meta_nomad_namespace:目标的命名空间。
  • __meta_nomad_node_id:为目标定义的节点名称。
  • __meta_nomad_service:目标所属服务的名称。
  • __meta_nomad_service_address:目标的服务的地址。
  • __meta_nomad_service_id:目标的服务的ID。
  • __meta_nomad_service_port:目标的服务的端口号。
  • __meta_nomad_tags:目标标签列表,由标签分隔符连接。

组件健康状态

discovery.nomad只在给定无效配置时报告为不健康。在这种情况下,导出的字段保留其最后健康值。

调试信息

discovery.nomad不公开任何组件特定的调试信息。

调试指标

discovery.nomad不公开任何组件特定的调试指标。

示例

此示例从Nomad服务器发现目标

alloy
discovery.nomad "example" {
}

prometheus.scrape "demo" {
  targets    = discovery.nomad.example.targets
  forward_to = [prometheus.remote_write.demo.receiver]
}

prometheus.remote_write "demo" {
  endpoint {
    url = PROMETHEUS_REMOTE_WRITE_URL

    basic_auth {
      username = USERNAME
      password = PASSWORD
    }
  }
}

替换以下内容

  • PROMETHEUS_REMOTE_WRITE_URL:发送指标到的Prometheus远程写入兼容服务器的URL。
  • USERNAME:用于验证远程写入API的用户名。
  • PASSWORD:用于验证远程写入API的密码。

兼容组件

discovery.nomad导出可以由以下组件消费

注意

连接某些组件可能不合理,或者组件可能需要进一步的配置才能正确连接。请参阅链接文档以获取更多信息。