У меня есть один сайт, который при попадании паука просто срывается с ручками. Обычно вроде все нормально. У нас есть nagios montior, который сообщает, когда загрузка ЦП превышает 80%.
Когда мы получаем предупреждения, я начинаю просматривать логи через sudo tail -f access_log
. Чаще всего это паук.
Кажется, что он попался в один URL-адрес, который паук упаковал бесконечным количеством значений строки запроса.
Что я пробовал:
С тех пор я положил Disallow: *?*
в robots.txt.
Текущий top
читает:
Вопрос:
Есть ли другие методы, которые я мог бы использовать, чтобы сказать паукам, чтобы они успокоились на нашем сайте? При использовании процессов httpd в верхней памяти, могу ли я определить, какие страницы они вызывают, чтобы изолировать проблемные места на этом сайте?
То есть как мне найти и изолировать виновника?
Опечатки: Мы запускаем Apache 2.2.15 на RHEL 6.8 с memcache.
# apachectl -V
Server version: Apache/2.2.15 (Unix)
Server built: Feb 4 2016 02:44:09
Server loaded: APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Вы можете попробовать использовать lsof для чтения файлов, открытых процессом apache:
lsof -p PID
Также хорошей идеей является проверка журналов apache на наличие ошибок, соответствующих отметкам времени сканирования пауком в ваших журналах доступа.
Мне также нравится использовать goaccess, чтобы помочь проанализировать данные журнала и экстраполировать полезную информацию:
http://www.hackersgarage.com/goaccess-on-rhelcentos-6-linux-real-time-apache-log-analyzer.html
strace и ltrace также являются отличными утилитами, которые вы, возможно, захотите использовать для устранения неполадок.