一、背景
Nginx error.log疯狂刷盘, 一直报错信息如下: 导致Loki日志告警信息误告,无法正常查看和排查 真实有效的告警,造成干扰.

二、排查与原因分析
观察到error.log基本上每隔1s都会进行日志刷盘动作记录, 并且查看了access.log没有发现时间点每秒钟有客户端访问且造成如5xx的错误,由此排除了是客户端触发的可能性。 那么排查方向改为是否有类似health check的主动探测机制导致的呢?
排查发现 nginx使用了check主动探测模块:

那么再查看nginx相关配置文件,查找这种探测间隔为1s的配置文件都有哪些? 正确确实有: check类型是http 有且只有1个 其他都是tcp探测类型:

将无效后端移除, error.log恢复正常,不再疯狂刷盘. 猜测是这个版本的check模块,应该是http类型则记录error.log日志,tcp则不记录需要进行验证.
三、TCP探测类型与HTTP探测类型,日志记录特征分析
check模块源码: https://github.com/zhouchangxun/ngx_healthcheck_module/tree/master
结论: AI排查阅读源码,发现确实如此,TCP探测类型默认日志级别不会写入探测错误log 只有HTTP探测类型会写入error.log日志: