首页/系统与基础设施/自动化运维速查/应用级与系统级健康检查
巡检与自助运维60 条

应用级与系统级健康检查

系统级检查判断主机、进程与端口是否正常,应用级检查判断业务功能是否可用,前者只是必要条件而非充分条件。进程在监听不代表请求能被正确处理,只做系统级检查会把长时间的应用故障报告为一切正常,两类检查必须并存并在定位时交叉引用。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​​​​​‌‌‌​​​​​‌‌​‌‌​​​‌‌​‌​​‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​‌‌​​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌‌​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​​‌​‌​‌‌​‌‌​‌​​‌​‌‌​‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌​​​​‌​‌‌​‌‌​​​‌‌‌​‌​​​‌‌​‌​​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌​‌​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

两个视角回答不同问题

系统级检查看主机与进程是否正常:资源水位、磁盘、端口监听、进程状态、内核与服务状态。应用级检查看业务功能是否可用:接口能否正确返回、依赖是否连通、关键事务能否完成。两者回答的问题不同,系统级正常不代表应用可用,应用级失败也未必源于主机。

基本信息

系统级视角主机资源、进程与端口、服务与内核状态
应用级视角接口语义、依赖连通性、关键事务结果
典型错配主机指标全绿但接口已持续返回错误
归属划分系统级归基础设施团队,应用级归应用团队
联动方式两级并存,定位时互为上下层证据

典型使用场景

  • 主机巡检:判断资源水位与进程存活,适合大批量且语义简单的目标
  • 接口探活:判断服务能否正确处理请求,可覆盖依赖与配置问题
  • 分层排障:接口异常时先看系统级指标,快速区分资源不足与逻辑错误
  • 容量规划:系统级检查结果用于资源池调度与扩容决策
  • 变更验证:应用发布后跑应用级检查,系统变更后跑系统级检查

两类检查的分工

维度关注对象典型判据
系统级主机、进程、内核资源水位、进程状态、端口监听
应用级服务接口、依赖组件状态码、返回内容、响应时间
共同盲区跨服务调用链路需依赖链检查补齐
责任归属基础设施团队应用团队对业务结果负责

两级检查并列使用

两级检查并列使用
# 系统级:进程与端口是应用可用的必要条件,不是充分条件
systemctl is-active app.service || echo system-level-down
ss -lntp | grep -q :8080 || echo port-not-listening
# 应用级:请求真实接口并校验内容,覆盖依赖与配置错误
code=$(curl -fsS -o /tmp/h.txt -w %{http_code} http://127.0.0.1:8080/healthz)
[ $code = 200 ] || echo app-level-degraded
grep -q ok /tmp/h.txt || echo unexpected-response-body
系统级检查发现不了连接池耗尽、缓存不可用、下游超时这类应用问题;应用级检查也解释不了根因,例如内存不足或磁盘写满。两者并存才能既发现故障又支撑定位。
只做系统级检查会制造虚假健康:进程还在、端口仍在监听,但请求全部失败。用进程存活探测代替业务探测,会把长时间的应用级故障报告成一切正常。

易错点

  • 用进程存活代替应用可用:服务卡死但仍占用端口,检查结果持续显示健康
  • 应用级检查调用重型接口:一次探测触发大量查询,探测本身成为负载
  • 两级结论矛盾时无处置约定:出现冲突无人判断应以哪一侧为准
  • 检查接口与业务共用入口:检查流量被限流或鉴权拦截后长期误报

数据来源与参考

  • Kubernetes 官方文档:liveness、readiness 与 startup 探针的差异
  • Google SRE 系列:监控分布式系统
  • ITIL 4 服务管理实践:事件管理

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/application-vs-system-health-check.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​​​​​‌‌‌​​​​​‌‌​‌‌​​​‌‌​‌​​‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​‌‌​​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌‌​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​​‌​‌​‌‌​‌‌​‌​​‌​‌‌​‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌​​​​‌​‌‌​‌‌​​​‌‌‌​‌​​​‌‌​‌​​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌​‌​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​