一、现象描述:故障是什么、触发场景

故障现象

部分内网终端上网行为日志无法正常上报至管理平台,平台页面查看终端在线状态显示在线,但网页访问记录、HTTP 访问日志、程序运行日志长时间空白;屏幕快照、网页外发审计记录缺失。手动在客户端执行日志同步操作,提示日志上报超时。

触发场景

  1. 终端接入企业内网,客户端正常开机启动,终端网络能 ping 通服务器 IP,没有断网。

  2. 故障具备局部特征,不是全部终端,仅部分工位、部分 VLAN 下的终端出现日志上报失败;同网段其他终端日志上报正常。

  3. 偶发特征:工作日白天业务高峰期更容易复现,夜间低负载时段,少量终端日志可偶尔上报几条,不稳定。

  4. 重装客户端后短时间恢复,1~3 天后再次复现日志不上报问题。

模拟现象截图描述:管理后台终端详情页,终端心跳在线,上网行为审计模块无新增记录;日志检索框筛选该终端,时间范围内无 HTTP、网页访问记录;告警模块也没有产生日志上报异常告警。

二、排查思路:从浅到深定位逻辑

排查原则:先确认连通性,再看客户端状态,然后排查策略、带宽与防火墙,最后检查日志存储与服务负载,不直接定位底层问题。

  1. 第一层:基础网络连通性校验 登录故障终端,ping 管理服务器 IP,检查是否丢包;telnet 测试服务端口是否可通;对比正常终端与故障终端的网络环境、VLAN、网关。确认终端和服务器之间基础网络是否可达。

  2. 第二层:客户端本地状态检查 查看客户端进程是否完整运行,客户端服务是否自动启动;查看本地缓存日志文件夹,确认终端本地是否已经产生上网行为日志,判断是本地没有生成日志,还是日志生成了但是上传失败

  3. 第三层:终端本地安全软件与防火墙检查 排查终端杀毒软件、EDR、系统防火墙,是否拦截客户端日志上传进程、阻断通信端口。查看杀毒隔离区,确认客户端程序文件是否被误隔离。

  4. 第四层:服务器侧资源与服务状态 查看服务器 CPU、内存、磁盘 IO、磁盘剩余空间;检查日志接收服务是否正常运行,是否存在日志队列堆积;查看服务器网络带宽占用,业务高峰期是否存在带宽打满。

  5. 第五层:策略与客户端版本校验 核对下发的上网行为监控策略是否完整生效;对比故障终端、正常终端客户端版本,是否存在版本不一致、策略下发不完整;查看终端分组策略是否存在冲突。

  6. 第六层:日志缓存与数据库写入性能排查 查看本地日志缓存上限配置,是否本地缓存日志量达到阈值后,触发上传限流;数据库写入压力过大,造成服务端接收队列溢出,丢弃终端上报日志。

三、根因分析

经过分层排查,本次故障的核心根因分为两点:

  1. 终端本地日志缓存策略:客户端会先将上网行为、HTTP 访问记录、屏幕快照日志缓存到本地磁盘,再异步批量上传。当终端产生大量上网行为日志,同时服务器在业务高峰期磁盘 IO 负载过高,日志接收队列堆积,服务端无法及时消费上报数据。客户端多次上传超时后,自动进入退避等待机制,不再持续重试上报,表现为平台日志空白。

  2. 局部 VLAN 防火墙策略限制:故障终端所在 VLAN 的防火墙,对客户端批量长连接报文做了限流,小包放行、批量数据包做连接截断。终端心跳包数据量小,能够正常通信,平台显示终端在线;但是大容量批量日志上传数据包被防火墙限制,造成日志上报超时。

附加次要因素:部分终端客户端版本老旧,日志上传重试机制存在缺陷,重试次数少,网络短暂波动就直接放弃上传,不会持续重试同步缓存的上网行为审计数据。

四、解决方案:修复步骤,附带操作目的

