端口与 HTTP 探测
配置 Categraf TCP、UDP、HTTP 探测,验证结果码、响应内容及 TLS 证书到期指标。
最后校对于
这页办完,你会从独立探测点检查服务端口和 HTTP 响应,而不只看进程是否存在。 示例配置以 Categraf v0.5.17、夜莺 v9 为例。
TCP 和 UDP
编辑 conf/input.net_response/net_response.toml:
[[instances]]
targets = ["127.0.0.1:22"]
protocol = "tcp"
timeout = "2s"
labels = { probe = "ssh-local" }
替换目标地址。TCP 连接成功只能证明端口接受连接;要验证应用响应,还需配置协议适用的 send、expect。
UDP 没有 TCP 那样的连接确认,必须使用实际服务协议的发送与预期响应字符串。不要仅把 protocol 改成 udp 就认为探测完整。
字段说明见 net_response 配置。
HTTP
编辑 conf/input.http_response/http_response.toml:
[[instances]]
targets = ["http://127.0.0.1:8080/health"]
method = "GET"
response_timeout = "5s"
expect_response_status_code = 200
expect_response_substring = "ok"
follow_redirects = false
labels = { probe = "application-health" }
将地址和预期响应改成应用实际的健康检查接口。 可检查 HTTP 状态码与响应正文;需要跟随重定向时显式设置,避免把登录跳转误当成健康响应。 HTTPS 目标还可以产生证书到期时间指标。
验证与告警
./categraf --test --inputs net_response:http_response
预期结果:输出对应目标的 net_response_result_code 或 http_response_result_code。
值为 0 表示该插件配置的检查成功,非 0 表示失败;两种插件的非零编码不同,不要共用解释表。
确认本地测试后重启采集服务,在时序库中核对标签、结果码与采样时间。
告警可从 result_code != 0 开始,增加持续时长并选择合适级别。
HTTPS 目标存在 http_response_cert_expire_timestamp 时,下面的表达式表示距离证书到期还剩多少秒:
http_response_cert_expire_timestamp - time()
设置到期阈值前,先确认该目标确实产生了这个指标。 探测点的 DNS、网络和权限也影响结果;探测失败不一定意味着服务进程退出。
下一步
完整 HTTP 字段见 v0.5.17 配置。