Разное

Log dir apache: Логи error_log и access_log в Apache

Содержание

Логи error_log и access_log в Apache

Лог ошибок error_log

В Apache error log устанавливается директивой:

ErrorLog /var/log/httpd/error_log


Уровень логирования

Директива LogLevel позволяет указать уровень логирования:

LogLevel notice
ErrorLog /var/log/httpd/error_log


Возможные уровни

























emerg
Фатальные ошибки.
alert
Необходимо немедленно исправить ситуацию.
crit
Критические ошибки.
error
Обычные ошибки.
warn
Предупреждения.
notice
Уведомления.
info
Информация.
debug
Подробные уведомления для отладки.

Пути по умолчанию


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


Apache access_log

Лог доступа устанавливается директивой:

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


Формат

%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
Количество отправленных байт.

Путь по умолчанию

RHEL / Red Hat / CentOS / Fedora Linux

/var/log/httpd/access_log


Debian / Ubuntu Linux Apache

/var/log/apache2/access.log


FreeBSD

/var/log/httpd-access.log

#apache

ID: 172

🌐 Как анализировать и интерпретировать логи вебсервера Apache — Information Security Squad

Веб-серверы Apache могут генерировать много логов.

Эти логи содержат различную информацию, такую как HTTP-запросы, которые Apache обработал и ответил, и другие действия, специфичные для Apache.

Анализ журналов является важной частью администрирования Apache и обеспечения его правильной работы.

В этом руководстве мы рассмотрим различные параметры ведения журналов, представленные в Apache, и способы их интерпретации.

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

В этом руководстве вы узнаете как:

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

 Логи Apache и их расположение

Apache создает два разных файла журнала:

  • access.log хранит информацию обо всех входящих запросах на подключение к Apache. Каждый раз, когда пользователь посещает ваш сайт, это будет зарегистрирован здесь. Каждая страница, которую запрашивает пользователь, также будет зарегистрирована как отдельная запись.
  • error.log хранит информацию об ошибках, с которыми Apache сталкивается на протяжении всей своей работы. В идеале этот файл должен оставаться относительно пустым.

Расположение файлов журналов может зависеть от того, какую версию Apache вы используете и какой дистрибутив Linux вы используете.

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

Но по умолчанию вы сможете найти журналы доступа и ошибок в одном из следующих каталогов:

  • /var/log/apache/
  • /var/log/apache2/
  • /etc/httpd/logs/

Форматирование логов Apache

Apache позволяет вам настраивать, какая информация регистрируется и как представляется каждая запись в журнале, что мы рассмотрим позже в этом руководстве.

Обычный формат, которым следует Apache для представления записей журнала:

"%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\""

Вот как можно интерпретировать это форматирование:

  • %h –IP-адрес клиента.
  • %l –Это «идентификатор» на клиенте, который используется для идентификации. Это поле обычно пустое и представляется как дефис.
  • %u – Идентификатор пользователя клиента, если использовалась HTTP-аутентификация. Если нет, в записи журнала ничего для этого поля не будет отображаться.
  • %t –Отметка времени записи в журнале.
  • \%r\ –Строка запроса от клиента. Этот параметр покажет, какой метод HTTP был использован (например, GET или POST), какой файл был запрошен и какой протокол HTTP был использован.
  • %>s –Код состояния, который был возвращен клиенту. Коды 4xx (например, 404, страница не найдена) указывают на ошибки клиента, а коды 5xx (например, 500, внутренняя ошибка сервера) указывают на ошибки сервера. Другие числа должны указывать успешную работу (например, 200, ОК) или что-то еще, например, перенаправление (например, 301).
  • %O –Размер файла (включая заголовки) в байтах, который был запрошен.
  • \»%{Referer}i\»— Ссылка на ссылку.  Параметр говорит о том, как пользователь перешел на вашу страницу (по внутренней или внешней ссылке).
  • \»%{User-Agent}i\» – Содержит информацию о подключающемся веб-браузере клиента и операционной системе.

Типичная запись в журнале access.log будет выглядеть примерно так:

10.10.220.3 - - [17/Dec/2019:23:05:32 -0500] "GET /products/index.php HTTP/1.1" 200 5015 "http://example.com/products/index.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36"

Журнал ошибок ( error.log )немного более прост и легко интерпретируется.

Вот как может выглядеть типичная запись:

[Mon Dec 16 06:29:16.613789 2019] [php7:error] [pid 2095] [client 10.10.244.61:24145] script '/var/www/html/settings.php' not found or unable to stat

Это хороший способ узнать, сколько ошибок 404 встречают ваши посетители, и может помочь вам найти некоторые неработающие ссылки на вашем сайте.

Что еще более важно, эти логи могут предупредить вас о пропавших ресурсах или потенциальных проблемах с сервером.

В приведенном выше примере показана страница * .php, которая была запрошена, но отсутствует на сервере.

Настройка логов Apache

Ведение логов в Apache очень настраиваемо и может быть изменено с помощью пары файлов конфигурации.

В Ubuntu и Debian основной файл конфигурации для ведения журнала Apache находится здесь:

  • /etc/apache2/apache2.conf

Поскольку вы можете запускать несколько веб-сайтов (называемых виртуальными хостами) из одного экземпляра Apache, вы также можете настроить каждый из них для отдельного ведения и журналов доступа и ошибок.

