Вопрос
Я с подозрением отношусь к необъяснимому увеличению трафика на 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 посещений в час.
Отказ от ответственности:
Я разработчик кода (а не системный администратор), который должен поддерживать веб-серверы для машин, на которых выполняется написанный мной код.
непонятно, что вы пинговали / отслеживали и откуда. Но если это был переход в середине вывода traceroute, то переход с 190 мс на 1600 мс, вероятно, означает перегрузку сети. Если это связано с вашим событием и переключением пути маршрутизации, возможно, что часть сети вашего провайдера была атакована, включая ваш сервер.
У вашей проблемы нет единого решения. Есть много инструментов и подходов, например Разведчик, Keynote, Новая реликвия, 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. Если все они поступили от определенного пользовательского агента, вы просите их не сканировать ваш сайт с помощью чего-то похожего на файл ниже.
Пользовательский агент: MJ12bot (или другой сканер)
Запретить: /