python文件关闭出故障_499 故障分析——Node 运维惊险排查之旅

故障说明

近期,DevOps 团队成员在完善一批老服务监控指标的过程中,意外发现某服务的 access.log 中持续出现一些状态码为 499 的接口请求。与业务方沟通后确认疑似问题接口为关键业务接口,通过获取请求关联的参数,我们随机抽查了 20 条数据, 2 条在数据库中找不到相关记录,其余 18 条数据最终落库成功。基于此我们推断该故障不止会影响用户体验,而且确实会影响到关键业务指标。

bba8a4f2914bf47256d4194d3a6b37df.png

分析 Root Cause

HTTP 499

An Nginx specific error code, which means that the client closed the connection before the server answered the request, usually caused by client side timeout.

根据 499 http code 的定义,说明是客户端在服务端请求返回前主动断开了连接,由于是客户端行为,再结合近期频繁的安全事件,初始时我们怀疑有人恶意攻击,故意消耗服务端资源。

是否属于恶意攻击?

我们首先找安全同事核查了 WAF 的配置和日志,但并没有收获。后面跟 ops 同事一起梳理了服务的架构,整理出该接口请求的完整链路:用户 -> WAF -> LB -> Nginx -> pm2 -> nodejs,基于此我们开始分析 499 请求的可能原因。

既然 499 说明用户端主动断开请求,那我们首先要搞清楚的是,用户端断开请求是原因还是结果。

proxyignoreclient_abort on | off;

Determines whether the connection with a proxied server should be closed when a client closes the connection without waiting for a response.

我们

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值