Перейти к содержимому

Access log что это

  • автор:

Access.log

access.log — файл, использующийся веб-серверами (Apache, nginx, lighthttpd, boa, прокси-сервером squid и т.д.) для записи обращений к сайту.

Является текстовым файлом, на каждой строчке которого записывается одно обращение к серверу. Используется для сбора статистики сайта (для этого используются специальные аналитические инструменты, например, WebAlizer) и для обнаружения возможных злоупотреблений на сайте.

Наиболее часто используемым форматом access.log является combined, при котором данные записываются в следующем виде:

%h %l %u %t \"%r\" %>s %b \"%i\" \"%i\"
  • %h — хост/IP-адрес, с которого произведён запрос к серверу.
  • %t — время запроса к серверу и часовой пояс сервера.
  • %r — тип запроса, его содержимое и версия.
  • %s — код состояния HTTP.
  • %b — количество отданных сервером байт.
  • % — URL-источник запроса.
  • % — HTTP-заголовок, содержащий информацию о запросе (клиентское приложение, язык и т.д.).
  • % — имя Virtual Host, к которому идет обращение

См. также

  • error.log
  • Журналирование

Источники

Wikimedia Foundation . 2010 .

Как читать log-файлы access.log?

Лог-файл access.log в папке /var/log/nginx/ очень быстро наполняется.
Не совсем пойму как читать лог-файл. Вот несколько строк:

190.2.143.139 - - [09/Jan/2019:18:52:39 +0300] "GET http://paxtonguiw14703.blogstival.com/?s=ortuez HTTP/1.1" 200 8780 "-" "Mozilla/5.0 (iPhone9,4; U; CPU iPhone OS 10_0_1 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A403 Safari/602.1" 5.9.89.80 - - [09/Jan/2019:18:52:39 +0300] "GET http://89.43.64.58:5878/safrantv/default.stream/playlist.m3u8?dv?V39E5K3CKGRIN3PZX6 HTTP/1.1" 499 0 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/4.0; InfoPath.2; SV1; .NET CLR 2.0.50727; WOW64)" 5.9.89.80 - - [09/Jan/2019:18:52:39 +0300] "GET http://shaiyaresurgence.com/en/?2CWP4398K93SJ49YTH HTTP/1.1" 499 0 "-" "Mozilla/5.0 (BlackBerry; U; BlackBerry 9850; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.254 Mobile Safari/534.11+" 5.9.89.80 - - [09/Jan/2019:18:52:40 +0300] "GET https://shaiya-immortal.com/en/?AGNC9FVFEB0YW9JI5Y HTTP/1.1" 499 0 "-" "Opera/12.0(Windows NT 5.2;U;en)Presto/22.9.168 Version/12.00" 5.9.89.80 - - [09/Jan/2019:18:52:40 +0300] "GET http://89.43.64.58:5878/safrantv/default.stream/playlist.m3u8?dv?OHPMS0189ALA38QU8F HTTP/1.1" 499 0 "-" "Mozilla/5.0 (BlackBerry; U; BlackBerry 9850; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.254 Mobile Safari/534.11+" 5.9.89.80 - - [09/Jan/2019:18:52:40 +0300] "GET http://89.43.64.58:5878/safrantv/default.stream/playlist.m3u8?dv?VM2LLYOI7I6AVJUZU3 HTTP/1.1" 499 0 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/4.0; InfoPath.2; SV1; .NET CLR 2.0.50727; WOW64)" 5.9.89.80 - - [09/Jan/2019:18:52:40 +0300] "GET https://www.baidu.com/link?url=IoWGYpKKMxUWnB70_bAN-rbbEq3e1IqQ8D54czB-JFG HTTP/1.1" 499 0 "-" "Opera/9.80 (Windows NT 5.1; U; zh-sg) Presto/2.9.181 Version/12.00" 5.9.89.80 - - [09/Jan/2019:18:52:40 +0300] "GET http://shaiyaresurgence.com/en/?2MA7M9GFSXJ8Q3M7IV HTTP/1.1" 499 0 "-" "Mozilla/5.0 (BlackBerry; U; BlackBerry 9850; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.254 Mobile Safari/534.11+" 5.9.89.80 - - [09/Jan/2019:18:52:40 +0300] "GET https://shaiya-immortal.com/en/?X52D93PP826SEW0LME HTTP/1.1" 499 0 "-" "Opera/12.0(Windows NT 5.2;U;en)Presto/22.9.168 Version/12.00" 5.9.89.80 - - [09/Jan/2019:18:52:40 +0300] "GET http://89.43.64.58:5878/safrantv/default.stream/playlist.m3u8?dv?H23POYJDRJVUT18RFK HTTP/1.1" 499 0 "-" "Mozilla/5.0 (BlackBerry; U; BlackBerry 9850; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.254 Mobile Safari/534.11+" 5.9.89.80 - - [09/Jan/2019:18:52:40 +0300] "GET http://89.43.64.58:5878/safrantv/default.stream/playlist.m3u8?dv?2GKY8JYDX9JJ08CVL7 HTTP/1.1" 499 0 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/4.0; InfoPath.2; SV1; .NET CLR 2.0.50727; WOW64)" 5.9.89.80 - - [09/Jan/2019:18:52:40 +0300] "GET https://www.baidu.com/link?url=IoWGYpKKMxUWnB70_bAN-rbbEq3e1IqQ8D54czB-JFG HTTP/1.1" 499 0 "-" "Opera/9.80 (Windows NT 5.1; U; zh-sg) Presto/2.9.181 Version/12.00" 5.9.89.80 - - [09/Jan/2019:18:52:40 +0300] "GET http://shaiyaresurgence.com/en/?DT9FBEYS4L71I1P8OS HTTP/1.1" 499 0 "-" "Mozilla/5.0 (BlackBerry; U; BlackBerry 9850; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.254 Mobile Safari/534.11+"

