Системным администраторам требуется подробная информация для диагностики и устранения проблем, которые могут возникнуть в системе. Одним из источников такой информации являются журналы. Журналы – это серия записей, описывающих использование системы или ресурсов в системе.
Веб-сервер, такой как Lighttpd, позволяет настраивать уровень детализации выходной информации с помощью журналов. По умолчанию он использует общий формат журнала. Однако метод ведения журнала легко настраивается для различных нужд и сценариев.
В этой статье вы узнаете, как включить ведение журнала на сервере Lighttpd, и поймете форматирование журналов из файла access.log.
Перед тем, как проанализировать файл и узнать, как он отформатирован, нам нужно включить ведение журнала доступа на веб-сервере.
Журналы доступа содержат информацию журнала о запросах файлов и ресурсов из веб-приложения, размещенного на веб-сервере. Типичная информация, хранящаяся в журналах доступа, включает IP-адрес, пользовательский агент, доступ к файлам и многое другое.
Чтобы включить ведение журнала доступа на сервере Lighttpd, разрешите модуль журнала доступа с помощью команды:
sudo lighttpd-enable-mod accesslog
Приведенная выше команда загрузит модуль журнала доступа, позволяющий серверу записывать журналы доступа к файлам и ресурсам размещенного веб-приложения.
Если вы хотите изменить параметры модулей accessLog, отредактируйте файл, расположенный в:
/etc/lighttpd/conf-enabled/10-accesslog.conf
По умолчанию журналы доступа хранятся в файле access.log, как определено в параметре accessLog.filename.
Чтобы установить собственное имя, отредактируйте значение записи. Например, чтобы установить журналы доступа в файл server.log:
accesslog.filename = "/var/log/lighttpd/server.log"
Другие параметры, которые вы можете изменить для настройки журналов доступа на сервере Lighttpd, включают:
Вы можете узнать больше об уровнях системного журнала в ресурсе ниже:
https://en.wikipedia.org/wiki/Syslog#Severity_level
Разберем формат журналов доступа на сервере Lighttpd. Стоит отметить, что для простоты мы будем использовать формат журнала по умолчанию.
Чтобы просмотреть содержимое файла журнала, вы можете использовать команду cat как:
sudo cat /var/log/lighttpd/access.log
Возьмем одну запись, как показано в примере ниже:
127.0.0.1 localhost - [02/Nov/2021:01:05:28 -0400] "GET / HTTP/1.1" 200 15043 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:85.0) Gecko/20100101 Firefox/85.0"
Следующий формат описывает все указанные выше блоки:
accesslog.format = "%h %V %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""
Вы можете создать собственный формат журнала, используя параметры, представленные в документации по формату журнала Lighttpd.
https://redmine.lighttpd.net/projects/1/wiki/Docs_ModAccesslog
Давайте воспользуемся предоставленными параметрами, чтобы создать минималистичный формат журнала для нашего сервера. В нашем примере мы включим исходный IP-адрес, имя удаленного хоста, метод запроса, код состояния, запрошенный URL-адрес и количество байтов в теле запроса.
Отредактируйте файл журнала доступа:
sudo nano conf-enabled/10-accesslog.conf
Установите формат журнала, как показано ниже:
accesslog.format = "%h %l %m %s %U %b"
Сохраните и закройте файл. Перезапустите службу как:
sudo service lighttpd restart
После перезапуска службы перейдите по индексной веб-странице. Теперь вы должны увидеть формат журнала, как показано:
192.168.9.220 localhost - GET 200 / 15043
Чтобы узнать, как создать собственный формат журнала, обратитесь к документации.
В этой статье вы узнали, как настроить ведение журнала доступа на сервере Lighttpd и отформатировать журналы. Вы также узнали, как создать собственный формат журнала, используя различные параметры.