操作前备份服务器配置与数据库,避免操作失误。

  1. 服务器端优化日志接收队列(服务端操作) 调整日志接收服务队列长度,增加消息缓冲队列;限制单次批量接收日志包大小,拆分大包日志为小包传输。 目的:缓解业务高峰期数据库写入压力,避免大量日志包直接冲击数据库,防止队列溢出丢日志。

  2. 清理服务器磁盘垃圾,扩容日志存储分区 清理过期归档日志,检查磁盘剩余空间,保障日志分区空闲空间大于 20%。 目的:磁盘满、IO 高是日志接收服务停止写入的常见诱因,保障存储资源充足。

  3. 调整客户端本地日志上传策略(平台策略下发) 修改终端本地缓存阈值,限制单次批量上传的日志条数,拉长上传间隔;开启断点续传,网络恢复后自动续传本地缓存的上网行为日志。 目的:降低单次上传数据包体积,减少大报文被防火墙拦截概率;保障断连恢复后缓存日志不会丢失。

  4. 防火墙策略调整(网络设备侧) 在对应 VLAN 防火墙,放行客户端通信端口的长连接,取消对该端口的报文限流、连接数限制,不拦截批量上传数据包。 目的:区分心跳小包和批量日志报文,不再截断日志上传长连接。

  5. 批量升级故障分组客户端版本 将老旧版本客户端批量推送升级,修复上传重试机制缺陷。 目的:修复旧版客户端网络波动直接放弃日志上传的问题,增强弱网环境下日志上报稳定性。

  6. 手动触发存量缓存日志同步 对故障终端,远程触发本地缓存日志同步,将积压的上网行为、网页访问记录补传到管理平台。 目的:补全故障期间缺失的上网行为审计日志,保证审计数据完整。

五、验证:操作完成后,怎么确认问题修复

  1. 持续观察 1~2 个工作日,在平台终端审计页面,查看故障终端网页访问记录、HTTP 日志、程序上网记录能否持续新增。

  2. 查看客户端日志上传状态,不再出现上报超时提示;查看服务器日志接收队列,队列无持续堆积。

  3. 模拟网络短暂断连测试:断开终端内网 1 分钟,恢复网络,验证本地缓存日志能否自动续传上报。

  4. 业务高峰期重点抽检,确认不再出现 “终端在线、日志空白” 现象。

六、踩坑总结:容易踩错的点、容易忽略的细节

  1. 不要被 “终端在线” 这个现象误导。心跳包数据很小,仅代表基础连通正常,不能代表大批量日志报文可以正常传输,这是本次排查最容易踩的坑。

  2. 排查时优先区分:日志是终端本地没生成,还是生成后上传失败。很多管理员直接去服务器查问题,忽略终端本地缓存日志目录。

  3. 磁盘 IO 比 CPU、内存更容易被忽略。上网行为监控系统大量日志写入,磁盘 IO 瓶颈经常在业务高峰期才暴露,低负载时很难复现故障。

  4. 不要一次性关闭防火墙全部策略做测试,优先针对客户端通信端口放行,保障内网整体安全。

  5. 客户端版本不一致会带来各种诡异的上报问题,不同版本客户端上传协议、重试逻辑存在差异,建议统一终端客户端版本。

七、结尾:场景延伸,同类问题预防办法

上网行为监控系统日志上报异常,是终端审计场景非常常见的一类故障,后续可以通过以下方式提前规避同类问题:

  1. 定期巡检服务器资源:建立服务器磁盘、IO、队列长度自动化巡检告警,当资源达到阈值提前预警,不要等到日志丢失才发现。

  2. 上线策略巡检机制:批量核对各 VLAN、各部门终端策略下发状态,定期校验客户端版本,及时升级老旧客户端。

  3. 在平台开启日志上报异常告警:当终端长时间无上网行为审计日志上报,系统自动触发管理员告警,提前发现异常终端。

  4. 网络变更后必须做验证:修改 VLAN、防火墙、ACL 策略之后,抽取部分终端做日志上报测试,防止网络策略改动无意截断日志传输。

  5. 合理规划日志归档策略,定期归档历史上网行为审计数据,避免日志库持续膨胀,持续拉高数据库写入压力。

八、总结

本次故障核心不是客户端进程崩溃,而是长连接批量日志传输被防火墙限流叠加服务器高峰期 IO 瓶颈,导致上网行为日志无法上传。

本次解决方案与功能手段,全部依托域智盾软件落地,遇到同类审计日志缺失故障的,要遵循由浅到深的排查顺序,优先区分网络连通、本地日志生成、服务器资源、策略版本四大维度。同时配置异常告警,实现故障提前感知,保障上网行为监控系统审计数据完整可用。

责编:璇玑

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