В строках нет ни URL-адресов моего сайта, ни ip-адресов. Я так понимаю выполняется GET запрос по одному из адресов выше. Только причем тут мой сервер? Как это остановить? =)

Из-за быстрого увеличения логов пропадает место на диске.
Я попробовал настроить logrotate для nginx вот так. Поставил ограничение на 5М, но толку нет. После преодоления размера в 5М лог продолжает расти, а не превращается в архив.

/var/log/nginx/*.log < size=5M daily missingok rotate 14 compress delaycompress notifempty create 0640 www-data adm sharedscripts prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi \ endscript postrotate invoke-rc.d nginx rotate >/dev/null 2>&1 endscript >
  • Вопрос задан более трёх лет назад
  • 9417 просмотров

5 комментариев

Простой 5 комментариев

Что такое логи и как с ними работать

Логи (log-файлы, журналы) — это текстовые файлы, куда автоматически записываются все события, которые происходили в компьютерной системе. Их основная цель — помочь определить, почему на сайте или в программе возникает ошибка, а также найти того, кто совершил какое-то действие.

Подробнее о том, как найти логи в Linux и как их обрабатывать — рассказываем в статье.

Виды логов

Разные программы на сервере как правило генерируют собственные лог-файлы. Вот наиболее основные из них:

  • главный системный лог — общая информация о системе, начиная с момента её запуска (данные о действиях с ядром Linux, обнаруженных устройствах, сетевых интерфейсах, работе различных служб вроде FTP-сервера или DNS-сервера, и ещё много о чём другом).
  • лог загрузки системы — сообщения от ядра. Сюда записываются данные об устройствах, которые загружаются вместе с системой. С помощью этого лога можно выполнить отладку системы, если она не загружается.
  • журнал авторизации пользователей — информация об авторизации пользователей. Здесь вы найдёте записи об успешных и неуспешных попытках входа в систему, логины пользователей, используемые механизмы аутентификации.
  • логи веб-сервера — журнал запросов к веб-серверу, информация об ошибках. Эта информация поможет найти битые ссылки и причины ошибок на сайте, а также покажет, кто слишком сильно нагружает сервер или пытается его взломать.
  • лог почтового сервера — записи обо всех отправленных и доставленных сообщениях, ошибки почтового сервера, причины отклонения писем.
  • логи базы данных — запросы к базам данных, ошибки сервера.
  • логи планировщика Cron — протокол выполненных задач, сообщения от самих команд, ошибки при запуске крона.

Это далеко не все логи, а только те, которые по нашему опыту используют чаще всего. В зависимости от того, какое программное обеспечение установлено у вас на сервере, у вас могут быть и другие лог-файлы.

Как найти логи

Доступ к логам будет отличаться в зависимости от того, какой у вас хостинг: простой виртуальный хостинг, либо же VPS/выделенный сервер. Рассмотрим отдельно, как посмотреть логи сайта в каждой из этих ситуаций.

На VPS или выделенном сервере

В этом случае у вас будет полный доступ к логам сервера. По умолчанию большинство логов Linux хранится в папке /var/log/, но некоторые программы могут переопределять этот путь и сохранять свои логи в других местах. А также стандартный путь к логам можно изменить вручную в конфигурационных файлах нужной программы.

Чтобы вывести полный список лог файлов в папке /var/log/ на вашем сервере, используйте команду ls:

ls -l /var/log/

Вот как называются основные логи, которые вы найдёте в этой папке:

  • /var/log/syslog или /var/log/messages — главный системный лог Linux.
  • /var/log/auth.log или /var/log/secure — журнал авторизации пользователей.
  • /var/log/maillog/ или /var/log/mail.log — логи почтового сервера.
  • /var/log/httpd/ или /var/log/apache2/ — логи веб-сервера Apache. Журнал доступа находится в файле access.log, а логи ошибок в файле error.log.
  • /var/log/nginx/ — логи веб-сервера Nginx.
  • /var/log/dmesg — лог загрузки системы.
  • /var/log/mysql/ — логи базы данных MySQL.
  • /var/log/cron — логи планировщика Cron.

Чтобы посмотреть логи в Linux, скорее всего, вам понадобится root доступ к серверу. Дальше можно использовать такие стандартные команды:

  • tail — вывести последние 10 строк;
  • head — вывести первые 10 строк;
  • cat — вывести весь лог-файл;
  • grep — вывести в лог-файле все вхождения указанного слова или регулярного выражения.

Также есть вариант — установить утилиту lnav. Её удобство в том, что она поддерживает подсветку синтаксиса. Возможно, с её помощью работать с логами будет удобнее.

На виртуальном хостинге

В этом случае доступ к логам сервера будет ограничен. Вы сможете посмотреть только то, что настроит для вас провайдер хостинга. Обычно это логи ошибок веб-сервера и посещений сайта, а также логи PHP.

Вот как найти логи в панели управления cPanel, которую предоставляем у себя на виртуальном хостинге мы и некоторые другие провайдеры.

На главной странице cPanel найдите раздел «Метрики». В нём есть несколько приложений, где хранятся логи: «Посетители» и «Необработанный журнал доступа».

Logs, logfiles, file log, server logs, логи, лог-файлы — что это такое

В приложении «Ошибки» вы найдёте логи ошибок веб-сервера за последние два дня. Информация здесь подаётся в необработанном виде и сразу по всем доменам из вашего аккаунта. Всего здесь может быть до 300 записей.

Просмотр логов ошибок веб-сервера в cPanel

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

Просмотреть логи после скачивания можно при помощи любого текстового редактора.

Как читать логи сервера

Также в корневой папке вашего сайта в файле error_log будут логи с ошибками PHP. По умолчанию для основного домена эта папка называется public_html, а для дополнительного — также как и сам домен.

Как работать с логами

Как обрабатывать логи

Самый трудный момент при работе с логами — понять хоть что-то, что в них написано. Чтобы хоть немного помочь разобраться с этим моментом, вот расшифровка лог файлов на примере нескольких записей из основных логов.

Access.log

66.249.66.45 - - [25/Apr/2023:18:33:00 +0300] "GET /robots.txt HTTP/1.1" 404 24406 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

66.249.66.45 — IP-адрес посетителя.

“- -“ — два идентификатора посетителя. Первый идентификатор это identd. Второй это юзернейм посетителя, если он использовал HTTP-аутентификацию. В нашем примере оба идентификатора неизвестны, поэтому в логах стоят два прочерка.

[25/Apr/2023:18:33:00 +0300] — дата и время запроса.

“GET /robots.txt HTTP/1.1” — тип запроса, путь к запрашиваемому файлу и версия протокола HTTP.

404 — код состояния HTTP, которым сервер ответил на запрос.

24406 — размер файла в байтах без учёта заголовков ответа.

“-“ — страница, с которой совершили запрос. Прочерк в нашем примере означает, что посетитель обратился к URL напрямую.

“Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)” — данные о посетителе, который совершил запрос.

Error.log

2023-04-26 09:34:07.513128 [INFO] [25473] [T0] [65.108.46.177:48252#APVH_vashdomen.com] File not found [/home/username/public_html/wp-content/themes]

2023-04-26 09:34:07.513128 — дата и время, когда была сделана запись в логах.

[65.108.46.177:48252#APVH_vashdomen.com] — IP-адрес клиента, который совершил запрос, а также имя виртуального хоста, к которому он обращался.

File not found [/home/username/public_html/wp-content/themes] — текст ошибки и путь к файлу или папке, который её вызвал.

PHP error_log

[20-Apr-2023 17:16:29 UTC] PHP Fatal error: require(): Failed opening required '/home/username/public_html/wp-includes/class-wp-session-tokens.php' in /home/username/public_html/wp-settings.php on line 189

[20-Apr-2023 17:16:29 UTC] — дата и время возникновения ошибки.

PHP Fatal error: require(): Failed opening required ‘/home/username/public_html/wp-includes/class-wp-session-tokens.php’ — текст ошибки. Конкретно в этом примере ошибка в том, что PHP-обработчик не смог открыть файл class-wp-session-tokens.php, потому что файл либо отсутствует по указанному пути, либо к нему нет доступа.

in /home/username/public_html/wp-settings.php on line 189 — путь к файлу, в котором возникла проблема, с указанием проблемной строки.

Что дальше

После того как вы нашли нужные логи сервера и выяснили, в чём была причина ошибки, остаётся только исправить её. У нас есть отдельные статьи для ошибок, которые чаще всего возникают на хостинге:

  • Ошибка 403 Forbidden
  • Ошибка 500 Internal Server Error
  • Ошибка 503 Service Unavailable
  • Ошибка 504 Gateway Time-out

Если же проблема в том, что кто-то пытается взломать сайт или слишком сильно нагружает сервер тяжёлыми запросами, вам может понадобиться заблокировать этого пользователя. Это можно сделать в файле .htaccess.

А какими полезными инструментами для работы с логами пользуетесь вы? Расскажите в комментариях.

Что такое access.log

Access.log — это текстовый файл, который используется веб-серверами Apache, NGINX и другими, в котором содержится история обращений к веб-серверу. Также он может использоваться для обнаружения подозрительной активности.

Так выглядит access.log веб-сервера NGINX

текстовый файл веб-сервера NGINX acess.log

Рассмотрим, как расшифровываются записи в access.log. Каждая строка имеет одинаковый формат:

%h %l %u %t \»%r\» %>s %b \»%i\» \»%i\»

  • %h — IP-адрес, от которого был отправлен запрос к серверу
  • %t — время запроса и часовой пояс сервера
  • %r — тип и содержимое запроса
  • %s — код ответа HTTP
  • %b — количество отправленных сервером байт
  • % — URL-источник запроса
  • % — User-Agent устройства, сделавшего запрос
  • % — имя виртуального хоста, к которому идет обращение.

МИР Visa MasterCard СБП QIWI Wallet Безналичный платеж

Все способы

© 2009–2024 «HANDYHOST.RU» 8-800-505-68-01

  • Услуги
  • Хостинг сайтов
  • Домены
  • Конструктор сайтов
  • Linux VPS / Windows VPS
  • Выделенные серверы
  • SSL сертификаты
  • Клиентам
  • Контакты
  • О компании
  • Акции
  • Оборудование
  • Партнерская программа
  • Поддержка
  • Способы оплаты
  • Регламент
  • Документы
  • Справка

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *