Необъяснимый всплеск веб-трафика
Вопрос
Я подозреваю необъяснимое увеличение трафика на 1600% и значительное замедление, которое длилось около 10 минут. Я не уверен, была ли это попытка DoS-атаки, атака по словарю и т. Д. Независимо от того, какие действия я должен предпринять для мониторинга своего сервера (какие журналы мне следует посмотреть, какие инструменты следует использовать и т. Д.), Чтобы убедиться, ничего гнусного не случилось? Какие шаги я должен предпринять во время таких замедлений в будущем? Есть ли стандартный способ, чтобы сервер предупреждал меня во время такого всплеска трафика?
Все кровавые детали:
Один из моих клиентов сообщил о не отвечающем веб-сайте (Ruby on Rails через Apache, Mongrel и mongrel_cluster на коробке CentOS 5) сегодня около 1:00.
Я был в режиме полного устранения неполадок, когда я получил электронное письмо в 1:15. Это было действительно очень медленно ssh
и загружать веб-страницы, но ping
вывод выглядел нормально (78 мс), и traceroute
с моей рабочей станции в Денвере показывалось медленное время на определенном прыжке на полпути от Далласа к серверу в Фениксе (1611,978 мс 195,539 мс). 5 минут спустя сайт был адаптивным traceroute
теперь направлялся через Сан-Хосе в Феникс. Я не мог найти что-то явно неправильное с моей стороны - загрузка системы выглядела вполне разумно (0,05 0,07 0,09), и я предположил, что это была просто проблема сети где-то. Просто чтобы быть в безопасности, я перезагрузил машину в любой момент.
Спустя несколько часов я вошел в Google Analytics, чтобы посмотреть, как все выглядело в этот день. У меня был огромный всплеск посещений: обычно этот сайт в среднем посещает 6 раз в час, но в 1:00 я получил 130 (увеличение на 1600%)! Похоже, что почти все эти хиты принадлежат 101 разным хостам, разбросанным по всему миру. Каждый посетитель находился на веб-сайте в течение 0 секунд, и каждое посещение было прямым (т. Е. Веб-страница не похожа на косую черту), и каждое посещение было отскоком.
Примерно с 1:30 все идет гладко, и я возвращаюсь в среднем на 6 посещений в час.
Отказ от ответственности:
Я разработчик кода (не системный администратор), который должен поддерживать веб-серверы для машин, на которых выполняется код, который я пишу.
2 ответа
Неясно , что вы пинговали / отслеживали и откуда. Но если это был скачок в середине вывода traceroute, то скачок от 190 мс до 1600 мс, вероятно, означает перегрузку сети. Если это соответствует вашему событию и переключению пути маршрутизации, возможно, что была атакована часть сети вашего провайдера, включая ваш сервер.
Нет единого решения вашей проблемы. Существует множество инструментов и подходов, таких как Scout, Keynote, New Relic, Nagios и т. Д. Все зависит от ситуации. Что бы вы ни решили сделать, просто не забывайте одну вещь: если вы контролируете что-то на сервере и с этого сервера, и этот сервер становится недоступным, вы теряете любые средства, чтобы сообщить себе, что он не работает:)
Я хотел бы посмотреть, если бы соединения пришли от какого-то веб-сканера. Был скачок в количестве соединений, которые приходят из приложений, таких как http://www.majestic12.co.uk/
Этот конкретный сервис действует как SETI@Home или Folding@Home и объединяет просканированные данные от распределенных пользователей обратно в центральное местоположение. Majestic12 использует следующие браузерные агенты: http://www.majestic12.co.uk/projects/dsearch/mj12bot.php
Однако Majestic следует правилам, настроенным в файле robots.txt, поэтому вы можете заблокировать его обход вашего сайта, а также существуют аналогичные сканеры, работающие в этом распределенном режиме.
Чтобы определить, так ли это, вы можете просмотреть свои веб-журналы, чтобы попытаться определить пользовательский агент, с которым было установлено соединение. Хотя это не всегда сообщается правильно, оно должно давать и указывать, действительно ли трафик поступил от какого-то бота.
Если вы обнаружите, что соединения были получены с какого-то веб-сканера, вы попытаетесь ограничить доступ к нему с помощью файла robots.txt. Если все они получены от определенного пользовательского агента, вы просите их не сканировать ваш сайт с помощью чего-то похожего на файл ниже.
User-agent: MJ12bot (или каким-либо другим сканером)
Disallow: /