prometheus.exporter.blackbox
prometheus.exporter.blackbox
组件嵌入了 blackbox_exporter
。blackbox_exporter
使您可以收集黑盒指标(探针),并将它们作为 Prometheus 指标公开。
用法
prometheus.exporter.blackbox "LABEL" {
target {
name = "example"
address = "EXAMPLE_ADDRESS"
}
}
或
prometheus.exporter.blackbox "LABEL" {
targets = TARGET_LIST
}
参数
以下参数可用于配置导出器的行为。省略的字段将采用其默认值。
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
config_file | string | blackbox_exporter 配置文件路径。 | 否 | |
config | string 或 secret | 作为内联字符串的 blackbox_exporter 配置。 | 否 | |
probe_timeout_offset | duration | 探测目标时从超时中减去的秒数偏移量。 | "0.5s" | 否 |
targets | list(map(string)) | Blackbox 目标。 | 否 |
必须指定 config_file
或 config
之一。config_file
参数指向一个 YAML 文件,该文件定义要使用的 blackbox_exporter
模块。config
参数必须是一个 YAML 文档字符串,定义要使用的 blackbox_exporter
模块。config
通常通过使用另一个组件的导出加载。例如,
local.file.LABEL.content
remote.http.LABEL.content
remote.s3.LABEL.content
在同一配置文件中,您不能同时使用 targets
参数和 target 块。当 blackbox 目标无法作为目标块传递时,必须使用 targets
参数,因为另一个组件提供了它们。
您可以为目标设置以下标签
name
:要探测的目标的名称(必需)。address
:要探测的目标的地址(必需)。module
:用于探测的 blackbox 模块。
组件将任何其他标签传递给导出的目标。
有关生成配置文件的更多信息,请参阅 blackbox_exporter
。
块
在 prometheus.exporter.blackbox
的定义中支持以下块,以配置特定于收集器的选项
层级结构 | 名称 | 描述 | 必需 |
---|---|---|---|
target | target | 配置 Blackbox 目标。 | 否 |
target 块
target
块定义了一个单独的 blackbox 目标。target
块可以多次指定以定义多个目标。name
属性是必需的,将在目标的 job
标签中使用。
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
name | string | 要探测的目标的名称。 | 是 | |
address | string | 要探测的目标的地址。 | 是 | |
module | string | 用于探测的 Blackbox 模块。 | "" | 否 |
labels | map(string) | 要添加到目标的标签。 | 否 |
在 labels
参数中指定的标签不会覆盖 blackbox_exporter
设置的标签。
导出的字段
以下字段已导出,可以被其他组件引用。
名称 | 类型 | 描述 |
---|---|---|
targets | list(map(string)) | 可用于收集导出器指标的目标。 |
例如,targets
可以传递给 discovery.relabel
组件以重写目标的标签集,或者传递给 prometheus.scrape
组件以收集公开的指标。
导出的目标使用由 run 命令 指定的配置的 内存流量 地址。
组件健康状况
仅当 prometheus.exporter.blackbox
获得无效配置时,才报告为不健康。在这些情况下,导出的字段会保留其上次的健康值。
调试信息
prometheus.exporter.blackbox
不会公开任何特定于组件的调试信息。
调试指标
prometheus.exporter.blackbox
不会公开任何特定于组件的调试指标。
示例
使用 blackbox 导出器配置文件收集指标
此示例使用 prometheus.scrape
组件 从 prometheus.exporter.blackbox
收集指标。它向 grafana
目标发出的指标添加了一个额外的标签 env="dev"
。example
目标没有任何添加的标签。
config_file
参数用于定义要使用的 blackbox_exporter
模块。您可以使用 blackbox 示例配置文件。
prometheus.exporter.blackbox "example" {
config_file = "blackbox_modules.yml"
target {
name = "example"
address = "https://example.com"
module = "http_2xx"
}
target {
name = "grafana"
address = "https://grafana.org.cn"
module = "http_2xx"
labels = {
"env" = "dev",
}
}
}
// Configure a prometheus.scrape component to collect blackbox metrics.
prometheus.scrape "demo" {
targets = prometheus.exporter.blackbox.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 remote_write 兼容服务器的 URL,用于将指标发送到该服务器。USERNAME
:用于向remote_write
API 进行身份验证的用户名。PASSWORD
:用于向remote_write
API 进行身份验证的密码。
使用嵌入式配置收集指标
此示例使用嵌入式配置
prometheus.exporter.blackbox "example" {
config = "{ modules: { http_2xx: { prober: http, timeout: 5s } } }"
target {
name = "example"
address = "https://example.com"
module = "http_2xx"
}
target {
name = "grafana"
address = "https://grafana.org.cn"
module = "http_2xx"
labels = {
"env" = "dev",
}
}
}
// Configure a prometheus.scrape component to collect blackbox metrics.
prometheus.scrape "demo" {
targets = prometheus.exporter.blackbox.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
}
}
}
从动态目标集收集指标
此示例与上面的示例相同,但是 blackbox 目标是通过 discovery.file
组件 发现的,并发送到 prometheus.exporter.blackbox
discovery.file "example" {
files = ["targets.yml"]
}
prometheus.exporter.blackbox "example" {
config = "{ modules: { http_2xx: { prober: http, timeout: 5s } } }"
targets = discovery.file.example.targets
}
prometheus.scrape "example" {
targets = prometheus.exporter.blackbox.example.targets
forward_to = [prometheus.remote_write.example.receiver]
}
prometheus.remote_write "example" {
endpoint {
url = PROMETHEUS_REMOTE_WRITE_URL
basic_auth {
username = USERNAME
password = PASSWORD
}
}
}
此示例中的 YAML 文件如下所示
- targets:
- localhost:9009
labels:
name: t1
module: http_2xx
other_label: example
- targets:
- localhost:9009
labels:
name: t2
module: http_2xx
替换以下内容
PROMETHEUS_REMOTE_WRITE_URL
:Prometheus remote_write 兼容服务器的 URL,用于将指标发送到该服务器。USERNAME
:用于向remote_write
API 进行身份验证的用户名。PASSWORD
:用于向remote_write
API 进行身份验证的密码。
将实例标签设置为目标 URL
某些仪表板可能期望 Blackbox 指标上的 instance
标签包含目标 URL 的值。以下示例演示了如何使用 Prometheus 重新标记来实现这一点
prometheus.exporter.blackbox "example" {
config = "{ modules: { http_2xx: { prober: http, timeout: 5s } } }"
target {
name = "example"
address = "example.com"
module = "http_2xx"
}
}
discovery.relabel "example" {
targets = prometheus.exporter.blackbox.example.targets
rule {
source_labels = ["__param_target"]
target_label = "instance"
}
}
prometheus.scrape "example" {
targets = discovery.relabel.example.output
forward_to = [prometheus.remote_write.metrics_service.receiver]
}
兼容的组件
prometheus.exporter.blackbox
具有可以被以下组件使用的导出
- 使用 Targets 的组件
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正常工作。有关更多详细信息,请参阅链接的文档。