Apache mod_proxy_hcheck无独立日志,需通过LogLevel proxy_hcheck:debug(≥2.4.49)或proxy:debug配合trace8、curl模拟及日志过滤排查,重点关注error_log中的hc: probe failed、balancer://事件及表达式生效验证。
apache mod_proxy_hcheck 本身不生成独立日志文件,也没有专属的 loglevel hcheck:debug 这类指令。它的探测行为和判断结果只反映在标准错误日志(error_log)中,但需配合正确日志级别和调试手段才能看清细节。
要有效排查健康检查故障,关键不是“开一个新日志”,而是让 error_log 吐出足够多、足够准的线索。以下是实操要点:
开启 proxy 模块级 debug 日志
mod_proxy_hcheck 的行为由 mod_proxy 和 mod_proxy_balancer 驱动,因此需提升 proxy 相关模块的日志等级:
LogLevel proxy:debug # 或更聚焦(推荐): LogLevel proxy_hcheck:debug proxy_balancer:debug
⚠️ 注意:proxy_hcheck:debug 仅在 Apache ≥ 2.4.49 中可用;低版本只能用 proxy:debug,信息会更泛。
重启 Apache 后,error_log 中会出现类似内容:
[proxy_hcheck:debug] [pid 12345] hc: member http://10.0.1.20:8080: status=UP, last check=2026-09-25T18:02:15, result=OK [proxy_hcheck:debug] [pid 12345] hc: member http://10.0.1.20:8080: probe failed: timeout after 3s [proxy_balancer:debug] [pid 12345] balancer://api: removing worker http://10.0.1.20:8080 (failed 3 times)
抓取健康检查原始请求/响应(替代“专属日志”)
mod_proxy_hcheck 不记录 HTTP body 或 headers 到日志,但可通过以下方式还原真实探测过程:
-
启用 trace8 级别(最细粒度)
LogLevel proxy:trace8
此时日志会包含:
CPA Update - Secure CLI Proxy API Maintenance下载安全更新和维护 CLI Proxy API(CPA)部署与配置。用于 CPA 镜像升级、配置变更、认证目录兼容修复、上线验证与回滚。适用于用户提到“CPA 更新/升级/配置改了/容器重建/回滚”等场景。
- 实际发出的
GET /healthz HTTP/1.1请求头 - 收到的状态行、响应头(如
X-Health: ok) - 是否解析了响应体(若配置了
hctemplate) - 表达式匹配结果(如
hcexpr=ok → true)
- 实际发出的
-
配合
curl手动模拟健康检查请求
在服务器上执行(与 Apache 使用相同网络环境):curl -v --connect-timeout 3 --max-time 5 http://10.0.1.20:8080/healthz
对比
curl输出与error_log中的trace8记录,能快速确认是后端问题还是表达式/超时配置问题。
过滤日志聚焦健康检查事件
避免被海量日志淹没,用命令实时筛选关键行:
# Linux/macOS 下实时监控健康检查相关日志 tail -f /var/log/apache2/error_log | grep -E "(proxy_hcheck|proxy_balancer|hc:|balancer://)" # 或查最近 100 行中的失败记录 grep "probe failed\|removing worker\|hcfail" /var/log/apache2/error_log | tail -100
验证表达式是否真正生效(常见盲区)
日志里看不到 hcexpr 匹配过程?说明表达式未触发——常见原因:
-
BalancerMember行漏写了hcexpr=xxx参数 -
ProxyHCExpr定义在<VirtualHost>内,但BalancerMember在全局或<Proxy>块中(作用域不匹配) - Apache 版本 < 2.4.49,
%{hc resp body}变量不可用,表达式语法报错且静默失效(查error_log开头是否有Invalid expression提示)
日志中若出现:
[proxy_hcheck:warn] [pid 12345] hc: invalid expression 'ok' — ignored
就说明表达式定义有误,需检查语法和版本兼容性。
基本上就这些。

















