这篇文章将介绍当WEB服务器报警,提示磁盘使用率问题和带宽满载时的一些排查思路和解决方案。
首先,我们一定要配置服务器的云监控,如果是云厂商的服务器都有监控服务,开通即可。
如果是自建机房,监控报警策略也是必须搭建的。
- 日志没有及时迁移或清理
- 程序异常输出了大量的垃圾文件
- 挂载的硬盘存储空间不足,不适应业务发展,需要挂载新的磁盘。
1. 日志迁移或清理
我们需要Nginx日志和项目运行中的关键日志,方便定位问题、数据分析。
日志迁移的思路很简单,目前主流的云厂商都支持日志迁移和存储服务,且成本不高。
如果是自建的服务,可以挂载专门的存储硬盘,不和业务服务器耦合在一起,将日志进行单独存储。
2. 日志清理
- 切换到根目录
- 查找到大文件,比如找到大于100M的文件
- 没用的日志大文件置为空(不要直接删除,正在被使用的文件是无法直接删除的)
当网站流量报警时喜忧参半,如果是因为搞活动或者网站内容命中了热点,被搜索引擎推荐,那真是像买彩票中奖一样高兴。
不过,大多数情况,网站在毫无预兆的情况下突然打满带宽,大概率是被恶意攻击了。
下面介绍一下我的排查思路
首先我登录了网站的统计服务平台,发现PV/UV等关键数据并没有太大变化,但是服务器的带宽却被打满了,说明异常流量不是通过刷网站页面导致的,可能是通过刷接口导致的。
- 发现访问量最高的ip是自身服务器的外网ip
- 发现有一组美国谷歌云的异常访问
- 发现有一个北京xx网的异常访问
- 其他基本是正常流量
这是一个N年前的老项目,开发时是有一些知识盲点的,没有考虑到内网传输要比外网传输的速度快很多。
通过下面的方式替换了外网传输为内网传输:
- 项目中的外网ip替换为内网ip(发现项目代码并没有直接访问外网ip,而是访问了子项目的域名)
- 配置Linux服务器的host
优化完内网传输之后,就开始最重要的事情了:
- 创建(打开)黑名单配置文件
- 将black.conf添加到nginx.conf中 (代码段中的...代表省略的内容)
- 添加要封禁的黑名单
- 重启Nginx服务
在查询Nginx的log时,发现一些不再用的服务仍然有请求日志。
果断停掉这些服务。
- 小程序接口封禁
- 网站快报相关的接口封禁
在进行上述操作后,收到了服务器报警恢复正常的短信通知。
今天早晨登录服务器监控后台,发现效果是灰常明显的:
红线左侧是处理异常流量前的带宽波动图,右侧是处理后的波动图,浅色波动线是昨天的流量情况。
这是7年前刚入行时做的项目,单机部署,排查思路比较简单清晰:查日志,封ip。
在微服务+分布式成为主流的今天,又要用哪些思路和工具排查问题呢?
本文地址:http://sjzytwl.xhstdz.com/quote/72154.html 物流园资讯网 http://sjzytwl.xhstdz.com/ , 查看更多