所以我几乎对与服务器相关的任何事物都不太熟悉。我最近将我的项目推向了生产阶段。目前,它的网站访问者很少。我在一个简单的 Digital Ocean Ubuntu 20.04 服务器上运行它。现在我注意到,有时网站会突然完全离线(CPU 使用率在不到 10 分钟的时间内从 0% 上升到 100%),如下图所示:
现在说实话,我真的不知道从哪里开始查找。我首先检查的是服务器系统日志。
我注意到有大量的UFW BLOCK
日志。这是其中一个例子:
kernel: [ 1355.970674] [UFW BLOCK] IN=eth0 OUT=
MAC=02:02:e9:7b:70:dd:fe:00:00:00:01:01:08:00 SRC=45.143.200.34
DST=128.199.58.144 LEN=40 TOS=0x00 PREC=0x00 TTL=247 ID=27065 PROTO=TCP
SPT=56880 DPT=7361 WINDOW=1024 RES=0x00 SYN URGP=0
查看时间戳,我发现这些每隔几毫秒左右就会出现一次......
我从另一篇文章中了解到,这些是有关流量被阻止的日志。查看SRC
并搜索该 IP 地址时,大多数来自俄罗斯?这很奇怪,因为我的网站是荷兰的,只有 100% 的荷兰访客。
这些流量阻塞可能是 CPU 使用率有时在几分钟内达到 100% 的原因吗?我应该担心这些阻塞吗?最后,还有哪些其他原因导致该网站在几分钟内突然离线,且没有用户?
我查看了当前正在使用内存和 CPU 的进程。
下面是输出的截图htop
:
答案1
根据所述评论等,除了其他地方解释的 UFW BLOCK 问题之外,您的应用程序似乎由于某种类型的拒绝服务攻击而停止响应 - 某些请求被传递给 Node,导致它占用所有 CPU 并冻结。您需要开始跟踪您的 NodeJS 日志并强化您的应用程序 - 它将与您的应用程序或成功在您的应用程序上使用的 NodeJS 漏洞有关。