prometheus导出器: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 | 字符串 | blackbox_exporter 配置文件路径。 | 否 | |
config | 字符串 或秘密 | blackbox_exporter 的配置作为内联字符串。 | 否 | |
probe_timeout_offset | 持续时间 | 在探测目标时从超时时间中减去的秒数偏移量。 | "0.5s" | 否 |
targets | 列表(映射字符串) | 黑盒目标。 | 否 |
必须指定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块中的targets
参数。当黑盒目标不能以目标块的形式传递,因为另一个组件提供它们时,必须使用targets
参数。
可以为目标设置以下标签
name
:要探测的目标名称(必需)。address
:要探测的目标地址(必需)。module
:用于探测的黑盒模块。
该组件将任何额外的标签传递给导出的目标。
有关生成配置文件的更多信息,请参阅blackbox_exporter
。
块
以下块在prometheus.exporter.blackbox
定义内受支持,用于配置特定收集器的选项
层次结构 | 名称 | 描述 | 必填 |
---|---|---|---|
target | target | 配置黑盒目标。 | 否 |
目标块
target
块定义了一个单独的黑盒目标。可以通过指定多次 target
块来定义多个目标。name
属性是必须的,它将在目标的 job
标签中使用。
名称 | 类型 | 描述 | 默认 | 必填 |
---|---|---|---|---|
name | 字符串 | 要检测的目标的名称。 | yes | |
address | 字符串 | 要检测的目标的地址。 | yes | |
module | 字符串 | 用于检测的黑盒模块。 | "" | 否 |
labels | map(string) | 要添加到目标中的标签。 | 否 |
指定的 labels
参数中的标签不会覆盖由 blackbox_exporter
设置的标签。
导出字段
以下字段可以导出,并可由其他组件引用。
名称 | 类型 | 描述 |
---|---|---|
targets | 列表(映射字符串) | 可用于收集导出度量值的标记。 |
例如,targets
可以传递给 discovery.relabel
组件以重写目标的标签集,或者传递给收集暴露度量的 prometheus.scrape
组件。
导出的目标使用由 运行命令 指定的配置好的 内存中流量 地址。
组件健康
prometheus.exporter.blackbox
只有在给定无效配置时才会报告为不健康。在这种情况下,导出字段将保留其最后健康值。
调试信息
prometheus.exporter.blackbox
暴露没有组件特定的调试信息。
调试度量
prometheus.exporter.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
:用于对远程 write API 进行身份验证的用户名。PASSWORD
:用于对远程 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
}
}
}
从动态目标集中收集指标
此示例与上述示例相同,但黑盒目标是通过对 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
:用于对远程 write API 进行身份验证的用户名。PASSWORD
:用于对远程 write API 进行身份验证的密码。
兼容组件
prometheus.exporter.blackbox
的导出可以被以下组件消费
- 消费 目标 的组件
注意
连接某些组件可能不合理,或者可能需要进一步配置才能使连接正常工作。有关详细信息,请参阅相关文档。