Чтобы определить, как должны называться эти отдельные файлы журналов и где их сохранять, настройте этот файл:

  • /etc/apache2/sites-available/000-default.conf

На CentOS, RHEL и Fedora два файла конфигурации находятся, соответственно, в следующих местах:

  • /etc/httpd/conf/httpd.conf
  • /etc/httpd/conf.d/ (поместите дополнительные конфигурации VirtualHost в этот каталог)

Директивы логов

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

  • CustomLog — определяет, где хранится файл журнала доступа.
  • ErrorLog — определяет, где хранится файл журнала ошибок.
  • LogLevel — Определяет, насколько серьезным должно быть событие, чтобы его можно было зарегистрировать (подробнее см. Ниже).
  • LogFormat — Определяет, как должна быть отформатирована каждая запись в журнале доступа (подробнее см. Ниже).

LogLevel по умолчанию настроен на warn, что означает, что он будет записывать в журнал error.log предупреждения или более серьезные события.

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

Другие варианты включают (в порядке серьезности)crit, alert, и emerg.

Apache рекомендует использовать уровень как минимум crit.

В целях отладки вы можете временно настроить LogLevel на debug, но имейте в виду, что вы можете получить громоздкое количество записей в журнале ошибок (error.log).

LogFormat позволяет вам настроить внешний вид записей в журнале доступа ( acces.log ).

Если вы считаете, что пример записи в access.log (из приведенного выше примера логов Apache) немного сбивает с толку, вы не одиноки в этом мнении.

Apache позволяет вам настроить формат записей журнала, дабы вы могли настроить их более логичным способом.

Вы также можете использовать эту настройку, чтобы исключить определенную информацию, которая может оказаться неактуальной.

Модули логов Apache

Настройка логов, которую мы пока показываем в этом руководстве, относится к модулю Apache mod_log_config.

Чтобы расширить функциональность логов, вы можете загрузить другие модули Apache.

Они могут предоставить  вам некоторые дополнительные возможности, которые недоступны с настройками по умолчанию.

mod_log_forensic начинает запись перед запросом (когда заголовки получены впервые) и снова регистрируется после запроса.

Это означает, что для каждого запроса создаются две записи журнала, что позволяет администратору более точно измерять время ответа.

Определите местоположение вашего журнала форензики с помощью директивы CustomLog.

Например:

CustomLog ${APACHE_LOG_DIR}/forensic.log forensic

mod_logio записывает количество байтов, отправленных и полученных от каждого запроса.

Он предоставляет очень точную информацию, поскольку он также учитывает данные, присутствующие в заголовке и теле каждого запроса, а также дополнительные данные, которые требуются для зашифрованных соединений SSL / TLS.

Добавьте %I  и  O% % к директиве LogFormat, чтобы использовать дополнительные данные, предоставленные этим модулем.

Так же есть и другие модули; это лишь два из самых полезных.

Заключение

В этой статье мы увидели, как анализировать и интерпретировать acces.log и error.log Apache.

Мы также узнали, как настроить ведение журнала в файлах конфигурации Apache, чтобы сделать данные журнала более актуальными.

Вооружившись этими знаниями, вы сможете быстрее выявлять проблемы и решать их.

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

 

Логи в Apache | Apache

Каждому из нас хочется побыть «большим братом» и последить за своими посетителями. Это можно делать по-разному: поставить счетчик, например, HotLog, поставить особый скрипт, ну а некоторые делают это с помощью логов Apache. Да-да, вы не ослышались, Apache тоже ведет логи.

На практике необходимо понять значение всего двух директив: LogFormat и CustomLog. Есть еще директива ErrorLog, но лично я использую лог ошибок только для просмотра последних строчек, когда Apache не пускается. Все-таки скажу несколько слов о ErrorLog.

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

Практически никак не настраивается, однако есть важная директива LogLevel. Она дает указания серверу писать или не писать в лог ошибки различной степени тяжести. Например, директива

Заставит сервер жаловаться только на самые критические проблемы, когда сервер не запускается. Далее параметры по убывающей: alert, crit, error, warn, notice, info и, конечно же, мой любимый

При котором вам будет рассказано даже о том, что сервер все-таки открывает в данный момент файл конфигурации 🙂

Таким образом, если вам нужны логи ошибок, то в httpd.conf следует указать директиву ErrorLog с параметром «имя лога» (путь считается относительно ServerRoot) и LogLevel с параметром «степень точности». Далее все на вашей совести 🙂

Теперь о том, что считаю важным я: Combined Logs. Эти логи повествуют о том, кто, когда и зачем отправлял запросы к серверу. Правда, интересно? Здесь еще две директивы: LogFormat и CustomLog. Покопайтесь в каком-нибудь httpd.conf и вы обязательно увидите там что-нибудь типа

LogFormat "%h %l %u %t "%r" %>s %b" common CustomLog logs/access_log common

