Рубріки: HighloadТеория

Логи error_log и access_log в Nginx

Игорь Грегорченко

Файлы логов — первое место, где нужно искать ошибки. Особенно если это касается веб-сервера. В Nginx всего два основных лога: error_log и access_log.

Лог ошибок error_log

Логирование ошибок Nginx происходит в определенный файл, stderr или syslog. Он собирает все ошибки, которые произошли во время работы веб-сервера. По умолчанию он включен глобально:

error_log logs/error.log error;
Записываются только ошибки в файл по указанному пути

Для сбора только определенных ошибок необходимо разместить директиву в секции http, server, stream или location. А так можно логировать только критические ошибки и сигналы тревоги:

error_log logs/error.log warn;
Записываются ошибки уровня warn, error crit, alert, emerg

Лог доступа access_log

Лог доступа Nginx по умолчанию размещен в директории logs/access.log. В него записываются данные о запросах пользователей, как только эти запросы обработаны. Для изменения директории расположения лога используется директива access_log:

access_log logs/access.log combined;
Используется комбинированный формат

В расширенном виде access_log можно настроить по своим требованиям:

http {

log_format compression '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$gzip_ratio"';
server {
gzip on;
access_log /spool/logs/nginx-access.log compression;
...
}

}

Задается пользовательский формат с записью времени подключения, TTFB, TTLB, времени обработки запроса

Также можно исключить ненужную информацию из лога:

map $status $loggable {
~^[23] 0;
default 1;
}
access_log /path/to/access.log combined if=$loggable;

Исключает запросы к HTTP со статусом 2ХХ (успешно) и 3ХХ (редирект)

Запись в syslog

Стандартная для UNIX-систем утилита syslog может собирать логи и различные сообщения разных процессов на одном сервере:

access_log syslog:server=[2001:db8::1]:1234,facility=local7,tag=nginx,severity=info;

Перенаправляет информацию в syslog

Директива server указывает адрес сервера (здесь IPv6) и порт. А facility — специфические параметры программы: auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog,user, uucp, local0 … local7.

Включение режима debug

При необходимости можно включить Nginx debug-режим записи логов, который обеспечивает расширенную информацию и полезен при решении серьезных проблем:

error_log logs/error.log debug;

Можно включить только для нужной секции или отдельных клиентов соединений

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

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023