You need to enable JavaScript to run this app.
文档中心
托管 Prometheus

托管 Prometheus

复制全文
下载 pdf
容器与自建集群接入
健康巡检(Blackbox)接入
复制全文
下载 pdf
健康巡检(Blackbox)接入
当您在容器服务集群接入托管 Prometheus 后,允许通过 Probe 来满足集群和应用的黑盒监控需求。本文为您介绍如何通过 Probe 来配置黑盒监控。​
背景信息​
在标准的 Kubernetes 集群中,我们可以通过配置 ServiceMonitor 或 PodMonitor 进行服务发现,对集群内的资源或服务进行监控,例如:监控主机的资源用量、容器的运行状态、数据库中间件的运行数据等等。这些都是支持业务和服务的基础设施,通过监控其暴露的相关指标,能够了解其内部的实际运行状态,预判可能出现的问题,从而对潜在的不确定因素进行优化。这种通过直接观测应用内部指标的监控方法,也被称之为 白盒监控。​
除了白盒监控以外,实际中还经常使用 黑盒监控(Blackbox) 对服务进行监控。所谓黑盒监控,即以用户的视角测试和监控服务的外部可见性,常见的黑盒监控包括 HTTP 探针、TCP 探针、DNS 探针、ICMP 探针、gRPC 探针等,可以用于检测站点或者服务的可访问性,以及访问效率等。例如:​
  • HTTP 探测:HTTP 服务有效性监控、SSL 证书有效期等。​
  • ICMP 探测:网络连通性检测、主机探活等。​
  • TCP 探测:主机 TCP 端口探活等。​
  • ​alt​​
说明​
Blackbox Exporter 是 Prometheus 社区提供的官方黑盒监控解决方案,其允许用户通过 HTTP、HTTPS、DNS、TCP、ICMP 以及 gRPC 等方式对网络和应用进行探测和监控。详情请参见 官方文档​
黑盒监控与白盒监控的主要区别和应用场景为:​
  • 黑盒监控: 用户视角,以故障为导向,侧重监控应用的外部服务是否正常。当故障发生时,黑盒监控能快速发现故障。​
  • 白盒监控: 应用视角,侧重监控应用的内部运行情况,并以此预测潜在的问题。​
  • ​alt​​
说明​
一个典型的、完善的监控链路,需要白盒监控和黑盒监控共同完成。即从白盒监控的角度发现潜在问题,从黑盒监控的角度快速发现已经发生的问题。​
前提条件​
  • 托管 Prometheus​
  • 已创建托管 Prometheus 工作区,详情请参见 创建工作区。​
  • 容器服务​
  • 已注册并开通火山引擎容器服务(VKE)。​
  • 如果您需要监控集群外部的服务,需要开启 blackbox-exporter 组件所在集群的 公网访问 功能,详情请参见 容器服务 FAQ。​
配置方式​
方式一:接入中心(推荐)​
配置接入任务​
  1. 登录 VMP 服务控制台。​
  1. 在顶部导航栏,选择目标地域。​
  1. 在左侧导航栏中选择 接入中心 > 组件,单击 健康巡检(Blackbox),配置接入任务。​
  • ​​​
  1. 配置采集器的部署环境。选择 VKE 环境,并选择关联集群。​
  • ​​​
  1. 单击 创建接入任务,配置接入任务的详情。​
  • ​​​
  • ​
    配置项​
    说明​
    基础信息​
    ​
    任务名称​
    配置接入任务的名称。支持中文、英文大小写、数字和下划线_,取值范围为 1~40 个字符。​
    采集配置​
    ​
    JobName​
    为采集指标添加 Job 相关的 Label。配置该参数后,所有采集的指标均会添加相关 Label,方便您基于 Job 对指标进行筛选。​
    指标采集间隔​
    配置采集器的采集间隔。​
    探测方式​
    配置探测方式,支持 http_2xx、ping 和 tcp。​
    探测目标​
    配置探测目标,支持配置为域名或 IP 地址。例如www.volcengine.com。​
    ​
  1. 单击 确认,完成配置。​
获取监控大盘​
选择 效果预览 页签,支持查看监控大盘示例。单击 获取 Grafana 模版,即可下载 JSON 格式的 Grafana 监控大盘模版。​
​​​
查询监控指标​
选择 采集指标 页签,即可查看采集目标的指标列表。​
​​​
方式二:自定义部署​
步骤一:创建 Probe CRD 资源​
如果您的集群中不存在 Probe CRD 资源,您需要在本地环境中连接集群,执行以下命令,在集群中创建 Probe CRD 资源。​
​
kubectl apply -f https://vmp-release-cn-beijing.tos-cn-beijing.volces.com/manifests/crds/promopeartor-crd-probes.yaml​
​
说明​
  • 如果您的集群所在地域不为 华北2(北京),则您需要将上述命令中的 cn-beijing 字段修改为对应地域的 RegionID。例如:华东2(上海)地域的集群,部署命令为 kubectl apply -f https://vmp-release-cn-shanghai.tos-cn-shanghai.volces.com/manifests/crds/promopeartor-crd-probes.yaml。地域的 RegionID 详情请参见 地域和可用区。​
步骤二:使用 ConfigMap 管理 blackbox-exporter 配置​
  1. 单击左侧导航栏中的 集群。​
  1. 在集群列表页面,单击需要配置的目标集群。​
  1. 在集群管理页面的左侧导航栏中,选择 配置 > 配置项,单击 使用 Yaml 创建,创建配置项。​
​
apiVersion: v1​
kind: ConfigMap​
metadata:​
name: blackbox-config​
namespace: volcano-metrics​
data:​
blackbox.yml: |-​
modules:​
## ------------HTTP 检测模块配置------------​
http_2xx: ​
prober: http​
timeout: 5s ## 探测超时时间​
http:​
valid_http_versions: ["HTTP/1.1", "HTTP/2.0"] ​
valid_status_codes: [] ## HTTP 返回状态码,默认为 2xx​
method: GET ## HTTP GET 方法​
preferred_ip_protocol: "ip4" ## HTTP 探针默认为 IPv6,需要使用该配置项强制通过 IPv4 进行探测​
## ------------HTTP POST 监测模块配置------------​
http_post_2xx: ​
prober: http​
timeout: 5s ## 探测超时时间​
http:​
method: POST​
headers: ​
Content-Type: application/json ## 定义 HTTP 报文头​
body: '{}' ## 定义 HTTP 报文 body 内容​
## ------------TCP 检测模块配置------------​
tcp_connect: ​
prober: tcp​
timeout: 5s ## 探测超时时间​
## ------------ICMP 检测模块配置------------​
icmp: ​
prober: icmp​
timeout: 5s ## 探测超时时间​
## ------------DNS 检测模块配置------------​
dns: ​
prober: dns​
dns:​
query_name: "www.example.com"​
query_type: "A"​
valid_rcodes:​
- NOERROR​
​
说明​
上述配置项仅为示例,只定义了http_2xx、http_post_2xx、tcp_connect、icmp和dns几个探测模块。如果您有其他协议的探测需求,需要添加对应的探测模块配置。详情请参见 官方文档。​
步骤三:部署 blackbox-exporter​
  1. 在左侧菜单栏中选择 工作负载 > 无状态负载。单击 使用 Yaml 创建,部署 blackbox-exporter。​
​
apiVersion: apps/v1​
kind: Deployment​
metadata:​
name: blackbox​
namespace: volcano-metrics​
spec:​
selector:​
matchLabels:​
app: blackbox​
template:​
metadata:​
labels:​
app: blackbox​
spec:​
containers:​
- image: prom/blackbox-exporter:latest # 拉取 Docker Hub 中的 exporter 镜像​
name: blackbox​
args:​
- --config.file=/etc/blackbox_exporter/blackbox.yml # 指定 ConfigMap 配置文件​
- --log.level=error # 错误级别控制​
ports:​
- containerPort: 9115 # 配置容器端口号​
volumeMounts:​
- name: config​
mountPath: /etc/blackbox_exporter ​
volumes:​
- name: config​
configMap:​
name: blackbox-config # 挂载 ConfigMap 配置文件​
​
说明​
blackbox-exporter 的详细参数,请参见 blackbox-exporter。​
  1. 在左侧菜单栏中选择 服务与路由 > 服务。单击 使用 Yaml 创建 ,创建服务。​
​
apiVersion: v1​
kind: Service​
metadata:​
name: service-blackbox # 服务的名称​
namespace: volcano-metrics # 服务的命名空间​
spec:​
selector:​
app: blackbox # 通过标签选择器将服务与后端容器组(Pod)绑定​
ports:​
- name: rule # 服务端口映射规则名称​
protocol: TCP # 服务协议,支持 TCP 或 UDP​
port: 9115 # 服务端口号​
targetPort: 9115 # 容器端口号​
type: ClusterIP # 服务的类型​
​
步骤四:配置服务发现​
  1. 在左侧菜单栏中选择 工作负载 > 对象浏览器。单击 使用 Yaml 创建 ,配置服务发现。​
  • 在 类型 下拉菜单中选择 自定义。​
  • 在 Yaml 配置框内输入 Yaml 配置。​
​
apiVersion: monitoring.coreos.com/v1​
kind: Probe​
metadata:​
name: http-probe-example # 配置服务发现的名称​
namespace: volcano-metrics # 配置服务发现所在的命名空间​
labels: ​
volcengine.vmp: "true" # 配置 Probe 的标签,允许被 Prometheus-agent 发现​
spec:​
jobName: http-example # 配置任务名称​
prober: ​
url: service-blackbox.volcano-metrics.svc.cluster.local:9115 # 通过域名指定 blackbox-exporter 的服务地址​
module: http_2xx # 配置探测任务使用的预定义模块​
targets: # 配置采集目标,这里使用了静态配置。在实际使用中,也支持其他配置,例如 Kubernetes 服务发现功能​
staticConfig: ​
static:​
- www.volcengine.com # 配置采集对象,本例中以配置静态对象为例​
​
结果验证​
查看接入任务​
配置完成后,您可以查看任务状态和任务详情。确定接入任务是否正常。​
  1. 在左侧导航栏中选择 接入中心 > 接入任务。​
  1. 选择 VKE 环境 页签。在任务列表中,可以查看接入任务的状态。​
​​​
接入任务创建完成后,支持以下运维操作:​
  • 单击 任务名称,进入任务详情页面,支持查看接入任务详情。​
  • 单击 操作 列的 编辑,支持编辑指定的接入任务。​
  • 单击 操作 列的 暂停任务,支持暂停指定的接入任务。​
  • 单击 操作 列的 删除,支持删除指定的接入任务。​
查询任务指标​
在左侧导航栏中选择 Explore,可以使用up查看接入任务中采集 Job 的状态。本例中为up{job="blackbox_demo"}。当该指标的值为 1 时,表示采集器已创建完成并工作正常。​
​​​
监控信息​
查询指标​
您可以使用托管 Prometheus 的 Explore 功能来快速查询和展示指标数据。详情请参见 指标查询。​
​​​
搭建大盘​
您可以在容器服务集群或 ECS 主机中自建 Grafana,并通过 Grafana 查看指标和创建大盘。​
配置告警​
您可以在托管 Prometheus 的告警中心配置实例的相关告警。详情请参见 创建告警规则。​
常见问题​
如何对 blackbox-exporter 进行调试和 Debug?​
当您发现 blackbox-exporter 采集的数据有问题,或者组件状态不正常时,可以采取以下方式,直接查看 blackbox-exporter 采集到的数据,或进行 Debug 处理。具体的步骤如下:​
  1. 在本地环境中通过 kubectl 连接集群,执行以下命令,配置 blackbox-exporter 组件实例的端口映射。其中blackbox-84d7xxxx为组件实例名称。​
​
kubectl port-forward pod/blackbox-84d7xxxx 9115:9115 -n volcano-metrics​
​
  1. 执行以下命令,查看 blackbox-exporter 组件的数据和 Debug 信息。其中:​
  • target字段为您探测的目标。​
  • module字段为您使用的检测模块。​
  • debug=true表示开启 Debug。您可以看到 blackbox-exporter 组件的配置信息、采集指标、组件日志等信息。​
​
curl -s "localhost:9115/probe?target=https://www.volcengine.com&module=http_2xx&debug=true"​
​
​
最近更新时间:2025.09.03 15:13:01
这个页面对您有帮助吗?
有用
有用
无用
无用