2016年11月19日, 网站第一次被DDOS了!不过,也许这标志着写了这么久的网站终于有人关注了吧, 想想还有点小激动呢~
我也是才搭好了图形化的监控,没想到当天就派上了用场。。。
这是记录的出错趋势:
可以看到,错误从6点多开始错误急剧上升,一直持续到。。。我也不知道会是什么时候, 因为现在还在继续(现在是20日0点24分)。
之所以,我能在这写这篇文章,是因为当初写后台的时候, 已经对这种异常请求做了限制。
刚处理日志的时候, 我还是做了一些调查,取出了各种可疑的IP。
思路是:
- 获取异常API调用的IP地址
- 排序, 并求出每个IP出现的次数
- 再按次数逆序排列
命令很简单:
cat backend.log | awk {'print $8'} | sort | uniq -c | sort -k 1,1nr
具体每个命令是什么意思, 网上有很多讲解,我这里就不一一分析了。
但是问题来了, 我拿到这些ip了, 然后需要怎么处理呢?我是可以手动把这些添加到 ip的黑名单里面(通过nginx, 或者iptables,或者直接在云服务商的控制台去处理这些), 但是我看了一下, ip有大几十个, 添加进去还是蛮累的(关键是我感觉还会增加。。。)。
也不知道有没有什么通用的解决办法。不过,现在机器CPU和Memory
都还正常,而且大部分的ip已经自动被api server识别为异常了,就明天再来看看要怎么处理这些吧。。。