关注VPS服务器
相关知识分享

宝塔面板结合网站日志分析CPU负载100%问题及如何解决

老魏接到一个服务器CPU负载100%的问题,和之前遇到的云服务器CPU使用率100%和系统负载高的解决案例不同的是,这次的服务器没有安装商家提供的监控软件。这种问题往往是每个站长都头疼的事儿。导致 CPU负载 100%的原因实在是太多了:被攻击、中了挖矿程序、程序错误、php参数设置错误、mysql设置不对等等都有可能导致这个问题的出现,只能一点点排查。本文是老魏的分析、排查、解决过程,记录下来也分享给大家看看。

CPU满载100%的详细情况

每天几个不定时的时间段,CPU和负载都飙升到 100%,持续10分钟左右。这时候网站前后台还是可以正常打开的,几乎不受影响。

这中间陆续采取了以下措施:

  • 排查过挖矿程序、网站程序错误、php参数优化过很多次、mysql也优化过很多次;
  • 安装了宝塔面板异常监控推送,会在CPU满载时及时告警;
  • 异常监控推送会告知是由于 php-fpm超限额导致 CPU满载;

初步看过宝塔面板的监控数据,如下图所示基本每天都有几次。为了方便查看具体时间段,我们可以用下图中的手柄放大,查看CPU100%的开始到结束时间段,比如我们记下最近两天CPU满载的详细时间段,留着后面使用。

CPU满载100%的详细情况

CPU满载100%的详细情况

宝塔面板获取网站日志

如果你使用宝塔面板,在【安全】页面右上位置的【web日志】/www/wwwlogs,点击后看到对应的网站日志文件。是以网站域名明明的,扩展名是 log的网站日志文件。

比如网站日志文件是 www.vpsss.net.log,实际上这个日志文件往往都比较大,超过几百00M到几G了,不方便下载与查看。我们可以利用宝塔面板的日志切割功能来把它变小一点,相关教程请看宝塔面板计划任务日志切割功能如何使用

分析网站日志找出问题所在

切割之后可以下载有问题时间段的网站日志到本地,使用网站日志分析工具来分析。相关的软件特别多,老魏随便找了一款 logviewer pro软件来查看日志。

本文开头说过我们从宝塔面板记下最近两天CPU满载的详细时间段,比如 4:42~4:52左右时间段会出现这种情况,这个时间段不要那么精确前后差一两分钟都是正常的。那么我们就打开最近两天的网站日志查看在这个时间段内是哪些 IP访问了网站。

如下图所示在这个时间段访问的 IP,大家仔细看红框中的IP,时间精确到秒,这些 101.89.34.xx 开头的IP段频繁发起多个访问,超过服务器设置的php-fpm限额,导致了CPU满载。

分析网站日志找出问题所在

分析网站日志找出问题所在

经过查找这些IP有一部分属于 semrush robot,一个提供搜索引擎优化数据的软件公司,它会抓取互联网流量分析后贩卖给自己的客户,对于中文站来说它不会给你带来流量,反而疯狂耗费服务器资源,抓取数据供自己使用,还不遵守爬虫协议。

解决攻击IP的办法

对于这种攻击我们可以通过以下办法应对:

1、限制并发数(宝塔面板>网站>站点修改>流量限制,启用流量限制,选择适合自己的方案。

2、CDN和防火墙拉黑IP等方式来禁止。

如果这类IP的访问频率过快,类似CC攻击就要把宝塔防火墙的CC防御改为【自动模式】,根据你网站情况修改“频率”和“封锁时间”。这样防火墙可以帮你抵挡住这种高频率CC攻击。

扩展阅读:宝塔面板免费版Nginx防火墙插件如何安装部署

宝塔面板免费nginx防火墙安装使用详细图文教程

宝塔面板专业版防火墙和免费nginx防火墙区别及如何选择?

3、屏蔽SemrushBot需要在robots.txt文件中添加以下代码:

User-agent: SemrushBot
Disallow: /
User-agent: SemrushBot-SA
Disallow: /

如果你屏蔽semrush robot之后,发现它不遵守爬虫协议仍旧在你网站上到处爬,那么只好汇总相关IP在服务器安全组或系统防火墙中屏蔽了。

如果屏蔽某些IP之后发现自己无法正常打开网站,就去防火墙的 IP黑名单中删除。

4、类似的搜索引擎蜘蛛公司还是不少的,大家可以去网络上搜集一下然后汇总到 robots.txt文件中一并屏蔽抓取。

扩展阅读:WordPress网站robots.txt怎么写及要注意的地方

老魏点评

这次帮忙解决服务器CPU负载100%问题花费了不少时间,主要都用在查找和汇总多个IP上了,通过宝塔面板+网站日志+网络搜索、交叉比对等多种手段结合来分析和解决这个问题。对于新手、小白来说是一个没有过的体验,网络攻击无处不在,我们在运行网站的同时也要学会如何有效保护服务器和网站安全。

这是本专题163篇文章中的第9篇: 宝塔面板

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《宝塔面板结合网站日志分析CPU负载100%问题及如何解决》
文章链接:https://www.vpsss.net/23265.html
本站资源仅供个人学习交流,转载请保留出处及链接,不允许用于商业用途,否则法律问题自行承担。