Хех, все понятно? Сейчас объясню что это значит. LogFormat принимает два параметра: описание формата лога и название этого формата. Как видите, лог, состоящий из «%h %l %u %t «%r» %>s %b» называется common. А что значат закорючки, читайте тут:
%h — IP клиента. Кстати, это запросто может быть и ип его прокси.
%l — это что-то непонятное, касающееся идентификации клиента по RFC 1413. Кстати, апач не пытается ее определить, если только директива IdentityCheck не установлена в On
%u — то, что было введено в качестве имени пользователя а HTTP-авторизации. То же самое, что и $HTTP_AUTH_USER 🙂
%t — время поступления запроса. В комментариях не нуждается.
%r — строка запроса клиента, например «GET /xxx.gif HTTP/1.1». Обычно заключается в кавычки, но поскольку кавычки — спецсимволы, они предваряются бэкслэшами — . Таким образом, то, что будет выглядеть в логе как строчка в кавычках, оформляется так: «%r»
%>s — код ответа сервера клиенту.
%b — размер ответа клиенту. В байтах.
%{Referer} — адрес страницы, откуда пришел посетитель.
%{User-agent} — тип браузера посетителя. Этот и предыдущий параметр тоже обычно указывают в кавычках, как и %r

Эти параметры можно комбинировать в любом порядке и в любом количестве. Захотите определять только IP посетителей — пишете так:

Вот и определен новый формат лога. В общем, комбинируйте как хотите. Но логи эта директива не создает. Чтобы сервер начал писать лог, надо потребовать этого директивой CustomLog, которая принимает два параметра: имя файла лога и его тип. Таким образом, чтобы записывать IP клиентов, надо добавить еще и такую строчку:

CustomLog logs/iponly.log iponly

И только после этого лог начнет нормально вестись. Кстати, популярным считается стандарт «combined log», описывающийся так:

LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined

Как видите, довольно информативно. А теперь на минуту представьте себе, что ваш сервер обрабатывает около миллиона запросов в день. И вам охота вести несколько логов. Ну это обычное явление: сколько скажете раз CustomLog, столько логов и создастся, а ну как вам захочется всех поисковиков, ищущих robots.txt писать в отдельный лог? Ладно. Рассказываю.

Есть еще такая полезная директива SetEnvIf (или SetEnvIfNoCase — то же самое, но без учета больших/маленьких букв), она позволяет в зависимости от условия определять переменные среды. Например:

SetEnvIf Request_URI "^robots.txt$" crawler

После этого переменная env будет равняться «crawler». Но это еще не все! В зависимости от значения этой переменной вы можете делать запись в разные логи! Вот так:

CustomLog logs/crawlers combined env=crawler CustomLog logs/clients combined env=!crawler

Вот так, нашему апачу палец в рот не клади 🙂 Не буду рассказывать почему robots.txt так странно написано, называется это регулярные выражения, а почитать про них можно либо в учебнике, либо в странице мануала перла по имени perlre. Вот так: man perlre. Под юниксом, конечно 🙂

Уфф… Все, вроде? Нет, есть еще пипы. Пипы (pipes) позволяют предварительно (прежде чем чего-то в логи записать), что-нибудь эдакое с ними сотворить, например сжать. Стандартный значок пипы в юниксе — вертикальная палка, так что если вам приспичит логи сразу сжимать, делайте так:

CustomLog "|/usr/bin/gzip -c >> /var/log/access_log.gz" common

Все под юниксом 🙂 Просто потому, что если у вас апач на винде, то логи вести незачем — врядли она у вас сервером работает %)

P.S. Большая часть этого материала — вольный перевод соотвествующих статей из Apache Manual. Он лежит здесь: http://httpd.apache.org.

P.P.S. Счастья вам и радости!

P.P.P.S. Ах, да… удобно, если надо что-то проверить в работе сервера, следить за логом в «реальном времени», вот так:

$ tail -f /etc/httpd/logs/logfile

телеграм канал. Подпишись, будет полезно!

Подробнее о логах в 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, чтобы не было проблем с чтением при попытке открытия большого файла лога. На этом пока всё, надеюсь материал оказался вам полезен. Если вам понравился пост, вы можете помочь проекту, поделившись им в соц. сетях с друзьями. Спасибо!

Управление логами Apache — «Хакер»

Apache Web server может не только показывать
страницы пользователям, но и со всей
тщательностью записывать данные об их
активности и ошибках. По умолчанию, все
сведения о запросах пользователей пишутся
в один лог, а об ошибках — в другой.
Естественно, смысл записей и их положение
на сервере можно произвольно настраивать,
чем мы сегодня и займемся.

Default Logs

Как я уже сказал в предисловии, по
умолчанию сервер пишет лог в два файла — /var/log/httpd/access_log
и error_log в той же директории. Такое положение
дел определяется, конечно, в httpd.conf
параметрами TransferLog и ErrorLog. Примерно это
происходит так:

TransferLog /data/apache/logs/gen_msg
ErrorLog /data/apache/logs/error_msg

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

ServerName www.company_a.com
DocumentRoot /data/apache/co_a/html
TransferLog /data/apache/co_a/logs/gen_msg
ErrorLog /data/apache/co_a/logs/error_msg

ServerName www.company_b.com
DocumentRoot /data/apache/co_b/html
TransferLog /data/apache/co_b/logs/gen_msg
ErrorLog /data/apache/co_b/logs/error_msg

Ясно, что в таком конфиге не только
документы будут разделяться по разным
каталогам, но и логи. Отметьте, что записи лежат вне DocumentRoot,
что довольно неплохо для обеспечения
безопасности.

Уровень логов

Существует несколько уровней при помощи
которых можно настроить глубину записи
активности Web-сервера. Уровни логов такие: emerg,
alert, crit, error, warn, notice, info
и debug. Дописывая определение уровня в
конец директивы, управляющей логгированием,
мы можем определить, что именно писать.
Например, я хочу заставить Apache записывать
неотложные записи и предупреждения только
для одного из доменов. В контейнере нужного
домена делаем так:

 
… 
LogLevel alert 

