Журналы очень важны в системе для отслеживания действий приложения, поскольку они предоставляют полезную информацию для отладки и позволяют анализировать все аспекты веб-сервера. Как и другие программные приложения, Nginx также поддерживает такие события, как посещение вашего веб-сайта, обнаруженные проблемы и многое другое, для регистрации файлов. Полезная записанная информация используется для принятия превентивных мер, чтобы иметь дело с серьезными несоответствиями в событиях журнала.
В этой статье мы подробно рассмотрим, как настраивать и просматривать журналы Nginx в системе Ubuntu 20.04 для отслеживания действий приложения.
Существует два типа журналов, в которых записанные события в Nginx: один – это журнал доступа, а другой – журнал ошибок. Если вы уже включили эти журналы в файле конфигурации ядра Nginx, вы можете найти оба типа журналов в /var/log/nginx во всех дистрибутивах Linux.
Все действия, связанные с посетителями сайта, фиксируются в журналах доступа. В этом типе журнала вы можете найти те файлы, к которым недавно осуществлялся доступ, как Nginx ответил на запрос клиента, IP-адреса клиентов, какой браузер использует клиент и многое другое. Используя информацию журнала доступа, вы можете отслеживать трафик, чтобы отслеживать использование сайта с течением времени. Если вы правильно отслеживаете журналы доступа, вы можете легко найти некоторые необычные запросы, которые отправляет пользователь, чтобы проверить недостатки в развернутом приложении.
Журнал доступа можно включить с помощью директивы access_log либо в разделе сервера, либо в HTTP.
access_log log_file log_format;
Первый аргумент, log_file, является обязательным, а второй аргумент – необязательным, log_format. Если вы не укажете формат журнала, журналы будут набираться в комбинированном формате по умолчанию.
Журнал доступа определяется по умолчанию в файле конфигурации Nginx. Таким образом, все журналы доступа к виртуальному хосту будут храниться в одном файле конфигурации.
http { ... access_log /var/log/nginx/access.log; ... }
Рекомендуется разделить журналы доступа всех виртуальных хостов, записав их в новый отдельный файл.
http { ... ... access_log /var/log/nginx/access.log;server { listen 80; Server_name example.com access_log /var/log/nginx/example.access.log; ... ... } }
Перезагрузите новые конфигурации NGINX. Теперь вы можете просмотреть журналы доступа для домена example.com в файле /var/log/nginx/example.access.log, используя следующую команду:
$ sudo tail -f /var/log/nginx/example.access.log
Давайте объясним пример для определения настраиваемого формата журнала доступа. По умолчанию журнал доступа записывается в комбинированном формате журнала. Следовательно, вы можете расширить предопределенный формат значением ответа gzip для степени сжатия.
http { log_format custom '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" "$gzip_ratio"';server { gzip on; ... access_log /var/log/nginx/example.access.log custom; ... } }
После внесения всех изменений в конфигурацию Nginx перезагрузите Nginx и затем запустите команду tail, чтобы отобразить коэффициент сжатия в конце журнала событий.
$ sudo tail -f /var/log/nginx/example.access.log
Если NGINX внезапно прекращает работу или работает некорректно, он записывает все события в журнал ошибок. Поэтому, используя журналы ошибок, вы можете найти более подробную информацию. Он также записывает предупреждения, но не может определить возникшую проблему.
Следующий синтаксис директивы error_log:
error_log log_file log_level;
В приведенном выше синтаксисе первый аргумент представляет путь к файлу журнала, а второй аргумент определяет уровень безопасности события журнала.
Мы упомянули пример ниже, в котором выполняется переопределение в директиве error_log в контексте сервера.
http { ... ... error_log /var/log/nginx/error_log; server { listen 80; server_name example1.com; error_log /var/log/nginx/example1.error_log warn; ... } server { listen 80; server_name example2.com; error_log /var/log/nginx/example2.error_log debug; ... } }
Если вам необходимо отключить журнал ошибок, присвойте файлу журнала имя /dev/null.
error_log /dev/null;
В журнале ошибок вы можете использовать следующий уровень безопасности:
Журналы доступа и ошибок Nginx полезны для записи определенных действий. Мы узнали, как можно включить и просмотреть эти типы журналов Nginx в нашей системе Linux. Это все о журналах Nginx.