Ответ
Логи Nginx по умолчанию находятся в каталоге /var/log/nginx/. Основные файлы:
access.log— логи всех входящих HTTP-запросов.error.log— логи ошибок сервера (уровень детализации задаётся в конфиге).
Основные команды для работы с логами:
# Потоковый просмотр логов в реальном времени (чаще всего используется)
tail -f /var/log/nginx/access.log
# Показать последние 50 строк и следить за новыми
tail -n 50 -f /var/log/nginx/error.log
# Поиск всех запросов с кодом состояния 404
grep ' 404 ' /var/log/nginx/access.log
# Подсчёт уникальных IP-адресов за последний час
grep "$(date -d '1 hour ago' '+%d/%b/%Y:%H')" /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c
# Если Nginx управляется через systemd
journalctl -u nginx.service --since "today"
Конфигурация логирования задаётся в nginx.conf или конфигах виртуальных хостов:
http {
# Формат лога можно кастомизировать
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
# Указание пути и формата
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn; # Уровни: debug, info, notice, warn, error, crit
}
Для анализа больших объёмов логов в продакшене я использую связку Fluentd / Logstash → Elasticsearch → Kibana/Grafana.