О web-разработке
и даже немного больше...

Подробнее о логах в Apache

Сейчас мы поговорим о логах всем известного веб-сервера Apache, точнее разберемся подробнее какие типы логов бывают, рассмотрим их уровни логирования и вывод сообщений. На первый взгляд, кажется, что лог сервера Apache представляет собой файл, в который пишется всё последовательно, и это никак не структурировано, однако это далеко не совсем так, и мы в этом сейчас убедимся.

Традиционно Apache создает два основных типа лог-файлов, это error_log и access_log. Как можно понять по названию самих файлов в файл error_log будут журналироваться сообщения об ошибках, а в файл access_log – запросы на веб-сервер. Настраиваются лог файлы в конфигурационном файле веб-сервера Apache, путь к файлу error_log задаются директивой:

LogLevel notice
ErrorLog /var/log/httpd/error_log

Стоит отметить, что сообщения об ошибках в свою очередь делятся на уровни, и задаются директивой LogLevel.

Существуют следующие уровни ошибок:
emerg — фатальные ошибки;
alert — необходимо немедленно исправить ситуацию;
crit — критические ошибки;
error — обычные ошибки;
warn — предупреждения;
notice — уведомления;
info — информация;
debug — подробные уведомления для отладки.

В зависимости от операционной системы пути по умолчанию к файлу ErrorLog могут отличаться, некоторые из них:
RHEL / Red Hat / CentOS / Fedora Linux

/var/log/httpd/error_log

Debian / Ubuntu Linux Apache

/var/log/apache2/error.log

FreeBSD

/var/log/httpd-error.log

Второй тип файла лога – лог доступа access_log, устанавливается директивой CustomLog:

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog /var/log/access_log common

Здесь так же можно настроить формат вывода сообщений в лог, за это отвечает директива LogFormat.
Рассмотрим значения, которые могут выводиться в лог файл access_log:

%a	# IP адрес клиента
%A	# IP адрес сервера
%B	# Размер ответа
%b	# Размер ответа без HTTP заголовков (только тело)
%{<var>Foobar</var>}C	# Значение Куки Foobar
%D	# Время обработки запроса в микросекундах
%{<var>FOOBAR</var>}e	# Значение переменной окружения FOOBAR
%f	# Название файла
%h	# Удаленный хост
%H	# Протокол запроса
%{<var>Foobar</var>}i	# Значение заголовка Foobar: в запросе
%k	# Количество keepalive запросов, обработанных в этом соединении
%m	# Метод запроса
%{<var>Foobar</var>}n	# Значение заметки Foobar из другого модуля
%{<var>Foobar</var>}o	# Значение заголовка Foobar: в ответе
%p	# Порт на сервере
%{<var>format</var>}p	# Порт canonical (сервера), local (текущий сервера) или remote (клиента)
%P	# ID дочернего процесса, который обслужил запрос
%q	# Строка запроса (query string)
%r	# Первая строка запроса
%R	# Обработчик, который генерирует ответ
%s	# Статус запроса
%t	# Время получения запроса
%{<var>format</var>}t	# Время получения запроса с форматом
%T	# Длительность обслуживания запроса в секундах
%u	# Удаленный авторизованный пользователь
%U	# Путь запроса без GET параметров
%v	# Значение ServerName
%X	# Статус соединения после окончания запроса:
	# "X" - соединение оборвалось перед окончанием запроса.
	# "+" - соединение осталось после отправки ответа (keepalive).
	# "-" - соединение закрыто после отправки ответа.
%I	# Количество полученных байт включая HTTP заголовки. Нужен mod_logio.
%O	# Количество отправленных байт.

Таким образом, формат вывода лога access_log может быть удобно настроен под ваши требования.
Пути по умолчанию к файлу access_log зависят от операционной системы, и могут быть следующие:

RHEL / Red Hat / CentOS / Fedora Linux

/var/log/httpd/access_log

Debian / Ubuntu Linux

/var/log/apache2/access.log

FreeBSD

/var/log/httpd-access.log

Стоит обратить внимание что чем больше данных будет выводиться в лог, тем быстрее будет переполняться лог, а это значит вам стоит учесть так же настройки ротации логов Apache, чтобы не было проблем с чтением при попытке открытия большого файла лога. На этом пока всё, надеюсь материал оказался вам полезен. Если вам понравился пост, вы можете помочь проекту, поделившись им в соц. сетях с друзьями. Спасибо!

Опубликован: 06.08.2017 г.

См. также:

Преимущества и недостатки веб-серверов Nginx и Apache
Как включить сжатие GZip в Nginx?
Ротация логов в Linux
Denwer в локальной сети
HTTP авторизация
Просмотр списка загруженных модулей Apache
httpd грузит процессор, что делать?
Тестирование сайта под нагрузкой

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

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

Комментарии
  • Загрузка...
Друзья сайта