В настоящее время цикл разработки программного обеспечения идет огромными темпами. Все организации имеют базы кодов, содержащие огромное количество кодов, состоящих из связанных между собой веб-страниц. Есть много обстоятельств, когда система дает сбой или ведет себя неожиданно.
Чтобы проанализировать и отладить проблему, разработчики и системные администраторы просматривают файлы журнала, чтобы найти проблемы системы. На самом деле, когда система не работает, файлы журналов часто используются в качестве основного источника информации.
В каждой системе системные администраторы поддерживают все действия, связанные с запросами, полученными от различных пользователей, и сохраняют их в файле, который называется файлами журнала.
Для отладки системы мы можем обращаться к отдельным файлам журнала, чтобы получить представление о системе и перемещаться по различным временным меткам, чтобы узнать состояние системы.
В этой статье мы рассмотрим особенности этих журналов ниже: мы рассмотрим, что хранится в журналах доступа Apache, где их найти и как просматривать журналы доступа Apache Tomcat. Это заставляет системных администраторов отслеживать всю информацию и действия, происходящие в их системе.
Журналы доступа Apache — это один из видов файлов журналов, создаваемых HTTP-сервером Apache, как описано выше. Этот файл журнала отвечает за сохранение информации обо всех запросах, обрабатываемых сервером Apache Tomcat.
В результате, если кто-то посещает страницу вашего сайта, файл журнала доступа будет содержать информацию об этом.
Это знание полезно в нескольких ситуациях: если конкретный запрос не выполняется для каждого человека, пытающегося получить доступ к веб-странице, или в ситуации, когда возникает задержка в генерации ответа, мы можем пройти через сценарии SQL и оптимизировать их.
Если одна из страниц сайта является особенно распространенной, агрегирование данных из журналов доступа может выявить запрашиваемые ресурсы, что позволит компаниям повысить свою популярность, предлагая более релевантные материалы.
Расположение журналов определяется операционной системой, в которой HTTP-сервер Apache настроен для выполнения программы. Дистрибутивы Linux запускают большую часть экземпляров HTTP-сервера Apache. Итак, в этой статье мы сконцентрируемся на том, где найти и просмотреть журналы доступа Apache Tomcat на машине Linux.
В случае ядра/операционной системы Ubuntu и Linux эти записи журнала можно найти в следующем месте:
/var/log/apache2/access.log
Некоторые дистрибутивы Linux могут иметь разные местоположения по умолчанию, но в большинстве случаев вам не придется далеко ходить. На директиву CustomLog можно ссылаться и обновлять ее на сервере Tomcat Apache.
Директива CustomLog также берет на себя ответственность за сохранение места, где он хранится, и указывает формат, в котором он должен быть сохранен.
Теперь мы опишем, как просматривать файлы журнала доступа и интерпретировать данные из них. Извлечение информации может помочь ИТ-специалистам и командам разработчиков использовать ее.
Чтобы разобраться в журналах доступа Apache, аналитик должен сначала рассмотреть формат, в котором хранятся журналы.
Как было сказано ранее, формат и место для доступа к журналам указываются в каталоге CustomLog. Ниже мы рассмотрим два распространенных формата журналов, которые широко используются для журналов доступа Apache.
CLF — это формат структурированного текстового файла для создания файлов журнала сервера, которые используются различными серверами веб-приложений. Популярный формат журнала можно использовать с HTTP-сервером Apache для создания журналов доступа, которые легко читать разработчикам и администраторам.
Некоторые системы анализа журналов могут легко использовать файлы журналов в формате CLF. Это структурированный формат, используемый многими веб-серверами. Ниже приведен тип записи журнала доступа, записанной в CLF:
127.0.0.1 - sccott [10/Nov/2020:13:55:35 -0700] "GET /server-status HTTP/1.1" 200 2326
Дефис: дефисы идентифицируют клиента во втором поле внутри файла журнала.
127.0.0.1: Client’s IP address.
«GET/server-status HTTP/1.1» — ресурс и тип ресурса, запрашиваемые пользователем.
200 - HTTP OK-response (status-code); 2326 - Response of HTTP request object's size
CLF — еще один распространенный формат журналов доступа Apache. Этот формат почти такой же, как и в популярном формате журнала, но включает в себя еще несколько полей, чтобы предоставить более подробную информацию для отладки и подробного анализа. Ниже приведен тип записи журнала доступа, записанной в CLF:
27.0.0.1 - sccott [10/Dec/2019:13:55:36 -0700] "GET /server-status HTTP/1.1" 200 2326 "http://localhost/" "Mozilla/5.1 (Win NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
Поскольку видно, что начальные семь полей являются общими для описанного выше формата, больше полей в формате следующие:
"http://localhost/"
Это показывает адрес клиентской системы.
"Mozilla/5.1 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
User-Agent определяет информацию о браузере, используемом клиентом для доступа к ресурсу.
Ранее мы заявляли, что директива CustomLog в файле конфигурации HTTP-сервера Apache используется для настройки журналов доступа Apache. Здесь мы можем посмотреть на пример конфигурации журналов, чтобы увидеть, насколько гибкими являются директивы пользовательских журналов:
LogFormat "%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" combined CustomLog /var/log/apache2/access.log combined
Выше мы использовали директиву Log Format для определения комбинированного LF, а директива CustomLog для определения местоположения, которое он хранит, вместе с ним определяет формат (combined) для журнала доступа, в котором он должен храниться.
Как видите, изменение местоположения или формата журнала доступа — простая процедура. Кроме того, использование директивы CustomLog дает нам несколько других преимуществ, о которых мы поговорим позже.
Нет никаких ограничений, которые мешали бы вам настроить MAL для вашего сервера Apache Tomcat. Таким образом, процесс, которому обычно следуют, очень прост, поскольку вам нужно создать больше директив Custom Logs для создания вашего персонализированного файла журнала:
LogFormat "%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" combined LogFormat "%{User-agent}i" agent CustomLog /var/log/apache2/access.log combined CustomLog /var/log/apache2/agent_access.log agent
Также весьма вероятно, что запись в журналы доступа будет выполняться на условной основе. Это полезно для многих целей, например для исключения записей, относящихся к отдельным клиентам. Установка всех переменных среды и обращение к ним с ключевым словом «env» обычно зависит от того, как это достигается.
Файлы журнала, как и все остальное на компьютере, занимают место. А файлы журналов, такие как журналы доступа, могут быстро развиваться на загруженном сервере Tomcat. Следовательно, важно иметь протоколы для регулярной передачи или удаления старых файлов журналов. К счастью, HTTP-сервер Apache может сделать это с помощью плавных перезапусков и конвейерных процедур журналирования.
Перезапуск сервера Apache Tomcat работает хорошо, потому что он перезапускается без потери клиентских подключений.
Этот вид перезапуска заставляет Apache открываться и перезаписывать новые файлы журналов, не прерывая работу клиентов, разрешая обработку для сжатия или удаления ранее использованных файлов журналов для сохранения новых.
С другой стороны, протоколируемые процессы Pipe разрешают ротацию деталей журнала, не требуя повторного перезапуска сервера; например, HTTP-сервер Tomcat Apache включает программу под названием rotate-logs.
Вместо записи на диск в это приложение можно передать записи журнала доступа. Программное обеспечение rotate-logs позволяет вращать журналы в зависимости от времени или расстояния условно.
Мы упомянули полную информацию о просмотре журналов доступа Apache Tomcat и извлечении данных из файлов журналов различных форматов. Разработчики и системные администраторы должны знать, как просматривать файлы журналов и получать навыки отладки, чтобы обеспечить их бесперебойную работу.
Таким образом, доступ к журналу Apache — это один из способов глубже погрузиться в систему с помощью сервера tomcat для отладки системы, перехода к любой временной метке и проверки состояния системы в соответствии с требованиями.