拨测¶
拨测(Probe)指的是基于黑盒监控,定期通过 HTTP、TCP 等方式对目标进行连通性测试,快速发现正在发生的故障。
Insight 基于 Prometheus Blackbox Exporter 工具通过 HTTP、HTTPS、DNS、TCP 和 ICMP 等协议,对网络进行探测并返回探测结果以便了解网络状态。
前提条件¶
目标集群中已成功部署 insight-agent,且处于 运行中 状态。
查看拨测任务¶
- 进入 可观测性 产品模块;
-
在左边导航栏选择 基础设施 -> 拨测。
- 点击表格中的集群或命名空间下拉框,可切换集群和命名空间
- 你可以点击右侧的 ⚙️ 修改显示的列,默认为拨测名称、探测方式、探测目标、连通状态、创建时间
- 连通状态有 3 种:
- 正常:Probe 成功连接到了目标,目标返回了预期的响应
- 异常:Probe 无法连接到目标,或目标没有返回预期的响应
- Pending:Probe 正在尝试连接目标
- 你可以在 🔍 搜索框中键入名称,模糊搜索某些拨测任务
创建拨测任务¶
- 点击 创建拨测任务。
-
填写基本信息后点击 下一步
- 集群:选择需要拨测的集群
- 命名空间:拨测所在的命名空间
-
配置探测参数。
- Blackbox 实例:选择负责探测的 blackbox 实例
- 探测方式:
- HTTP:通过发送 HTTP 或 HTTPS 请求到目标 URL,检测其连通性和响应时间,这可以用于监测网站或 Web 应用的可用性和性能
- TCP:通过建立到目标主机和端口的 TCP 连接,检测其连通性和响应时间。这可以用于监测基于 TCP 的服务,如 Web 服务器、数据库服务器等
- 其他:支持通过配置 ConfigMap 自定义探测方式,可参考自定义拨测方式
- 探测目标:探测的目标地址,支持域名或 IP 地址等
- 标签:自定义标签,该标签会自动添加到 Prometheus 的 Label 中
- 探测间隔:探测间隔时间
- 探测超时:探测目标时的最长等待时间
-
配置完成后,点击 确定 即可完成创建。
Warning
拨测任务创建完成后,需要大概 3 分钟的时间来同步配置。在此期间,不会进行探测,无法查看探测结果。
编辑拨测任务¶
点击列表右侧的 ┇ -> 编辑,完成编辑后点击 确定。
查看监控面板¶
点击拨测名称
查看拨测任务中每个目标的监控状态,以图表方式显示针对网络状况的探测结果。
指标名称 | 描述 |
---|---|
Current Status Response | 表示 HTTP 探测请求的响应状态码。 |
Ping Status | 表示探测请求是否成功。1 表示探测请求成功,0 表示探测请求失败。 |
IP Protocol | 表示探测请求使用的 IP 协议版本。 |
SSL Expiry | 表示 SSL/TLS 证书的最早到期时间。 |
DNS Response (Latency) | 表示整个探测过程的持续时间,单位是秒。 |
HTTP Duration | 表示从发送请求到接收到完整响应的整个过程的时间。 |
自定义指标监控¶
创建拨测后,除了可以通过拨测的监控面板查看当前探测目标的健康状态,还可以根据拨测相关的指标创建出对应的告警规则。具体来说,Prometheus Blackbox Exporter 会将拨测的结果生成一系列指标,最常用的如下:
指标 | 说明 |
---|---|
probe_success | Ping 状态 |
probe_http_ssl | SSL |
probe_ssl_earliest_cert_expiry | SSL 有效期 |
probe_ip_protocol | IP 协议 |
probe_http_status_code | HTTP 状态码 |
probe_http_duration_seconds | HTTP 时延 |
probe_http_version | HTTP 版本 |
常用的告警规则:
apiVersion: operator.victoriametrics.com/v1beta1
kind: VMRule
metadata:
labels:
operator.insight.io/managed-by: insight
name: probe-alert-rule
namespace: test1
spec:
groups:
- name: probe
rules:
- alert: ProbeFailed
annotations:
description: Probe job {{ .labels.job }} access {{ .labels.instance }} in namespace {{ .labels.namespace }} target down for 15s
value: '{{$value}}'
expr: probe_success == 0
for: 15s
labels:
severity: critical
- alert: SlowProbe
annotations:
description: Probe job {{ .labels.job }} access {{ .labels.instance }} in namespace {{ .labels.namespace }} took more than 1s to complete
value: '{{$value}}'
expr: avg_over_time(probe_duration_seconds[1m]) > 1
for: 1m
labels:
severity: warning
删除拨测任务¶
点击列表右侧的 ┇ -> 删除,确认无误后点击 确定。
Caution
删除操作不可恢复,请谨慎操作。