Так что я новичок почти во всем, что связано с сервером. Недавно я запустил свой проект в производство. В настоящее время у него очень мало посетителей веб-сайта. Я запускаю его на простом сервере Digital Ocean Ubuntu 20.04. Теперь я заметил, что иногда внезапно из ниоткуда сайт полностью отключается (загрузка ЦП увеличивается с 0% до 100 менее чем за 10 минут), как показано на изображении ниже:
Теперь, чтобы быть полностью честным , Я действительно не знаю, с чего начать. Первым делом я проверил системные журналы сервера.
Я заметил огромное количество журналов 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% голландцы.
Могут ли эти блоки трафика быть причиной того, что загрузка ЦП иногда достигает 100% за считанные минуты? Стоит ли беспокоиться об этих блоках? И, наконец, каковы могут быть другие причины того, что сайт отключается в считанные минуты из ниоткуда с 0 пользователями?
Я посмотрел на процессы, которые в настоящее время используют память и ЦП.
Ниже приведен снимок экрана с выводом htop
:
Основываясь на заявленных комментариях и тому подобном, кроме проблемы UFW BLOCK, которая объясняется в другом месте, похоже, что ваше приложение перестает отвечать из-за какого-то типа атаки типа «отказ в обслуживании» - какой-то запрос передается в Node, что заставляет его съесть весь процессор и зависнуть. Вам нужно будет начать отслеживать журналы NodeJS и усилению вашего приложения - это будет что-то, связанное с вашим приложением или эксплойтом NodeJS, который успешно используется в вашем приложении.