Формат Логов 

Формат, в котором сервер делает записи,
так же можно произвольно менять. Делается
это директивой LogFormat все в том же htttpd.conf.
По дефолту выглядит запись примерно так:

12.127.17.72 — russell [21/Jun/2004:11:50:20 -0500] 
«GET /cgi-bin/admin/index.cgi HTTP/1.1» 200 5528

В примере записан IP адрес или имя хоста,
идентификационная информация клиента, имя
пользователя, дата и время. В кавычках —
метод запроса и имя запрашиваемого файла с
версией HTTP. После этого — результат, статус и
количество переданных байт. В примере видно,
что код 200 (ОК).

Для изменения формата  надо описать его
в LogFormat и передать имя потом в описание лога.
Если описание дается вне контейнера, то его
можно использовать для любого лога, в
данном примере задается путь и формат лога:

LogFormat «Date: %t, Host: %h, User: %u, File Requested: %r» simple 
… 

… 
CustomLog /data/apache/co_a/logs/gen_msg simple 
… 

Помимо приведенных в примере кодов можно
использовать %a для IP адреса, %b для
количества байт, %f для имени файла, %i для
заголовка запроса, %s для статуса. Полностью
список кодов можно найти
на сайте Apache. Пример работы приведенного
выше лога:

Date: [21/Jun/2004:22:21:10 -0500], 
Host: 12.127.17.72, User: russell, 
File Requested: GET /cgi-bin/admin/index.cgi HTTP/1.1

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

CustomLog search_eng_log «%{Referer}i»

Обратите внимание, что {Referer} идет между %
и i, а так же на то, что пропущено
создание имени для упрощения описания.
Такой лог будет складировать адрес
поисковика и поисковый параметр — очень
удобно для понимания кто и что находит на
сайте. Для
примера можно попробовать писать {User-agent}
пытаясь узнать кто и каким броузером лазит
на сайт. 

Включение и исключение

На своем сайте я предпочитаю запросы с
собственной рабочей станции записывать в
отдельный лог, это упрощает отладку
скриптов и самого сервера. Вводим
переменную и по ней определяем куда и что
класть:

SetEnvIf Remote_Addr «12.127.17.72» my_stuff
CustomLog logs/my_access complex env=my_stuff
CustomLog logs/gen_msg simple env=!my_stuff

Ротация

Всем понятно, что логи приличного сервера
разрастаются довольно быстро. По умолчанию
они очищаются каждую неделю: access_log
копируется в access_log.1, access_log.1 в access_log.2 и так
далее (в обратном порядке разумеется).
Однако если вы устанавливаете собственные
логи, то нужно задать и их ротацию. Сделать
это можно несколькими путями. ИМХО лучше
всего написать простой скрипт для cron, который
затем регулярно выполнять:

#!/bin/bash
mv -f gen_msg.2 gen_msg.3
mv -f gen_msg.1 gen_msg.2
mv -f gen_msg gen_msg.1
apachectl graceful

Apache: debug лог и LogLevel

Для управления уровнем логгирования в Apache HTTP сервере — используйте директиву LogLevel из модуля core.

LogLevel может принимать один из уровней детализации данных:

  • merg
  • alert
  • crit
  • error
  • warn
  • notice
  • info
  • debug

По умолчанию LogLevel установлен на уровен warning.

Пример:

<VirtualHost *:80>
        ...
        LogLevel debug
        ErrorLog ${APACHE_LOG_DIR}/music/music.domain.tld-error.log
        CustomLog ${APACHE_LOG_DIR}/music/music.domain.tld-access.log combined
        ...
</VirtualHost>

И результат:

==> /var/log/apache2/music/music.domain.tld-error.log <==
[Tue Jul 19 08:48:00.422934 2016] [authz_core:debug] [pid 16648] mod_authz_core.c(802): [client 194.***.***.45:47860] AH01626: authorization result of Require all granted: granted
[Tue Jul 19 08:48:00.422964 2016] [authz_core:debug] [pid 16648] mod_authz_core.c(802): [client 194.***.***.45:47860] AH01626: authorization result of <RequireAny>: granted
[Tue Jul 19 08:48:00.423160 2016] [authz_core:debug] [pid 16648] mod_authz_core.c(802): [client 194.***.***.45:47860] AH01626: authorization result of Require all granted: granted
[Tue Jul 19 08:48:00.423175 2016] [authz_core:debug] [pid 16648] mod_authz_core.c(802): [client 194.***.***5.45:47860] AH01626: authorization result of <RequireAny>: granted
[Tue Jul 19 08:48:01.306158 2016] [deflate:debug] [pid 16648] mod_deflate.c(849): [client 194.***.***.45:47860] AH01384: Zlib: Compressed 7414 to 2692 : URL /index.php

==> /var/log/apache2/music/music.domain.tld-access.log <==
194.105.145.45 - - [19/Jul/2016:08:48:00 +0000] "GET / HTTP/1.1" 200 3121 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/51.0.2704.79 Chrome/51.0.2704.79 Safari/537.36"

Указывая LogLevel без указания модуля — он применяется ко всем модулям Apache, загруженным в настоящий момент.

Что бы изменить уровень логгирования для конкретного модуля — укажите его через двоеточие.

например, что бы убрать из лога authz_core:debug:

<VirtualHost *:80>
        ...
        LogLevel debug authz_core:emerg
        ErrorLog ${APACHE_LOG_DIR}/music/music.domain.tld-error.log
        CustomLog ${APACHE_LOG_DIR}/music/music.domain.tld-access.log combined
        ...
</VirtualHost>

 



Раздел: Apache HTTP Server HOWTO’s UNIX/Linux Web servers
Метки: Apache HTTP Server, debug

Основы ведения журнала Apache

— полное руководство по ведению журнала

Журнал Apache регистрирует события, которые обрабатывались веб-сервером Apache, включая запросы с других компьютеров, ответы, отправленные Apache, и действия, внутренние для сервера Apache. В этом разделе руководства объясняются основы ведения журналов Apache, включая типы журналов, создаваемых Apache, где они хранятся и как их интерпретировать. Мы также рассмотрим сложные темы, такие как настройка пользовательских форматов журналов и настройка модулей для получения более полных данных.

Типы журналов Apache

Apache создает журналы двух типов: журналы доступа и журналы ошибок.

Журнал доступа

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

 10.185.248.71 - - [09 / Янв / 2015: 19: 12: 06 +0000] 808840 "GET / inventoryService / inventory / PurchaItem? UserId = 20253471 & itemId = 23434300 HTTP / 1.1 «500 17» - «Apache-HttpClient / 4.2.6 (java 1.5)» 

Журнал ошибок

Журнал ошибок содержит информацию об ошибках, с которыми веб-сервер столкнулся при обработке запросов, таких как отсутствующие файлы. Он также включает диагностическую информацию о самом сервере. Вот пример журнала ошибок:

 [13 марта, 19:04:13 2014] [ошибка] [клиент 50.0.134.125] Файл не существует: /var/www/favicon.ico 

Расположение журналов

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

Debian / Ubuntu / Linux Mint
Конфигурация Redhat / Fedora / CentOS
OpenSUSE

Настройка журналов Apache

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

Директива об уровне журнала

Директива LogLevel определяет минимальный уровень серьезности событий, которые регистрируются в конкретном месте назначения. Уровень серьезности представляет, насколько важно событие, и может варьироваться от «Emerg» до «Trace8», где «Emerg» представляет события, которые могут привести к нестабильности, а «Trace8» представляет сообщения уровня трассировки. Например, LogLevel crit разрешит журналы с серьезностью «Crit», «Alert» и «Emerg», но проигнорирует все остальные уровни.

Формат журнала

Директива LogFormat управляет компоновкой и форматированием событий журнала. Apache по умолчанию использует общий формат журнала (CLF), но вы можете указать собственную строку формата, чтобы изменить поля, включенные в каждый журнал.

Вы также можете использовать директиву CustomLog для изменения местоположения файла журнала. В Linux Apache обычно записывает журналы в каталоги / var / log / apache2 или / var / log / httpd в зависимости от вашей ОС и переопределений виртуального хоста.Вы также можете определить строку LogFormat после имени файла, которая будет применять только строку формата к этому файлу.

Например, следующая конфигурация записывает журналы в logs / access_log с использованием стандартного «общего» формата. Подкаталог logs / относится к каталогу, указанному в директиве ServerRoot:

 LogFormat "% h% l% u% t \"% r \ "%> s% b" общий
CustomLog "logs / access_log" общий 

CustomLog «logs / access_log» общий

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

  1. %> s — Код состояния HTTP для запроса. Это показывает окончательный статус запроса после любого внутреннего перенаправления; для исходного статуса используйте% s.
  2. % U — Запрошенный путь URL-адреса, исключая любые дополнительные параметры URL-адреса, такие как строка запроса.
  3. % a — IP-адрес клиента, отправляющего запрос.Это полезно для определения трафика из определенного источника.
  4. % T — Сколько времени ушло на обработку запроса в секундах. Это полезно для измерения скорости вашего сайта. Используйте% D, чтобы произвести такое же измерение в микросекундах.
  5. % {UNIQUE_ID} e — Также известный как идентификатор запроса, он регистрирует уникальный идентификатор для каждого запроса. Это полезно для отслеживания запроса от Apache к серверу веб-приложений.

Присвоение псевдонимов

LogFormat строкам можно назначить псевдонимы, которые затем можно использовать с директивой CustomLog для записи журналов с использованием указанного формата.Это позволяет использовать один и тот же формат журнала для нескольких файлов журнала без необходимости каждый раз переопределять формат. Это особенно полезно при использовании разных файлов журнала для нескольких виртуальных хостов.

Например, давайте создадим пример формата и назовем его vhost_combined. Затем мы создадим директиву CustomLog , которая записывает журналы в файл с использованием формата vhost_combined.

 LogFormat "% v:% p% h% l% u% t"% r "%> s% O"% {Referer} i ""% {User-Agent} i "" vhost_combined
CustomLog / var / log / apache2 / vhost.журнал vhost_combined 

Форматирование как JSON

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

JSON (сокращение от JavaScript Object Notation) — гибкий формат для хранения структурированных данных.JSON хранит коллекцию вложенных пар имя / значение, что позволяет хранить практически любой тип и структуру данных. JSON также эффективно самодокументируется, поскольку имя ключа описывает данные, которые он содержит. JSON поддерживает множество основных типов данных, включая строки, числа, логические значения, массивы и значения NULL.

Вот пример LogFormat , который хранит журналы в формате JSON:

 LogFormat "{\" время \ ": \"% t \ ", \" remoteIP \ ": \"% a \ ", \" host \ ": \"% V \ ", \" request \ ": \ "% U \", \ "query \": \ "% q \", \ "method \": \ "% m \", \ "status \": \ "%> s \", \ "userAgent \ ": \"% {User-agent} i \ ", \" referer \ ": \"% {Referer} i \ "}" 

Переопределения виртуального хоста по умолчанию

виртуальных хостов (vhosts) используются для запуска нескольких веб-сайтов на одном сервере Apache.Вы можете определить отдельную конфигурацию журналирования для каждого виртуального хоста, которому будет отдан приоритет над глобальной конфигурацией журналирования. Это позволяет, например, регистрировать каждый веб-сайт в отдельном каталоге. Если оставить эти параметры без значений по умолчанию для глобальной конфигурации ведения журнала.

Например, следующая конфигурация предназначена для виртуального хоста example.com. Журналы записываются в отдельные файлы access.log и error.log в каталоге /var/www/example.com/logs :

 
     Пример ServerName.com
     ServerAdmin [email protected]
     DocumentRoot /var/www/example.com
     LogLevel info ssl: warn
     ErrorLog /var/www/example.com/logs/error.log
     CustomLog /var/www/example.com/logs/access.log, пример
 

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

Debian / Ubuntu / Linux Mint

В дистрибутивах на основе Debian конфигурацию vhost по умолчанию для незашифрованных сайтов (порт 80) можно найти по адресу / etc / apache2 / sites-available / 000-default.conf . Конфигурация виртуального хоста по умолчанию для сайтов, зашифрованных с помощью SSL / TLS (порт 443): /etc/apache2/sites-available/default-ssl.conf .

Таблица директив по умолчанию

Директива / установка Файл конфигурации Путь / значение
* СУФФИКС / и т.д. / apache2 / envvars (условную логику см. В файле конфигурации)
** APACHE_LOG_DIR / и т.д. / apache2 / envvars экспорт APACHE_LOG_DIR = / var / log / apache2 $ SUFFIX
AccessLog / etc / apache2 / sites-available / 000-default.conf CustomLog $ {APACHE_LOG_DIR} /access.log вместе
Журнал ошибок /etc/apache2/apache2.conf ErrorLog $ {APACHE_LOG_DIR} /error.log
LogLevel /etc/apache2/apache2.conf предупредить
Формат журнала /etc/apache2/apache2.conf LogFormat «% v:% p% h% l% u% t«% r »%> s% O«% {Referer} i »«% {User-Agent} i »» vhost_combinedLogFormat «% h% l% u% t «% r»%> s% O «% {Referer} i» «% {User-Agent} i» »комбинированныйLogFormat«% h% l% u% t «% r»%> s% O »commonLogFormat «% {Referer} i ->% U» refererLogFormat «% {User-agent} i» агент
CustomLog / etc / apache2 / conf-available / other-vhosts-access-log.conf CustomLog $ {APACHE_LOG_DIR} /other_vhosts_access.log vhost_combined.

* Условная переменная среды. Обеспечивает поддержку нескольких экземпляров сервера Apache.

** Переменная среды. Используется для динамической установки исходного пути к журналу.

Red Hat / Fedora / CentOS

В дистрибутивах на основе Red Hat основной файл конфигурации находится по адресу /etc/httpd/conf/httpd.conf . Вы можете разместить дополнительные файлы конфигурации vhost в / etc / httpd / conf.d Каталог , который автоматически считывается сервером при запуске.

Таблица директив по умолчанию

Директива

Файл конфигурации

Путь / значение

AccessLog

/etc/httpd/conf/httpd.conf

/ вар / журнал / httpd / access_log

Журнал ошибок

/ и т.д. / httpd / conf / httpd.conf

/ вар / журнал / httpd / error_log

LogLevel

/etc/httpd/conf/httpd.conf

предупредить

* Формат журнала

/etc/httpd/conf/httpd.conf

LogFormat «% h% l% u% t«% r »%> s% b«% {Referer} i »«% {User-Agent} i »» комбинированный LogFormat «% h% l% u% t«% r «%> S% b» общий

** Формат журнала

/ и т.д. / httpd / conf / httpd.conf

LogFormat «% h% l% u% t«% r »%> s% b«% {Referer} i »«% {User-Agent} i »% I% O» вместе

* CustomLog

/etc/httpd/conf/httpd.conf

CustomLog «журналы / access_log» объединены

* При условии загруженного модуля log_config_module.

** При условии, что загружен модуль logio_module.

OpenSUSE

В OpenSUSE конфигурация vhost по умолчанию для незашифрованных сайтов (порт 80) находится в / etc / apache2 / default-vhost.conf , а конфигурация по умолчанию для сайтов, зашифрованных с помощью SSL / TLS, находится по адресу /etc/apache2/default-vhost-ssl.conf .

Таблица директив по умолчанию

Директива

Файл конфигурации

Путь / значение

AccessLog

/etc/apache2/sysconfig.d/global.conf

/ вар / журнал / apache2 / access_log

Журнал ошибок

/ и т. Д. / Apache2 / httpd.conf

/ вар / журнал / apache2 / error_log

LogLevel

/etc/apache2/sysconfig.d/global.conf

предупредить

* Формат журнала

/etc/apache2/mod_log_config.conf

LogFormat «% h% l% u% t«% r »%> s% b» commonLogFormat «% v% h% l% u% t«% r »%> s% b» vhost_commonLogFormat «% {Referer} i ->% U »refererLogFormat«% {User-agent} i »agentLogFormat«% h% l% u% t «% r»%> s% b «% {Referer} i» «% {User-Agent} i» »ComcombinedLogFormat «% v% h% l% u% t«% r »%> s% b«% {Referer} i »«% {User-Agent} i »» vhost_combined

** Формат журнала

/ и т.д. / apache2 / mod_log_config.conf

LogFormat «% h% l% u% t«% r »%> s% b«% {Referer} i »«% {User-Agent} i »% I% O» вместе

*** Формат журнала

/etc/apache2/mod_log_config.conf

Logformat «% t% h% {SSL_PROTOCOL} x% {SSL_CIPHER} x«% r »% b» ssl_commonLogformat «% t% h% {SSL_PROTOCOL} x% {SSL_CIPHER} x«% r »% b«% {Referer } i »«% {User-Agent} i »» ssl_combined

* CustomLog

/ и т.д. / apache2 / sysconfig.d / global.conf

CustomLog / var / log / apache2 / access_log в сочетании

* При условии загруженного модуля log_config_module.

** При условии, что загружен модуль logio_module.

*** При условии загруженного mod_ssl.

Модули, связанные с журналом

Веб-сервер Apache предлагает ряд модулей, которые либо изменяют способ работы Apache, либо расширяют его возможности. Следующие модули добавляют или изменяют поведение журнала полезными способами.

mod_log_config

Это базовый модуль ведения журнала, который использует Apache, и тот, который мы рассмотрели в этом разделе руководства.

mod_log_debug

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

Например, следующая конфигурация регистрирует IP-адрес клиента всякий раз, когда он запрашивает определенный путь:

 <Расположение / путь / к / некоторому / конкретному / каталогу>
    LogMessage «/ путь / к / конкретному / каталогу запрошен»
    $ {REMOTE_ADDR}
 

mod_log_forensic

Этот модуль позволяет вести журнал до и после обработки запроса. Каждой записи присваивается уникальный идентификатор, который можно использовать для отслеживания событий между журналом судебной экспертизы и обычным журналом.Однако судебно-медицинский журнал не поддерживает настраиваемые форматы. Этот модуль также заменяет модуль mod_unique_id.

После включения модуля вы можете использовать ключевое слово forensic , чтобы указать, какой файл журнала является криминалистическим. Вы также можете использовать шаблон % {forensic-id} в других строках LogFormat для добавления данных судебной экспертизы в обычные журналы. Здесь мы используем /var/www/example.com/logs/forensic.log :

 
    Пример ServerName.com 
ServerAdmin [email protected]
DocumentRoot /var/www/example.com
LogLevel info ssl: warn
ErrorLog /var/www/example.com/logs/error.log
CustomLog /var/www/example.com /logs/access.log, пример
CustomLog /var/www/example.com/logs/forensic.log forensic

Каждая строка в судебно-медицинском журнале начинается с символа «+» или «-». «+» Указывает строку журнала записей для этого конкретного запроса, а «-» указывает последующие записи для того же запроса.

Например, следующий журнал записей был создан путем вызова http: // localhost с использованием формата журнала по умолчанию:

 +3264: 55958cb4: 0 | GET / HTTP / 1.1 | Хост: localhost | Соединение: keep-alive |
Cache-Control: max-age = 0 |
Принять: text / html, application / xhtml + xml, application / xml; q = 0.9, image / webp, * / *; q = 0.8 |
Пользовательский агент: Mozilla / 5.0 (X11; Linux x86_64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 43.0.2357.130 Safari / 537.36 |
Accept-Encoding: gzip, deflate, sdch |
Accept-Language: en-US, en; q = 0.8 |
Если-None-Match: "2cf6-519e8edfca429-gzip" |
If-Modified-Since: Thu, 02 Jul 2015 18% 3a51% 3a39 GMT
 

Конечная запись в журнале из того же запроса выглядит так:

-3264: 55958cb4: 0 

Если конечная запись не отображается в журнале, запрос не выполнен.

mod_logio

Этот модуль добавляет возможность регистрировать количество отправленных и полученных байтов за один запрос. Сюда входят полученные, отправленные и переданные байты (комбинация полученных и отправленных). Модуль также точно учитывает изменения размера из-за шифрования SSL и TLS. Этот модуль требует mod_log_config и обычно по умолчанию включен в Apache.

Этот модуль добавляет директиву LogIOTrackTTFB On | Off , которая переключает возможность отслеживать время до первого байта (TTFB).FB для включения измерения TTFB в строку LogFormat .

mod_filter

Этот модуль предоставляет контекстно-зависимые фильтры для выходной цепочки путем регистрации любого количества поставщиков фильтров. mod_filter не относится к ведению журнала, но позволяет извлекать определенные запросы на основе поставщика фильтров. Контейнеры контекста включают в себя: основную конфигурацию apache, конфигурацию vhost, теги внутри каталога и файлы .htaccess.

Использование этого модуля позволяет фильтровать запросы, содержащие такие элементы, как определенные критерии внедрения и их IP-адрес.

Этот модуль предоставляется по умолчанию во многих дистрибутивах пакетов, но может потребовать включения. В целях ведения журнала директива FilterTrace отправляет информацию в журнал ошибок. Директивы включают:

  • AddOutputFilterByType — назначает выходной фильтр конкретному типу носителя
  • FilterChain — настраивает цепочку фильтров
  • FilterDeclare — объявляет смарт-фильтр
  • FilterProtocol — заставляет mod_filter правильно обрабатывать заголовки ответов
  • FilterProvider — регистрирует поставщиков фильтров
  • FilterTrace — позволяет заносить отладочную / диагностическую информацию в журнал ошибок до обработки провайдером.

В следующем примере фильтрация в контейнере контекста виртуального хоста применяется при условии фильтрации и включения модулей:

  

# Объявить фильтр по типу ресурса:
FilterDeclare xss
# Зарегистрируйте поставщика:
FilterProvider xss ВКЛЮЧАЕТ% {REQUEST_FILENAME} = "(/ [<>] +) $"
#FilterProvider. ..
# Построить цепочку:
FilterChain xss
# Объявить настраиваемый журнал:
CustomLog /var/www/log/xss.log xss
# Отформатировать запись журнала:
LogFormat "% h% u% t"% r "%> s"% {Referer} i ""% {User-Agent} i "" xss

mod_unique_id:

Этот модуль создает переменную среды и уникальный идентификатор для каждого запроса.Он часто входит в состав пакетов, но может потребовать включения. Этот уникальный идентификатор записывается в журнал доступа.

Этот модуль был заменен mod_log_forensic для криминалистических целей, но все еще поддерживается другими.

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

Apache отделяет дочерние процессы для обработки запросов, а дочерний экземпляр обрабатывает несколько запросов одновременно. В результате иногда желательно использовать уникальный идентификатор для идентификации одного запроса на нескольких экземплярах сервера и дочерних процессах.

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

Например:

 UNIQUE_ID: Vaf3en8AAQEAAAtoQlAAAAAA 

Идентификатор состоит из 32-битного IP-адреса, 32-битного идентификатора процесса, 32-битной отметки времени, соединенной с 16-битным счетчиком для более жесткого разрешения, чем односекундный 32-битный индекс потока.Компонент timestamp — это UTC, чтобы предотвратить проблемы с корректировкой летнего времени. Обработчик приложения должен рассматривать идентификатор только как непрозрачный токен, а не разбивать его на составляющие.

.

apache2 — сервер Apache — несколько каталогов, разные журналы ошибок

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

.

Как мне найти файлы журнала HTTP-сервера Apache? — Код сайта блог

Источник: http://www.cyberciti.biz/faq/apache-logs/

Существует два типа файлов журнала сервера apache httpd:

Журналы ошибок

НАЖМИТЕ ЗДЕСЬ, чтобы просмотреть список кодов ошибок (электронная почта не требуется)

Все ошибки apache / диагностическая информация, другие ошибки, обнаруженные при обслуживании запросов, записываются в этот файл. Расположение журнала ошибок устанавливается с помощью директивы ErrorLog. Если есть какие-либо проблемы, вы должны сначала взглянуть на этот файл с помощью cat, grep или любых других текстовых утилит UNIX / Linux.Этот файл журнала apache часто содержит подробную информацию о том, что пошло не так, и как это исправить . Расположение файла журнала ошибок по умолчанию:

  • RHEL / Red Hat / CentOS / Fedora Linux Расположение файла ошибки Apache — / var / log / httpd / error_log
  • Debian / Ubuntu Linux Расположение файла журнала ошибок Apache — /var/log/apache2/error.log
  • FreeBSD Расположение файла журнала ошибок Apache — /var/log/httpd-error.log

Чтобы найти точное местоположение файла журнала apache, вы можете использовать команду grep:
# grep ErrorLog / usr / local / etc / apache22 / httpd.conf
# grep ErrorLog /etc/apache2/apache2.conf
# grep ErrorLog /etc/httpd/conf/httpd.conf

Код ошибки поиска:

Пример вывода:

 # ErrorLog: расположение файла журнала ошибок.
# Если вы не укажете директиву ErrorLog в
ErrorLog "/var/log/httpd-error.log" 

Журналы доступа

НАЖМИТЕ ЗДЕСЬ, чтобы просмотреть список кодов ошибок (электронная почта не требуется)

Сервер Apache записывает все входящие запросы и все запросы, обработанные в файл журнала.Формат журнала доступа легко настраивается. Расположение и содержание журнала доступа контролируются директивой CustomLog . Расположение файла журнала доступа к apache по умолчанию:

  • RHEL / Red Hat / CentOS / Fedora Linux Расположение файла доступа Apache — / var / log / httpd / access_log
  • Debian / Ubuntu Linux Расположение файла журнала доступа Apache — /var/log/apache2/access.log
  • FreeBSD Расположение файла журнала доступа Apache — / var / log / httpd-access.журнал

Чтобы найти точное местоположение файла журнала apache, вы можете использовать команду grep:
# grep CustomLog /usr/local/etc/apache22/httpd.conf
# grep CustomLog /etc/apache2/apache2.conf
# grep CustomLog / etc / httpd / conf / httpd.conf

Пример вывода:

 # директива CustomLog (см. Ниже).
#CustomLog "/var/log/httpd-access.log" общий
CustomLog "/var/log/httpd-access.log" в сочетании 

.

Как установить местоположение журнала ошибок PHP в файле конфигурации Apache?

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

.

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

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