Журналы error_log и access_log. Работа с журналами по FTP и SSH

Прежде чем приступить к прочтению статьи, вам будет полезно ознакомиться, что же такое SSH? Это вы можете сделать в нашей предыдущей статье, перейдя по ссылке: https://hoster.ru/faq/1074714-chto-takoe-ssh

Итак, давайте приступим. Сайты часто работают медленно или не работают вовсе, что сильно нас нервирует, а нервные клетки, как известно не восстанавливаются. В первую очередь, что необходимо сделать, так это выяснить, с чем это связано. Для этого предназначены логи, а также журналы error_log и access_log. Вот о них и пойдет дальше речь.

Error_log — лог ошибок. В зависимости от настроек в него могут попадать фатальные ошибки, «алерты», критические ошибки, обычные ошибки, предупреждения, уведомления, информация, подробные уведомления отладки.

Acces_log — тоже лог, но в него попадает информация о подключениях и запросах к сайту. Анализируя этот лог можно понять, к какому файлу чаще всего обращаются, какие запросы в какой файл отправляются и сколько было подключений с того или иного IP. Чаще всего в acces_log нас интересуют: IP клиента, подключающегося к вашему сайту, название файла, к которому идет обращение этого клиента, протокол, метод запроса (get/post), удаленный хост и http-заголовок.

В панели управления cp. hoster.ru логи можно увидеть в разделе «Управление» - «Хостинг» - «Управление файлами», в директории logs.

Для удобства работы лог можно скачать на локальный компьютер. 

 

Рассмотрим лог access_log

 

141.8.184.2 - - [08/Feb/2017:20:08:56 +0300] "GET /robots.txt HTTP/1.1" 404 298 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"

Данная выдержка из лога говорит нам о том, что восьмого февраля 2017 года в 20:08 к нам подключался YandexBot с IP 141.8.184.2. С помощью метода GET он попытался получить файл robots.txt, однако получил ответ 404 (файл не найден).

 

Crawl-Delay

Если ваш сайт внезапно стал медленно загружаться, а нагрузка на сервере возросла, проверьте через access_log частоту индексирования сайта поисковыми системами. Если в единицу времени вас индексируют все и сразу, то это может создать нагрузку и замедлить работу вашего сайта. Рекомендуем в данном случае настроить Crawl-Delay.

 

Однострочные команды при работе через SSH

Узнать, какие файлы чаще всего запрашиваются:

cat путь-до-access-лога | awk {'print $7'} | cut -d\? -f1| grep php | sort | uniq -c| sort -n

Список IP, подключавшихся к вашему сайту, и их количество:

cat путь-до-access-лога | awk '{ print $1 }' | sort | uniq -c | sort

В данном случае берется последний лог. Если настроена ротация, а нужно получить список за определенный день, можно сделать так:

cat logs/access_log_name* | grep '24/May/2017' | awk '{ print $1 }' | sort | uniq -c | sort

Если ратинированные логи сжаты, можно заменить cat на zcat.

 

Если хотим узнать, кому принадлежат IP (если мы ведем поиск вредоносного IP), а проверять каждый через сервис whois не хочется, можно сделать так:

cat logs/access_log  | grep '24/May/2017'  | awk '{ print $1 }' | sort | uniq -c | sort > black_ip

for i in $(cat  black_ip | awk '{ print $2 }'); do echo $i'  >>  '; whois $i | grep -E 'NetName|OrgName|OrgTechName|descr'  ;done > black_ip2

Выполнив команду cat black_ip2 мы увидим IP и его владельца.

 

Рассмотрим лог error_log

[Mon Feb 27 01:11:35 201] [error] [client 178.154.189.36] File does not exist: /home/srv113923/srv113923.hoster-test.ru/robots.txt

[Mon Feb 27 01:11:39 201] [error] [client 141.8.184.2] Directory index forbidden by Options directive: /home/srv113923/srv113923.hoster-test.ru/

 

Рассмотрим обе строки лога:

[Mon Feb 27 01:11:35 201] [error] [client 178.154.189.36] File does not exist: /home/srv113923/srv113923.hoster-test.ru/robots.txt

В данном случае лог сообщает нам о том, что клиент с IP 178.154.189.36 27 февраля пытался подключиться к сайту srv113923.hoster-test.ru и запросить файл robots.txt, однако не обнаружил его на сервере (File does not exist). Файл либо отсутствует на сервере, либо у него установлены некорректные права.

 

Если вы попытались продиагностировать лог ошибок, но у вас не получилось найти источник проблемы, свяжитесь с нашей технической поддержкой support@hoster.ru и мы вам обязательно поможем.