Ping 监控

通过 ICMP、TCP 和 HTTP 探测监控网络可达性和延迟。

ServerBee 内置 Ping 监控功能,通过分布在不同服务器上的 Agent 对目标地址进行周期性探测,监测网络可达性和响应延迟。它适用于验证网络连通性、对比不同地区的延迟以及发现服务中断。

探测类型

ServerBee 支持三种探测类型。每种都会测量往返延迟并上报成功 / 失败状态。

类型探测内容目标格式超时权限要求
ICMP标准 ICMP Echo 请求 / 应答IP 或域名(如 1.1.1.1、google.com)10 秒Linux 下需 CAP_NET_RAW
TCPTCP 连接测试(握手)host:port(如 google.com:443)10 秒无
HTTPHTTP(S) GET 请求与响应时间完整 URL(如 https://example.com/health)10 秒无

创建 Ping 任务

在管理面板的「Ping 探测」页面创建探测任务,也可通过 API 创建。每个任务需要配置:

配置项说明
任务名称用于标识的名称,如「Cloudflare DNS」
探测类型icmp、tcp 或 http
目标地址待探测的目标(格式取决于探测类型)
探测间隔探测频率,单位秒
执行节点选择哪些 Agent 执行此探测
启用状态是否启用此任务

示例:ICMP Ping

监控到 Cloudflare DNS 的基本连通性:

配置项值
名称Cloudflare DNS
探测类型icmp
目标1.1.1.1
间隔60

示例:TCP 端口检查

验证数据库端口是否可达:

配置项值
名称PostgreSQL Primary
探测类型tcp
目标db.internal:5432
间隔30

示例:HTTP 健康检查

监控一个 Web 服务端点:

配置项值
名称API Health
探测类型http
目标https://api.example.com/health
间隔60

目标格式

不同探测类型的目标格式要求:

探测类型目标格式示例
ICMPIP 地址或域名1.1.1.1、google.com
TCPhost:portexample.com:443、10.0.0.1:3306
HTTP完整 URLhttps://example.com、http://10.0.0.1:8080/health

间隔设置

探测间隔以秒为单位,建议根据目标的重要性和探测类型合理设置:

场景建议间隔
关键服务监控15-30 秒
常规网站监控60 秒
基础设施检查120-300 秒

过短的探测间隔会增加 Agent 的负载和网络开销,也可能被目标服务器的防火墙策略或限流拦截。建议根据实际需求合理设置。

任务分发同步

创建或更新 Ping 任务时,Server 会将其同步到对应的 Agent:

  1. Server 将任务配置存入数据库
  2. 向每个被分配的 Agent 发送 PingTasksSync 消息,包含该 Agent 的全部活跃任务
  3. 各 Agent 启动(或更新)本地的探测调度器
  4. 探测结果以 PingResult 消息回传给 Server

Server 在以下时机会向 Agent 同步探测任务:

  • Agent 首次连接或重连时
  • 管理员创建、修改或删除探测任务时

当某个 Agent 断开并重连后,Server 会自动重新同步其全部已分配的 Ping 任务。

界面反馈

在 Web 控制台中,创建、删除、启用、禁用 Ping 任务都会根据当前语言显示对应的成功或失败提示。启用 / 禁用请求发送期间,切换按钮会暂时禁用,以减少误触的重复提交。

分配执行节点

server_ids_json 字段控制哪些 Agent 执行探测:

  • 指定节点:填写服务器 ID 数组,如 ["srv-1", "srv-2"]
  • 全部节点:使用空数组 []

["*"] 不是通配符。Server 会把它当作字面量服务器 ID,因此通常不会把任务分配给任何 Agent。需要所有服务器执行时请使用 [];指定服务器时,请使用服务器列表中的真实 ID。

从多个 Agent 执行同一探测可以:

  • 从不同地区同时探测同一目标,对比各地的网络质量
  • 排除单点网络问题的干扰,更准确地判断目标可用性
  • 当某个节点探测失败而其他节点成功时,将故障定位到探测节点一侧

查看结果与延迟图表

探测记录

每次探测的结果会存入数据库,包含以下信息:

字段说明
task_id关联的 Ping 任务
server_id执行探测的 Agent
latency往返延迟,单位毫秒
success探测是否成功
error失败时的错误信息
time探测执行时间

延迟图表

在 Ping 任务详情页面,可以查看每个执行节点的延迟趋势图。图表支持按时间范围筛选,帮助你分析网络质量变化趋势。当多个节点探测同一目标时,结果会按节点拆分展示,并显示成功率百分比。

API 查询

通过 REST API 查询探测记录:

GET /api/ping-tasks/:id/records?from=2026-03-13T00:00:00Z&to=2026-03-14T00:00:00Z&server_id=xxx

支持按时间范围和执行节点筛选。

数据保留

Ping 记录默认保留 7 天,可通过 server.toml 的 retention.ping_records_days 配置:

[retention]
ping_records_days = 14

清理任务每小时执行一次,移除超过保留期的记录。

与告警集成

Ping 监控可以与告警规则结合使用。通过 network_latency 和 network_packet_loss 规则类型,可针对探测延迟或丢包配置告警,在关键目标性能下降或不可达时及时收到通知。Ping 数据与常规监控数据一并存储,可复用同一套告警基础设施。详见 告警与通知。